Pokémon base stats data structure in Generation III

A base stats structure is a 28-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 III has a base stats structure stored in the game's ROM.

Types
The types are associated with the following values:

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

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.

Gender
This value determines the chance that a Pokémon will be male or female. If the species is not all male, all female, or genderless, then this value is compared to the lowest byte of a Pokémon's personality value to determine its gender.

Level-up Type
The following values correspond to the different growth rates a Pokémon can have:

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 and Flip
Color is used in the Pokédex's search function in. The following values correspond to the different possible colors:

"Flip" refers to whether the Pokémon's image is flipped when seen in the summary screen as opposed to when seen in the Pokédex or PC. This is determined by bit 7 (the most significant bit) of this field. For some Pokémon, such as, , and , this bit is set and the image is not flipped (i.e., the image is oriented the same in both places).

Storage
The following are the RAM offsets for the first base stats entry in each GBA game. Since a game is loaded into RAM at 0x08000000, this means that the offset in a ROM dump will only use the last six digits.

Fingerprint
Below is a sample of the data for the first few base stat data structures. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ?????????? (used for unknown/glitch Pokémon) 2D 31 31 2D 41 41 0C 03 2D 40 00 01 00 00 00 00 1F 14 46 03 01 07 41 00 00 03 00 00 // BULBASAUR 3C 3E 3F 3C 50 50 0C 03 2D 8D 00 05 00 00 00 00 1F 14 46 03 01 07 41 00 00 03 00 00 // IVYSAUR 50 52 53 50 64 64 0C 03 2D D0 00 06 00 00 00 00 1F 14 46 03 01 07 41 00 00 03 00 00 // VENUSAUR 27 34 2B 41 3C 32 0A 0A 2D 41 40 00 00 00 00 00 1F 14 46 03 01 0E 42 00 00 00 00 00 // CHARMANDER 3A 40 3A 50 50 41 0A 0A 2D 8E 40 01 00 00 00 00 1F 14 46 03 01 0E 42 00 00 00 00 00 // CHARMELEON 4E 54 4E 64 6D 55 0A 02 2D D1 00 03 00 00 00 00 1F 14 46 03 01 0E 42 00 00 00 00 00 // CHARIZARD 2C 30 41 2B 32 40 0B 0B 2D 42 10 00 00 00 00 00 1F 14 46 03 01 02 43 00 00 01 00 00 // SQUIRTLE 3B 3F 50 3A 41 50 0B 0B 2D 8F 10 04 00 00 00 00 1F 14 46 03 01 02 43 00 00 01 00 00 // WARTORTLE 4F 53 64 4E 55 69 0B 0B 2D D2 00 0C 00 00 00 00 1F 14 46 03 01 02 43 00 00 01 00 00 // BLASTOISE ...