3rd Gen Expert Posted October 26, 2023 Posted October 26, 2023 Have spent 3 hours trying to research and replicate the Umbreon/Espeon generation. Either I still don't get it, or my arbitrary TID/SID combo doesn't work. Still haven't gotten a straight answer on whether or not PKhex is 'wrong' when it says that unedited Umbreon/Espeon's are flagged as illegal, just explanations about Umbreon being generated 7 frames later than expected...and Espeon being generated 7 frames after Umbreon, and the correct Espeon PID being another 2 frames ahead. Working with the pair that is already available here shows 'Bite' is illegal. Whatever. Changes: OT: Wes TID: 64821 SID: 34625 Don't care about anything else. Getting discrepancies (both wrong in pkhex of course) when using Pokefinder vs RNG Reporter. Also unsure why Espeon/Umbreon aren't in the encounter database but Eevee (XD) is. If someone could just walk me through the process it would be appreciated.
Kaphotics Posted October 26, 2023 Posted October 26, 2023 The RNG correlation for Colosseum starters is more than just PIDIV. When the game generates your trainer data, it also generates your starters, so the starters have a correlation with the TID/SID. It's not permitted for an "arbitrary TID/SID combo"; a given TID/SID combo must have a corresponding PIDIV for both starters, and the starters must generate as antishiny with fixed gender, so it's not a "7 frames later". If the starter ends up shiny or the wrong gender, it will re-roll the PID until it is correct. The only seed that gives you your desired TID/SID is 0x3074D719. Span<uint> seeds = stackalloc uint[4]; var count = XDRNG.GetSeeds(seeds, (34625u << 16) | 64821u); seeds = seeds[..count]; seeds.Dump(); With that seed, the resulting Umbreon is: PID: 391A8655 Umbreon (M) IVs: 3 HP / 10 Atk / 17 Def / 22 SpA / 23 SpD / 13 Spe Ability: Synchronize Level: 26 Serious Nature - Bite - Taunt - Secret Power - Snatch And Espeon is: 0x81DDDE59 Espeon (M) IVs: 13 HP / 10 Atk / 2 Def / 9 SpA / 11 SpD / 0 Spe Ability: Synchronize Level: 25 Mild Nature - Confusion - Return - Reflect - Helping Hand
3rd Gen Expert Posted October 26, 2023 Author Posted October 26, 2023 29 minutes ago, Kaphotics said: The RNG correlation for Colosseum starters is more than just PIDIV. When the game generates your trainer data, it also generates your starters, so the starters have a correlation with the TID/SID. It's not permitted for an "arbitrary TID/SID combo"; a given TID/SID combo must have a corresponding PIDIV for both starters, and the starters must generate as antishiny with fixed gender, so it's not a "7 frames later". If the starter ends up shiny or the wrong gender, it will re-roll the PID until it is correct. The only seed that gives you your desired TID/SID is 0x3074D719. Span<uint> seeds = stackalloc uint[4]; var count = XDRNG.GetSeeds(seeds, (34625u << 16) | 64821u); seeds = seeds[..count]; seeds.Dump(); With that seed, the resulting Umbreon is: PID: 391A8655 Umbreon (M) IVs: 3 HP / 10 Atk / 17 Def / 22 SpA / 23 SpD / 13 Spe Ability: Synchronize Level: 26 Serious Nature - Bite - Taunt - Secret Power - Snatch And Espeon is: 0x81DDDE59 Espeon (M) IVs: 13 HP / 10 Atk / 2 Def / 9 SpA / 11 SpD / 0 Spe Ability: Synchronize Level: 25 Mild Nature - Confusion - Return - Reflect - Helping Hand Ah, and there he is. Really didn't want to be another in long line of ignorant people bothering you with the same question but here we are. Thanks...I suspected there may be additional restrictions on TID/SID options/combinations after I exhausted everything else. While I appreciate you citing the source, is there no way to calculate this sort of thing without directly tapping the source code (for method dump() and class XDRNG)?
Kaphotics Posted October 26, 2023 Posted October 26, 2023 3 minutes ago, 3rd Gen Expert said: While I appreciate you citing the source, is there no way to calculate this sort of thing without directly tapping the source code (for method dump() and class XDRNG)? PKHeX.Core is available on NuGet and can be used as a class library for directly calling functions. Many people use LINQPad to write thier own C# scripts w/ the PKHeX.Core.dll It's not beginner friendly, because you'd have to write your own code to use PKHeX's API yourself. The first snippet of my reply is such a script that calculates and spits out the possible seed for your desired TID/SID.
3rd Gen Expert Posted October 26, 2023 Author Posted October 26, 2023 7 hours ago, Kaphotics said: PKHeX.Core is available on NuGet and can be used as a class library for directly calling functions. Many people use LINQPad to write thier own C# scripts w/ the PKHeX.Core.dll It's not beginner friendly, because you'd have to write your own code to use PKHeX's API yourself. The first snippet of my reply is such a script that calculates and spits out the possible seed for your desired TID/SID. A NuGet package?? I knew the code was on GitHub, but knowing there's a library to access is somehow so wild to me. Alright, next problem: doesn't look like I will be using LinqPad...as I need the paid version to use other NuGet Packages. Which is fine, as I am partial to VS already. However, dump() is not available in VS out the box...so looking at the value of seeds[] while debugging shows index 0 with a value of 723889376 after running your little script. Converting to hex is 2B25ACE0, which is not '3074D719'... Where did I go wrong?
Kaphotics Posted October 26, 2023 Posted October 26, 2023 Dump is linqpad, but it's essentially the same as Console.Write() or whatever. You can manually download the NuGet package yourself, rename the extension to zip, then extract the dll to a roller and manually add it as a reference in linqpad.
3rd Gen Expert Posted January 5 Author Posted January 5 On 10/26/2023 at 1:50 PM, Kaphotics said: Dump is linqpad, but it's essentially the same as Console.Write() or whatever. You can manually download the NuGet package yourself, rename the extension to zip, then extract the dll to a roller and manually add it as a reference in linqpad. I have manually downloaded the nuget package and saved as zip. I can see the PKHeX.Core.dll file and can pull it out to reference in linqpad (listed under F4->Additional References), but the XDRNG class is still not found. Perhaps I missed a step...what is a 'roller'?
Kaphotics Posted January 5 Posted January 5 Oops, roller => folder. You have to reference the dll and import the namespace `PKHeX.Core` on the other tab.
3rd Gen Expert Posted January 5 Author Posted January 5 1 hour ago, Kaphotics said: Oops, roller => folder. You have to reference the dll and import the namespace `PKHeX.Core` on the other tab. Agh, I suspected as much...really thought it would be automatic for some reason. And I just realized why that code didn't work in VS. I mistakenly put the operator in the wrong spot (I actually just copied the code you left in the first reply...you corrected it in a later reply). Thanks, I am finally independent. Two last questions: 1. Is this the same RNG method used for XD Eevee (and Beta Vaporeon and Jolteon)? 2. Regardless of that answer, is there anywhere else that this method is used? THANK YOU!
Kaphotics Posted January 5 Posted January 5 Should be the same for both types of starters, just that Espeon and Umbreon generate from the same seed one after another. You can use the obtained Trainer ID seeds to see the PID/IV of the starters via Pokefinder Double check which frame is the one you get by comparing against our example case above.
Psalm 30_5 Posted August 27 Posted August 27 I don’t mean to resurrect a dead thread, but I also did not want to make the mistake to create a new one. I have followed all the steps laid out by @Kaphotics using a TID of 54807 and a SID of 20785. The formula on Linqpad spit out 3927033709, which equates to the seed EA11C76D. I’ve tried adding that to my profile in PokeFinder and filling in the seed slot in RNG Reporter with the appropriate TID and SID. I’ve gone as far as to check 14 frames and have not managed to get one valid check for Umbreon. I’m struggling to understand where the ball may be dropped.
Kaphotics Posted August 27 Posted August 27 The latest release should support using the encounter database and specifying criteria from the trainer data it generates with. Turn off use tabs as criteria so that only the trainer data is used, as you do not know the IVs you need.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now