Pokémon species data structure (Generation III)

From Bulbapedia, the community-driven Pokémon encyclopedia.
Revision as of 13:29, 25 February 2005 by Sheep (talk | contribs) (notes)
Jump to navigationJump to search

Specs

Every Pokémon in Ruby, Sapphire, FireRed, LeafGreen, and Emerald has a 28-byte base stats structure stored in the game's ROM somewhere.

Base Stats
HP byte
Attack byte
Defense byte
Speed byte
Sp. Attack byte
Sp. Defense byte
Type 1 byte
Type 2 byte
Catch rate byte
Exp. yield byte
Effort yield word
Item 1 word
Item 2 word
Female rate byte
Hatch steps byte
Base happiness byte
Level-up rate byte
Egg group 1 byte
Egg group 2 byte
Ability 1 byte
Ability 2 byte
Safari Zone flag byte
Color byte
00 byte

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.

Egg steps

The number of steps this represents is the value multiplied by 256.

Level-up type

Indicates the type of Experience pattern the species follows.

Effort yield

Certain bits count for particular stats:

(MSB)                        (LSB)
 0000  11  11  11  11  11 11
empty SDF SAK SPD DEF ATK HP

Safari Zone flag

Only Pokémon that appear in the Safari Zone have the Safari Zone flag; it determines their escape rate in Safari Zone.

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