Contents

Format

A Pokémon's data is slightly more complex than the rest of the encapsulating structure. It is stored as four distinct substructures, each 12 bytes in length. (The Notes section below explains some of these fields in greater detail.)

Substructure order

The order of the structures is determined by the personality value of the Pokémon modulo 24, as shown below, where G, A, E, and M stand for the substructures growth, attacks, EVs and condition, and miscellaneous, respectively.

00. GAEM

06. AGEM

12. EGAM

18. MGAE

01. GAME

07. AGME

13. EGMA

19. MGEA

02. GEAM

08. AEGM

14. EAGM

20. MAGE

03. GEMA

09. AEMG

15. EAMG

21. MAEG

04. GMAE

10. AMGE

16. EMGA

22. MEGA

05. GMEA

11. AMEG

17. EMAG

23. MEAG

Encryption

The four data substructures are stored in an encrypted form. Decrypting the data involves two steps: actually decrypting the data, and validating the decrypted data. To obtain the 32-bit decryption key, the entire Original TrainerID number must be XORed with the personality value of the entry. This key can then be used to decrypt the data by XORing it, 32 bits (or 4 bytes) at a time. To validate the checksum given in the encapsulating Pokémon data structure, the entirety of the four unencrypted data substructures must be summed into a 16-bit value.

Notes

PP bonuses

The PP bonuses byte stores the number of times PP has been increased for each move in the attacks substructure. Each move has two bits, meaning the PP of each move can be increased 0 to 3 times.

Bits

Move

0-1

Move 1

2-3

Move 2

4-5

Move 3

6-7

Move 4

Pokérus status

Pokérus status is stored in a single byte, with the upper and lower halves representing distinct values.

Bits

Interpretation

0-3

Days left until Pokérus is cured

4-7

Pokérus "strain"

Any value from 0 to 15 is valid for the strain, with 0 indicating that the Pokémon does not have Pokérus at all. The number of days can be any value from 0 to 4, although for some "strains", some of those higher values are also invalid. If any bit is set in the "strain" and the number of days is at 0, the Pokémon has been "cured" of Pokérus, as indicated by a small black dot on the Pokémon's status screen.

Origins

Trainer gender tells the game how to color the name of the Pokémon's Original Trainer on the Pokémon's status screen. If Level met is 0, it is interpreted as the Pokémon having been hatched from an Egg; however, the games only differentiate a hatched Pokémon from other Pokémon if its current Trainer is the Pokémon's Original Trainer. If a hatched Pokémon is traded, its origin text on the status screen is displayed just like a caught Pokémon's and will not say "Hatched" or "Egg".

IVs, Egg, and Ability

IVs for each of the stats from HP to Special Defense take up the lowest 30 bits of this field, each IV taking 5 bits. Bit 30 is a 1 if the Pokémon is still an Egg or 0 otherwise. Bit 31 indicates the Ability the Pokémon has: 0 indicates its first Ability, while 1 indicates its second Ability (if it has one).

In the table below, bit 0 is the least significant bit of the 32-bit field and bit 31 is the most significant.

Bits

Stat

0-4

HP

5-9

Attack

10-14

Defense

15-19

Speed

20-24

Special Attack

25-29

Special Defense

30

Egg?

31

Ability

Ribbons and Obedience

For most of the Ribbons, a value of 0 indicates that the Pokémon does not have the Ribbon while 1 indicates that it does. For the Contest Ribbons, the values 1 to 4 indicate that the Pokémon has the Ribbon or Ribbons for (respectively) the Normal, Super, Hyper, and Master Ranks of that Contest.

The last 6 possible spots for Ribbons are variable. The data identifying what Ribbons these spots correspond to is stored elsewhere. The full list of possibilities for these can be seen here. The only two of these special Ribbons that remain reliably obtainable are those for purifying a Shadow Pokémon and for beating Mt. Battle.

The highest bit of this field, bit 31, determines the obedience of Mew and Deoxys. If this bit is not set, Mew and Deoxys cannot be traded to or from Pokémon FireRed, LeafGreen, or Emerald, and will always disobey the player in battle in those games (except in link battles). If this bit is set on a Pokémon that is transferred to a later generation, the Pokémon will be treated as having had a fateful encounter.[1]