Jump to content

Just want Colosseum Starters but am too Stupid


3rd Gen Expert

Recommended Posts

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. 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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!
 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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