# Shiny Breeding Equation

## Recommended Posts

Well, basically I know there's people who already got the code, perhaps they can assist us giving that part of code or helping with some suggestions based on it.

I would like you guys to help me in the making of the equation of the Shiny breeding value to know a little bit more on how each person can get a shiny without having to breed thousands for the shiny they want.

I will post the things I remember are determined to get a shiny, please help me spreading this equation to it's very most atomic values:

Shiny Charm + Masuda Method = 1/500 (At this point we will assume it's a 500 chance from the shiny charm research done by smogon

That formula obviously it's not correct, I need help to get it clearer, so if you can help me giving your idea or your own equation, we can get something better.

##### Share on other sites

(TID ^ SID) >> 4 = TSV

((PID >> 16) ^ (PID & 0x10)) >> 4 = ESV

if TSV == ESV, it's shiny.

People find their egg's ESV and find a trainer with the same TSV to hatch it shiny.

As for getting the actual rate (amount of re-rolls done to the PID), it is not known at this time. There won't be ways to RNG in X/Y so the only sure way to get shinies is to abuse ESVs.

##### Share on other sites

Well, @Kaphotics, thank you very much for your cooperation.

I understand the trainer shiny value must match per ESV, but I'm trying to get a usable equation to know the possibilities for a pokémon to be shiny.

Seems a little hard, but if we gather all information, or get the function code we might be a step ahead on shininess...

Thanks again, and hope we're able to see part of the code soon.

##### Share on other sites

• 2 weeks later...

The equation he gave you is the correct equation to make the calculation on whether or not a Pokémon is shiny; the reason we can't know for sure the exact formula to calculate the chances of getting a shiny is that we don't yet have all the information we need to know exactly how the PID is generated. We need this information before we can work out the chances of a shiny. I don't have the knowledge or the skill to find this out from the code, and from what I can tell very few people do. The code for X/Y is, as far as I've seen from the forums, incredibly elusive. There are still an awful lot of things we don't know. I'm sure there are people working on exactly what you're asking about, but I think there's probably far more people working on other things, such as editing in-game data. (We know it's possible, because Datel does it, and that makes it all the more tantalising!)

##### Share on other sites

I'm srry, I'm new to that language, it's C#, true?

I don't know exactly waht does "^" (I think XOR) and ">>" means...

(TID ^ SID) >> 4 = TSV

((PID >> 16) ^ (PID & 0x10)) >> 4 = ESV

If I transcribe that as I undestand:

Trainer Id "plus" Secret Id gives you a number of 4 digits length... e.g. 0730 and this is the Trainer Shiny Value (Is there any range?)

Pokemon Id gives you a 16 digits number, somehow this number "plus" 0x10 that I don't know what this is... (random number perhaps?) gives another 4 digit number that is the Egg Shiny Value...

Now, if TSV = ESV at hatch time, the result will be shiny...

Can someone clarify a little bit this ?

Thanks!

##### Share on other sites

>> is a bitwise right shift

^ is XOR

(Yes I created an account to answer this)

##### Share on other sites

iirc if TID ^ SID ^ PIDh ^ PIDl is less than 16 the pokenon is shiny. PIDl is the first 16 bits of the PID, and PIDh are the last 16 bits. When an egg is collected its PID is set. The TID and SID are not set untill hatched. Since the equation is less than 16, we can just ignore the first 4 bits of both TID ^ SID and PIDh ^ PIDl so that is what the >> 4 does. Drops the first 4 bits and slides the remaining ones down the line so now bit 0 was bit 4, bit 1 was 5, etc. So now we have a 12 bit number for TSV and ESV. The range 0 - 4096

##### Share on other sites

Okkk so:

(TID[0-65,536] ^ SID[0-65,536]) >> 4 = TSV [0-4095]

PID[0-4,294,967,295] =

PID in Hexadecimal (L) 0xFFFF|F0FF (H) =

( PID(l) 0xFFFF ^ PID(h) 0xF0FF ) >> 4 =

ESV[0-4095]

If ESV is equal to TSV is shiny...

If not, depends on Masuda and Shiny Charm to calculate "x" number of re-rolls that I supposed is "8" (using both) to match the 1/512 ratio...

Unknown re-rolls for Masuda only or Shiny Charm only.

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.