Pokémon species data structure (Generation III)
Specs
A base stats structure is a 28-byte piece of data
Every Pokémon species in the Generation III games has a 28-byte base stats structure stored in the game's ROM somewhere. It determines all information inherent to the species, such as base Sp. Defense, Types, Egg Groups, and EV yield.
Base Stats | Data whose names are marked with an asterisk (*) have more information below the table. | |
---|---|---|
Name | Type | Description |
Base HP | byte | The base HP used in calculating Pokémon of the species's HP. |
Base Attack | byte | The base Attack used in calculating a Pokémon of the species's Attack. |
Base Defense | byte | The base Defense used in calculating a Pokémon of the species's Defense. |
Base Speed | byte | The base Speed used in calculating a Pokémon of the species's Speed. |
Base Sp. Attack | byte | The base Sp. Attack used in calculating a Pokémon of the species's Sp. Attack. |
Base Sp. Defense | byte | The base Sp. Defense used in calculating a Pokémon of the species's Sp. Defense. |
Type 1* | byte | The first type of Pokémon of the species. |
Type 2* | byte | The second type of Pokémon of the species. |
Catch rate | byte | The catch rate used in calculating the probability that a wild Pokémon of the species will be caught. |
Base Exp. yield | byte | The base Experience yield used in calculating how many Exp. points Pokémon who defeat another Pokémon of the species receives. |
Effort yield* | word | How many EVs Pokémon who defeat another Pokémon of the species receives, and in what stats. |
Item 1* | word | An item wild Pokémon of the species may hold. |
Item 2* | word | Another item wild Pokémon of the species may hold. |
Gender | byte | The value that is compared against the personality value of Pokémon of the species when determining what gender they will be, i.e. represents rate of females vs. males of the species. |
Steps to hatch | byte | The cumulative number of steps that must be taken before an Egg of the species hatches, divided by 256. |
Base Happiness | byte | The happiness/tameness at which Pokémon of the species have when first caught. |
Level-up type | byte | The pattern of Experience which Pokémon of the species require to level up. |
Egg group 1* | byte | Indicates an Egg Group that the species belongs to. |
Egg group 2* | byte | Indicates another Egg Group that the species belongs to. |
Ability 1 | byte | Indicates a special ability that Pokémon of the species may have. |
Ability 2 | byte | Indicates another special ability that Pokémon of the species may have. |
Safari Zone Rate | byte | Determines rate at which Pokémon of the species flee when encountered in the Safari Zone. Only Pokémon that appear in the Safari Zone have this set. |
Color* | byte | The Pokémon's color. |
0000 | word | Padding. |
Notes
Types
Types are enumerated like this:
00. Normal | 01. Fighting | 02. Flying | 03. Poison | 04. Ground | 05. Rock |
06. Bug | 07. Ghost | 08. Steel | 09. ??? | 10. Fire | 11. Water |
12. Grass | 13. Electric | 14. Psychic | 15. Ice | 16. Dragon | 17. Dark |
Type 9 (???) can be an actual type for a species as well as a type for an attack.
Effort yield
Certain bits count for particular stats:
(MSB) (LSB) 0000 11 11 11 11 11 11 empty SDF SAK SPD DEF ATK HP
Colors
Colors don't really affect any part of the game mechanics; though the MSB bit is set on some pokémon. Here is the list of the values and their relating colors:
00. Red | 01. Blue | 02. Yellow | 04. Green | 05. Black |
06. Brown | 07. Purple | 08. Gray | 09. White | 10. Pink |
Egg Groups
This determines with which type of Pokémon the Pokémon can breed to get eggs. See Egg groups. These are the direct values of the groups:
01. Monster | 02. Water 1 | 04. Bug | 05. Flying | 06. Ground |
07. Fairy | 08. Plant | 09. Humanshape | 10. Water 3 | 11. Mineral |
12. Indeterminate | 13. Water 2 | 14. Ditto | 15. Dragon | 16. No Egg |
Storage
The following are ROM offsets for the first entry (Bulbasaur) in each GBA game (US version?):
- Ruby: 0x001fec34
- Sapphire: 0x001febc4
- Emerald: 0x002f0d70
- FireRed: 0x002111A8
- LeafGreen: 0x00211184