The Pokémon species data structure is a 44-byte structure that determines all information inherent to a Pokémon species, such as base stats, types, Egg Groups, and EV yield. Every Pokémon species in the Generation IVgames has a data structure stored in the game's ROM.
If the Pokémon only has one type, both Type 1 and Type 2 will be set to the same value.
Effort yield
Each stat is assigned two bits to determine how many EVs the Pokémon will give in that stat. The last 4 bits in the byte are empty (0).
Bits
Stat
0-1
HP
2-3
Attack
4-5
Defense
6-7
Speed
8-9
Special Attack
10-11
Special Defense
Items
If an item is assigned to Item 1, the Pokémon will have a 50% chance of having that item when encountered in the wild. An item assigned to Item 2 will have a 5% chance of being held. If both Item 1 and Item 2 are the same, then the Pokémon will always be holding that item when it is encountered.
This value determines the chance that a Pokémon will be male or female. If the species is not all male, all female, or gender unknown, then this value is compared to the lowest byte of a Pokémon's personality value to determine its gender.
Value
Gender
0
Always male ♂
31
7♂ / 1 ♀
63
3♂ / 1 ♀
127
1♂ / 1 ♀
191
1♂ / 3 ♀
225
1♂ / 7 ♀ (unused)
254
Always female ♀
255
Gender unknown
Level-up Type
The following values correspond to the different growth rates a Pokémon can have:
Value
Growth
Lv100 Exp
0
Medium Fast
1,000,000
1
Erratic
600,000
2
Fluctuating
1,640,000
3
Medium Slow
1,059,860
4
Fast
800,000
5
Slow
1,250,000
Egg Groups
The following values correspond to the different Egg Groups a Pokémon can belong to:
For Pokémon only in a single Egg Group, both entries are the same value.
Safari Zone rate
This value determines the rate at which the Pokémon will flee when encountered in the Safari Zone. Only Pokémon that appear in the Safari Zone have this value set.
Color
Color is used in the Pokémon Storage System box thumbnails. The following values correspond to the different possible colors:
Value
Type
0
Red
1
Blue
2
Yellow
3
Green
4
Black
Value
Type
5
Brown
6
Purple
7
Gray
8
White
9
Pink
For some Pokémon species, the bit 7 (the most significant bit) of this field is also 1. The reason for this is unclear.
TMs
The TMs which a Pokémon can learn are stored as a bunch of flags. Starting from the LSB of the first byte, and ending with the MSB of the last byte. The HMs are treated as TMs 93-100. The remaining 4 bits in the last byte are all 0.
Fingerprint
Below is a sample of the data for the first Pokémon species data structures.