>>41367004There are now two shiny particle effects.
A pokemon is shiny when a calculation involving its PID and its TID results in a value < 16.
In Sword/Shield, a special particle animation is used involving squares instead of stars when this calculation returns exactly zero.
Previously:
65520/65536: Not Shiny
16/65536: Shiny
Swish now differentiates further:
65520/65536: Not Shiny
15/65536: Shiny (Stars effect)
1/65536: Shiny (Squares effect)
--
However, it gets a little more complicated. Some pokemon are forced to be shiny -- the code gamefreak wrote to do this checks if the calculation returns a value that's already shiny, and does nothing if it does. If it doesn't, they force the pokemon's PID to one that causes the calculation to return zero.
This leads to a weird result, because it means that the shiny rarity is actually inverted for everything forced to be shiny.
For pokemon forced to be shiny, we get the following:
65520/65536: Not Shiny (Forced to be Squares)
15/65536: (Already Shiny) (Stars)
1/65536: (Already Shiny) (Squares),
which results in
65521/65536: Shiny (Squares)
15/65536: Shiny (Stars).
--
There's a bit of a problem, too: for normal wild encounters, the game decides whether or not the pokemon will be shiny ahead of time, before it rolls the PID. To make this possible, the game stores whether the pokemon should be shiny, and then calls the force shiny function if it should.
This means that standard wild encounters will have the inverted ratio, where 65520/65536 wild shinies will be squares, and 15/65536 wild shinies will be stars. This is probably unintended/a fuckup on gamefreak's part.
However, non-standard wild encounters (static encounters) and eggs will use the correct/intended ratio with 15/16 shinies being stars, and 1/16 shinies being squares.