Pokédex data structure (Generation III): Difference between revisions

From Bulbapedia, the community-driven Pokémon encyclopedia.
Jump to navigationJump to search
Line 44: Line 44:


The offset determines where exactly the silhouette will be placed. For example if '''Pokémon offset''' = 10 then the silhouette of the Pokémon will be 10 pixels from the top and 10 pixels from the left. (for some reason, that cannot be exactly simulated outside of the game).
The offset determines where exactly the silhouette will be placed. For example if '''Pokémon offset''' = 10 then the silhouette of the Pokémon will be 10 pixels from the top and 10 pixels from the left. (for some reason, that cannot be exactly simulated outside of the game).
==Fingerprint==
<pre>
CF C8 C5 C8 C9 D1 C8 FF  00 00 00 00 00 00 00 00 // (entry 0, "UNKNOWN")
0D D3 55 08 00 00 00 01  00 00 00 01 00 00 00 00
CD BF BF BE FF 00 00 00  00 00 00 00 07 00 45 00 // (Bulbasaur, "SEED")
89 D3 55 08 00 00 64 01  11 00 00 01 00 00 00 00
CD BF BF BE FF 00 00 00  00 00 00 00 0A 00 82 00 // (Ivysaur, "SEED")
1B D4 55 08 00 00 4F 01  0D 00 00 01 00 00 00 00
CD BF BF BE FF 00 00 00  00 00 00 00 14 00 E8 03 // (Venusaur, "SEED")
A7 D4 55 08 00 00 00 01  00 00 84 01 06 00 00 00
C6 C3 D4 BB CC BE FF 00  00 00 00 00 06 00 55 00 // (Charmander, "LIZARD")
39 D5 55 08 00 00 BC 01  12 00 00 01 00 00 00 00
...
</pre>


{{data structure}}
{{data structure}}

Revision as of 18:26, 4 June 2010

Specs

A Pokédex data structure is a 32-byte piece of data.

Every Pokémon species in the Generation III games has data stored in the game that is used in Pokédex related functions and by certain moves, such as Low Kick.

Pokédex Data
Name 12 bytes
Height (10-1 m) 2 bytes
Weight (10-1 kg) 2 bytes
Description pointers 2 times 4 bytes
Pokémon scale 2 bytes
Pokémon offset 2 bytes
Trainer scale 2 bytes
Trainer offset 2 bytes

Notes

  • Name is 12 bytes long and comes in capital letters. 0x00 fills possible empty bytes. This is the Species Type not the Pokémon name (e.g. "SEED" not "BULBASAUR")
  • Height is measured in decimetres (10-1 metres), and is then converted to other units in some games.
  • Weight is measured comes in hectogrammes (10-1 kilogrammes), it is then converted to other units in some games.
  • Description pointers show to the game where the description for the particular Pokémon is; remember the GBA is little endian and that a ROM file is loaded at an offset of 0x08000000. Ruby, Sapphire and Emerald have two pages of text while FireRed and LeafGreen have only one - the second "description" is an empty string.
  • Pokémon offset is a signed 16-bit integer - if the raw value is greater 0x8000, then it is negative, with 0x8000 as -32,767 and 0xFFFF as -1.

Size compare function

In Generation III, there is a size page on the Pokédex, which uses data from the Pokédex to create a silhouette of the Pokémon standing next to the trainer. The size of both the trainer and Pokémon are determined by this formula:

x = (y × 256/z) pixels

Where y is the sprite size (64 pixels in this case) and z is the appropriate scale in hex and x rounded down is the size of silhouette. The game then resizes the sprite in a way similar a computer would do (without anti-aliasing of course).

The offset determines where exactly the silhouette will be placed. For example if Pokémon offset = 10 then the silhouette of the Pokémon will be 10 pixels from the top and 10 pixels from the left. (for some reason, that cannot be exactly simulated outside of the game).

Fingerprint

CF C8 C5 C8 C9 D1 C8 FF  00 00 00 00 00 00 00 00 // (entry 0, "UNKNOWN")
0D D3 55 08 00 00 00 01  00 00 00 01 00 00 00 00
CD BF BF BE FF 00 00 00  00 00 00 00 07 00 45 00 // (Bulbasaur, "SEED")
89 D3 55 08 00 00 64 01  11 00 00 01 00 00 00 00
CD BF BF BE FF 00 00 00  00 00 00 00 0A 00 82 00 // (Ivysaur, "SEED")
1B D4 55 08 00 00 4F 01  0D 00 00 01 00 00 00 00
CD BF BF BE FF 00 00 00  00 00 00 00 14 00 E8 03 // (Venusaur, "SEED")
A7 D4 55 08 00 00 00 01  00 00 84 01 06 00 00 00
C6 C3 D4 BB CC BE FF 00  00 00 00 00 06 00 55 00 // (Charmander, "LIZARD")
39 D5 55 08 00 00 BC 01  12 00 00 01 00 00 00 00
...


Data structure in the Pokémon games
Generation I Pokémon speciesPokémonPoké MartCharacter encodingSave
Generation II Pokémon speciesPokémonTrainerCharacter encoding (Korean) • Save
Generation III Pokémon species (Pokémon evolutionPokédexType chart)
Pokémon (substructures) • MoveContestContest moveItem
Trainer TowerBattle FrontierCharacter encodingSave
Generation IV Pokémon species (Pokémon evolutionLearnsets)
PokémonSaveCharacter encoding
Generation V-present Character encoding
TCG GB and GB2 Character encoding