Hey is there any way to make shiny pokemon more common? like can you edit the chances of a shiny pokemon appearing in Pokemon FireRed?
There is a single routine somewhere that determines if a pokemon is shiny, with a single byte that controls the %. Sadly, I cannot remember where it is.
Edit: I lied. I found some clues in my notes and then it wasn't hard to track down. 0x44120 controls the amount of shinies. Please note, this is not a percentage.
Bulbapedia said:
The above formula can result in a number from 0 to 65535. If the result is less than 8, then the Pokémon is Shiny. This gives an overall probability of 8/65536 or 1/8192, exactly the same as in Generation II.
You will find the number 7 at this location. This is the "if less than 8" byte. Now, since it is a byte, there is no way to actually make this 100%. The best odds you are going to get is a value of 0xFF or ~1/256. These are still pretty good odds.
However, with some ASM, we can change this.:) If you look ahead 2 bytes, you will see 07 D9. This is the jump that happens if it is a shiny pokemon. If we change the D9 to E0, it will ALWAYS be shiny.:D Now, if you really wanted to get fancy, we could rewrite this routine to check a halfword instead of a byte. This would give us full control over the percentages of shinies. Now, there is also one more thing we can do. We can invert shinies. So now, the normal pokemon colors are actually the rare ones. This can be done by taking those same bytes (07 D9) and changing them to 07 D8. Now it should branch if there is anything higher, instead of lower.
So, to sum it up, we have a string of bytes at 0x44120:
XX(07) 28 07 D9
The XX is the byte that is compared to check for shininess.
The D9 can be changed as follows:
D8 - Branch if greater than XX
D9 - Branch if less than XX
E0 - Always branch
Hope this helps!
(PLEASE NOTE, if you trade pokemon with another game, they may not be shiny! These pokemon only look shiny, but in reality are not! The routine says they are each time they are loaded, but if you transferred them to another game, they may not be shiny, unless that game has a hacked shiny rate too. The only way to actually make more shiny pokemon that are legit is to change the PRNG to give you better shiny numbers.)