Jump to content

Recommended Posts

Posted

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. 

Posted

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

 

Posted
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)?

Posted
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.

Posted
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?

Posted

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.

image.png

  • 2 months later...
Posted
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.

image.png

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'?

Posted
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!
 

Posted

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.

  • 7 months later...
Posted

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.

Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...