User:Lagnic/Contestant data structure (Generation VI)

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 36-byte structure that determines all information about a contestant in the Generation VI Pokémon Contest Spectaculars, such as species, moves, and condition. All numbers are stored in little-endian order.

Structure

Offset Size
(bytes)
Type Description
0 1 Integer Contestant index
1 1 Integer Trainer class / VS portrait index
2 2 Constant FF FF
4 1 Binary Special contestant flag
5 3 Constant 00 00 00
8 1 Integer Contest rank: 00 (Normal), 01 (Super), 02 (Hyper), or 03 (Master)
9 1 Binary Contest participation flags
10 1 Integer 01 (Lisia), 02 (Wallace), 03 (Chaz), or 00 (other)
11 1 Constant FF
12 2 Integer Pokémon National Pokédex number
14 2 Integer Move 1 index
16 2 Integer Move 2 index
18 2 Integer Move 3 index
20 2 Integer Move 4 index
22 2 Constant FF FF
24 1 Integer Cool Condition
25 1 Integer Beautiful Condition
26 1 Integer Cute Condition
27 1 Integer Clever Condition
28 1 Integer Tough Condition
29 3 Constant FF FF FF
32 1 Integer Gender: 00 (Male), 01 (Female), or 02 (Gender unknown)
33 3 Constant 00 00 00

Notes

Special contestant flag

6-bit binary number. For Lisia, Wallace, Chaz, 0x21 or 0b100001. For other contestants, denotes contest rank:

000000
-----1   Always 1
----1-   Appears in Normal rank contests, is not Lisia, Wallace, or Chaz
---1--   Appears in Super rank contests, is not Lisia, Wallace, or Chaz
--1---   Appears in Hyper rank contests, is not Lisia, Wallace, or Chaz
-1----   Appears in Master rank contests, is not Lisia, Wallace, or Chaz
1-----   Lisia, Wallace, or Chaz

Contest participation flags

Contestant categories are controlled by a 5-bit binary number, in the order Toughness, Cleverness, Cuteness, Beauty, Coolness (reversed from the usual in-game order). The bit will be 1 if the Pokémon appears in that category and 0 otherwise:

00000   Appears in no contests
----1   Appears in Coolness Contests
---1-   Appears in Beauty Contests
--1--   Appears in Cuteness Contests
-1---   Appears in Cleverness Contests
1----   Appears in Toughness Contests

Data Location

Contest data is found in a/2/4/2 which unpacks into 11 binary files:

00 Contest move list (621 × 8 bytes)
01 Contest move effects (36 × 4 bytes)
02 Contest combinations (621 × 2 bytes + 1620 bytes)
03 Contestant data (69 × 36 bytes)
04 ??? (67 × 4 bytes)
05 ??? (36 bytes)
06 ??? (180 bytes)
07 ??? (204 bytes)
08 ??? (312 bytes)
09 ??? (732 bytes)
10 ??? (720 bytes)

Fingerprint

00 81 FF FF 03 00 00 00 00 11 00 FF 05 01 2C 00 B8 00 21 00 A8 01 FF FF 0A 04 0A 02 04 FF FF FF 00 00 00 00 // Poochin
01 96 FF FF 03 00 00 00 00 04 00 FF 07 01 2C 01 27 00 2A 00 3C 01 FF FF 04 02 08 02 04 FF FF FF 01 00 00 00 // Gonzer
02 82 FF FF 03 00 00 00 00 02 00 FF 0D 01 3E 01 EC 00 0A 02 B6 00 FF FF 04 08 04 04 04 FF FF FF 00 00 00 00 // Nox
03 88 FF FF 03 00 00 00 00 18 00 FF 11 01 6A 00 75 00 EB 00 49 00 FF FF 04 04 04 04 08 FF FF FF 01 00 00 00 // Seedottie
04 83 FF FF 03 00 00 00 00 01 00 FF 14 01 11 00 68 00 4C 01 F1 01 FF FF 12 02 04 04 02 FF FF FF 01 00 00 00 // Tailster
...


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.