Explaining Odd/Even frames in Pokémon XD: Gale of Darkness


Preface

Many users have come to me confused as to why they are unable to hit their RNG targets in Gales. While this can be for many reasons (noise, etc.), it can also simply be due to how the RNG works - sometimes you may even need to advance beyond your target to hit it! This is explained in brief in amab's XD RNG imgur album (go read it if you haven't already), but understanding how Pokémon are generated properly is vitally important to succeeding at this RNG.

It is assumed that you are familiar with basic RNG terms such as "Frame" and how to use and interpret some kind of searching program such as RNGReporter or PokéFinder.

Example Reporter Output:

Initial Seed (in case you'd rather sift through Reporter's output): 0157c8f0

Example Nature lock (NL): Hardy Male -> Hardy Female -> Target (Natu)

Target Frame: 824003 0F2449D3 Timid 1 31 30 30 31 31 30 Electric 70

Explanation

From amab's guide, we know that it takes 7 frames to generate a Pokémon. Thus, we can rewrite our nature lock as so:

Hardy Male -> Hardy Female (823996) -> Target (824003)

We also know that each stage of the NL will alternate between Odd and Even, or vice-versa (eg if NL1 is Even, NL2 will be Odd, NL3 will be Even, NL4 will be Odd, etc). So, we can again rewrite our nature lock like this - the Target, or the 3rd stage of the NL (NL3) is odd, so the first stage (NL1) must also be Odd:

Hardy Male (Odd) -> Hardy Female (823996) -> Target (824003)

From here, we can work backwards from NL2 in reporter to find frames that satisfy the 1st stage of the NL (Hardy, Male). From latest to earliest, these are:

823991, 823985, 823916, 823878, 823808, 823762, 823733

Frame 823991 is odd, but because it takes 7 frames for the game to generate a Pokémon, hitting that would cause us to roll past our target NL2 (823991 + 7 = 823998, which would take our NL2 to 824016 and throw everything completely off).

823985 is both odd and is more than 7 frames before our NL2, so this is the upper limit of our NL1. Any frames further than this and we will miss our target NL3.

823916, 823878, 823808, and 823762 are all even, so also cannot be used in NL1. This leaves 823733 as the lower limit for our NL1. Due to the way that Gales treats Odd and Even frames, landing on any ODD frame greater than 823733 and less than or equal to 823985 will cause the NLs to line up in a way that NL is on our target frame (if we hit a frame before the upper limit of our NL1 but after the lower limit, the game will automatically roll forward until it hits the upper limit and generate the Pokémon there).


But Lego, you still haven't explained why I can advance past my target frame and then hit it later!

We will only land on our target NL3 if our NL1 is an ODD frame greater than 823733 and less than or equal to 823985. What happens if we hit an even one? Let's have a look.

Suppose we land on frame 823920. The next Hardy Male spread that occurs on an Even frame after this is 824140, which becomes our NL1. the next Female Hardy spread on an Odd frame after this 824199, which means our Natu would be generated on frame 824206 - well after our target of 824003. Advancing just a single frame more would cause us to land on 823921, which means our NL1 becomes 823985, NL2 becomes 823996 and we hit our target on frame 824003. So here you can see how advancing one single frame can effectively make our NL3 jump back almost 200 frames. This is why you should only worry about the odd frames that you get for your target if your target is odd, or the even frames that you get should your target be even.

Back to