About This File
The original purpose of this tool, is to recalculate a Shiny PID based on previous legal non-shiny Overworld8 PID. This tool has since been expanded to include IVs searching.
For background: in SWSH, the game actually has PID-IV-EC-Height-Weight correlation for any Overworld/Fishing/Symbol encounter.
So you cannot haphazardly make those into shinies.
In this tool, there's a few different options. For most (when required), you're gonna need to provide a legal non-shiny Overworld8 PID.
(In those scenarios, if your mon wasn't legal, this tool won't provide a PID to make it legal.)
If you do want the tool to provide legal details (besides PID), you can either provide a EC or seed (Overworld Stats Calculations); or select one of the options with longer for Overworld Shiny Calculation.
Overworld Shiny Calculation
Forced Shiny [Square] (Keep TID/SID)
This method modifies only the top half of a provided PID, based on provided TID and SID.
This is how the game forces a mon to be shiny, when a non-shiny PID was rolled.
Square (Keep PID)
Generates a Square Shiny by rolling for new TID and SID.
Star (Keep PID)
Generates a Star Shiny by rolling for new TID and SID.
Any (Keep TID&PID)
Using provided TID and PID, the tool will generate a SID that would result in the mon being shiny. Can be Star or Square.
Note: Because there's 2 fixed parameters, it is possible that the tool cannot find a SID that would result in the intended shiny.
Square (Keep TID&PID)
Using provided TID and PID, the tool will generate a SID that would result in the mon being Square shiny.
Note: Because there's 2 fixed parameters, it is possible that the tool cannot find a SID that would result in the intended shiny.
Star (Keep TID&PID)
Using provided TID and PID, the tool will generate a SID that would result in the mon being Star shiny.
Note: Because there's 2 fixed parameters, it is possible that the tool cannot find a SID that would result in the intended shiny.
Star (Keep TID&SID)
My program contains a list of seed(which will lead to star shiny PID)'s based on TSVs. I only associated one PID per TSV.
So basically it just gives you a star shiny PID based on TSV.
When you use this option, make sure you change all data on the mon to match what is shown in the Overworld stats calculation.
Star (longer) (Keep TID&SID)
It searches through random seeds to find the TSV of your trainer. While searching, the user cannot hit the Generate Shiny button, as it's still searching.
Longer stands for it will take longer (if just a few seconds)
When you use this option, make sure you change all data on the mon to match what is shown in the Overworld stats calculation.
Square (longer) (Keep TID&SID)
It searches through random seeds to find the TSV of your trainer. While searching, the user cannot hit the Generate Shiny button, as it's still searching.
There are 3 things that can happen:
(1) The program finds a square shiny PID, so will push that as a result.
(2) The program finds a non-shiny PID, and will force shiny it to square, and will push that as a result.
(3) The program finds a star shiny PID. Being that you can't apply force shiny to star shiny PIDs, it will then loop back and search until result 1 or result 2 is found.
Longer stands for it will take longer. [tho it seems pretty immediate to me]
When you use this option, make sure you change all data on the mon to match what is shown in the Overworld stats calculation.
Unrelated note:
If a PID would be shiny when matched with TID/SID, and the game rolled a cannot be shiny for that encounter,
the top half of the PID will minus 0x1000, in order to get the mon non-shiny.
(There is an exception: if the PID starts with 0, it'll instead + 0x1000)
Overworld Stats Calculation
EC to Seed (optional)
It reverse converts an Encryption Constant to a Seed.
Stats Calculation w/ Seed
EC, PID, IVs, HT and WT will be calculated based on the Seed provided.
Random seed and calculate w/ seed
A random seed will be assigned to you.
EC, PID, IVs, HT and WT will be calculated based on the Seed provided.
Raid Stats Calculation
Stats Calculation based on Seed
Accept 64bit seed.
EC, PID, TID?, IVs Generated based on seed.
Experimental: Search via IVs
Very experimental. Allows users to get a seed (and thus PID) via wanted IVs.
Can be used to obtained various details for Overworld8 PID type or Max Raid/Max Lair PID type.
Details desired by player contains values that can be set by the player.
Game enforced details of the encounter contains values that are variable from encounter to encounter, and the player must insert the right values for the wanted encounter.
References:
PKHeX's Source code in relation to Xoroshiro calculation and Stats determination from the seed.
Sysbot Z3 page for raid stats determination from seed.
Leanny's Source code for Ability and Gender determination for raid stats from seed.
Admiral Fish's Raid stats generation write-up.
What's New in Version 1.0.15 (Hotfixed) See changelog
Released
Added: Max Raid determination into IV searcher
Hotfixed: Removing a shiny check that does not result in a legal shiny