User:Lagnic/Contestant data structure (Generation III)

Bulbapedia bulb.png This article is intended to be moved into one of Bulbapedia's main content spaces.
Be mindful that it is still part of a personal userspace. Any content changes should be brought up on the talk page for this article.

The Pokémon contestant data structure is a 64-byte structure that determines all information about a contestant in the Generation III Pokémon Contests, such as species, nickname, Coordinator name, moves, and condition. All numbers are stored in little-endian order.

Structure

Offset Size
(bytes)
Type Description
0 2 Integer Pokémon species in game internal index
2 11 Text Pokémon's nickname
13 8 Text Coordinator's name
21 1 Integer Coordinator's overworld sprite index
22 3 Constant 00 00 FF
25 3 ??? Unknown flags, possibly contestant AI
28 2 Binary Contest participation flags
30 2 Integer Move 1 index
32 2 Integer Move 2 index
34 2 Integer Move 3 index
36 2 Integer Move 4 index
38 1 Integer Cool condition
39 1 Integer Beauty condition
40 1 Integer Cute condition
41 1 Integer Smart condition
42 1 Integer Tough condition
43 1 Integer Sheen
44 20 Constant 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00

Notes

Text

The Pokémon and Coordinator names are stored in the standard encoding and always end with FF. Any additional space is padded with 00.

Contest Participation

Contestant rank and categories are controlled by a 7-bit binary number. The first 5 bits control the category, in the order Tough, Smart, Cute, Beauty, Cool (reversed from the usual in-game order). The bit will be 1 if the Pokémon appears in that category and 0 otherwise. The final 2 bits control which rank the contestant will appear in:

0000000   Contest categories & rank
-----xx   00 (Normal), 01 (Super), 10 (Hyper), or 11 (Master)
----1--   Appears in Cool Contests
---1---   Appears in Beauty Contests
--1----   Appears in Cute Contests
-1-----   Appears in Smart Contests
1------   Appears in Tough Contests

Data Location

  This section is incomplete.
Please feel free to edit this section to add missing information and complete it.
Reason: Addresses for non-US games

The following are the RAM offsets for the first data entry (POOCHY) in the US version of Ruby, Sapphire and Emerald. As Pokémon FireRed and LeafGreen do not have contests, contestant data is not included in those games. Since a game is loaded into RAM at 0x08000000, this means that the offset in a ROM dump will only use the last six hexadecimal digits.

Game Address
(US)
Ruby 0x083C9424
Sapphire 0x083C9460
Emerald 0x085880A4

Fingerprints

Below is a sample of the data for the first five contestant data structures. Because the data structure includes the Pokémon nickname and Coordinator name, these fingerprints are specific to English language versions of the games.

Ruby & Sapphire

In Ruby and Sapphire there are 60 contestants, 15 for each rank, for a total data length of 3840 bytes.

1E 01 CA C9 C9 BD C2 D3 FF 00 00 00 00 C4 C3 C7 C7 D3 FF 00 00 07 00 00 FF 0F 00 0C 44 00 2E 00 2C 00 24 00 50 01 0A 04 0A 03 04 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // POOCHY
20 01 D4 C3 C1 C9 C9 C8 FF 00 00 00 00 BF BE C3 CE C2 FF 00 00 08 00 00 FF 0F 00 82 10 00 9C 00 27 00 21 00 57 01 0A 0A 06 01 02 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // ZIGOON
26 01 BE CF CD CE BF CC FF 00 00 00 00 BF D0 BB C8 FF 00 00 00 0B 00 00 FF 0F 00 21 08 00 3E 01 EC 00 71 00 10 00 02 0A 0A 0C 04 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // DUSTER
2A 01 BE C9 CE CD FF 00 00 00 00 00 00 C5 BF C6 CD BF D3 FF 00 10 00 00 FF 0F 80 20 60 00 75 00 EB 00 4B 01 4A 00 03 03 05 02 07 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // DOTS
30 01 CE BB CE BB D3 FF 00 00 00 00 00 C7 BB BE C3 CD C9 C8 FF 12 00 00 FF 0F 40 80 04 00 11 00 61 00 4C 01 2D 00 01 03 03 05 04 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // TATAY
...

Emerald

In Emerald there are 96 contestants, 24 for each rank, for a total data length of 6144 bytes.

1E 01 CA C9 C9 BD C2 D3 FF 00 00 00 00 C4 C3 C7 C7 D3 FF 00 00 07 00 00 FF 0F 00 0C 44 00 2E 00 2C 00 24 00 50 01 0A 04 0A 03 04 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // POOCHY
83 01 C7 CF CD C3 C6 C6 BF FF 00 00 00 BF BE C3 CE C2 FF 00 00 08 00 00 FF 0F 00 82 10 00 9C 00 07 01 21 00 57 01 0A 0A 06 01 02 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // MUSILLE
26 01 BE CF CD CE BF CC FF 00 00 00 00 BF D0 BB C8 FF 00 00 00 0B 00 00 FF 0F 00 21 08 00 3E 01 EC 00 71 00 10 00 02 0A 0A 0C 04 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // DUSTER
2A 01 BE C9 CE CD FF 00 00 00 00 00 00 C5 BF C6 CD BF D3 FF 00 10 00 00 FF 0F 80 20 60 00 75 00 EB 00 4B 01 4A 00 03 03 05 02 07 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // DOTS
30 01 CE BB CE BB D3 FF 00 00 00 00 00 C7 BB BE C3 CD C9 C8 FF 12 00 00 FF 0F 40 80 04 00 11 00 61 00 4C 01 2D 00 01 03 03 05 04 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 // TATAY
...


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


  This data structure article is part of Project Games, a Bulbapedia project that aims to write comprehensive articles on the Pokémon games.