Jump to content

[Denied] Shinies Too easy


Recommended Posts


In Generation III, most of the data structures were completely overhauled. Starting from this generation, a Pokémon's Shininess is no longer linked to any of its other stats. Instead, Shininess is determined by a calculation involving the Original Trainer's ID number and secret ID number, as well as the Pokémon's personality value.

The exact calculation is (TrainerID xor SecretID) xor (PersonalityValue31..16xor PersonalityValue15..0), where the latter two values represent the highest and lowest 16 bits of the 32-bit personality value respectively; more detailed information can be found at the personality value article.

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.

 

Personality Values


A Pokémon's personality value is an unsigned 32-bit integer that is created when the Pokémon is first encountered. It is set when a Pokémon appears in the wild, when an Egg is first received from the Pokémon Day Care by the player (in Generation III* except in Pokémon Emerald and in Generation V) or by the Day-Care man (in Emerald and Generation IV), or when a Pokémon or its Egg is received from an NPC. As an unsigned 32-bit integer, its value can be anywhere from 0 (32 zeroes in binary) to 4,294,967,295 (32 ones in binary), inclusive. This value was introduced with the Pokémon data structure overhaul that occurred at the start of Generation III, and is generated using the games' pseudorandom number generator.

 

00000000 00000000 00000000 00000000

In Generation III or later, whether a Pokémon is Shiny depends on its Original Trainer's Trainer ID number and secret ID number and on the Pokémon's personality value. The high half of p (highlighted in red above) is referred to as p1 below, while the low half (highlighted in blue) is referred to as p2. Mathematically, p1 can be derived by calculating p / 65536 and rounding down the result, while p2 can be derived by calculating p % 65536.

S = IDTrainer IDSecretp1p2

A bitwise exclusive or operation (or "⊕") on inputs a and b, written as ab = c, outputs c such that, if ai (bit i of a) and bi are different, then ci is 1; otherwise it is 0. For example, 11002 ⊕ 10102 = 01102. When exclusive or is applied to multiple inputs, as in the calculation for Shininess above, it may be more easily understood as, "If an odd number of bits (at position i) are 1, output 1". This operation is commutative.

From Generations III to V, if S < 8, the Pokémon is Shiny. In Generation VI, the Pokémon is Shiny if S < 16. This is an 8 or 16 in 65536 chance of a Pokémon being Shiny.

Example

As an example, given a Trainer whose Trainer ID is 24294 and whose Secret ID is 38834...

IDTrainer = 2429410 = 01011110111001102IDSecret = 3883410 = 10010111101100102

If the Trainer encounters a Pokémon whose personality value is 2814471828...

p = 281447182810 = 101001111100000101101110100101002p1 = 10100111110000012p2 = 01101110100101002

Then S is equal to...

S = 01011110111001102 ⊕ 10010111101100102 ⊕ 10100111110000012 ⊕ 01101110100101002S = 00000000000000012 = 110

Since S is less than 8, this Pokémon is Shiny.

 

Looks like someone missed an awful lot of text pertaining to how shininess is calculated in Gen 3. IVs don't play any part in it as you can see from the above formula taken direct from Bulbapedia's articles on Shiny Pokemon and Personality Values.

Link to comment

In PokeMMO shiny encounter rates are not influenced by the Pokemon's IVs, this was only a feature that existed up until Generation 2. The chance a Pokemon encounter will be shiny is 1/8192, so basically entirely random. I will lock this thread now as this suggestion is not a necessary change for the game. 

Link to comment
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.