User:SnorlaxMonster/Wonder Card data structure (Generation VI)
Most things are done in two-byte pairs (characters are all two-byte pairs).
Offset | Pokémon | Item |
---|---|---|
0x00-0x01 | unknown (WC type?) | unknown (WC type?) |
0x02-0x4B | Event title | Event title |
0x4C-0x53 | unknown (date received?) | unknown (date received?) |
0x54-0x65 | null | null |
0x66-0x67 | 255 | 255 |
0x68-0x69 | OT ID | Item |
0x6A-0x6B | unknown | null |
0x6C-0x6F | null | null |
0x70-0x71 | null | Quantity |
0x72-0x73 | null | null |
0x74-0x75 | Ribbon (bitlist) | null |
0x76-0x77 | Poké Ball | 255 |
0x78-0x79 | Item | null |
0x7A-0x7B | Move 1 | null |
0x7C-0x7D | Move 2 | null |
0x7E-0x7F | Move 3 | null |
0x80-0x81 | Move 4 | null |
0x82-0x83 | Pokémon | null |
0x84-0x85 | Form | null |
0x86-0x9F | null | null |
0xA0 | Nature (255 for random) | null |
0xA1 | Gender (0 ♂, 1 ♀) | null |
0xA2-0xA3 | Ability (see below) | null |
0xA4-0xA5 | null | null |
0xA6-0xA7 | Met location | null |
0xA8-0xA9 | Level | null |
0xAA-0xAE | null | null |
0xAF-0xB4 | FF | null |
0xB5 | null | null |
0xB6-0xCF | OT | null |
0xD0-0xD1 | unknown | null |
0xD2-0xD3 | null | null |
0xD4-0xD7 | always 02 28 6B EE (FE?) | null |
0xD8-0xDB | unknown (Shiny?) | null |
0xDC- | null (nickname?) | null |
Things missing: WC type (the WC text that is used; these are known to be pulled from a fixed pool stored on the game), date received (probably at least part of 0x4C-0x4F, not sure how it is stored), fixed IVs (probably 0xAF-0xB4 if set individually), Shininess (probably 0xD8-0xDB, since it is 0 for everything by Mamoswine, but not sure how it flags it), fateful encounter (may just be always on, or may be 0xD4-0xD7 since it is always the same value for WCs I can look at)
Note that some slots identified as always null/FF may have some use that has not yet been determined. Nickname is likely in one of the long strings of nulls, but nicknamed events have not yet been distributed (although have been announced). 0xD4-0xD7 also probably has some meaning.
Ribbons
Ribbons are stored as a two-byte bitlist across 0x74 and 0x75.
Bit# | Hex | Ribbon |
---|---|---|
01 | 0x0001 | ??? |
02 | 0x0002 | ??? |
03 | 0x0004 | ??? |
04 | 0x0008 | ??? |
05 | 0x0010 | ??? |
06 | 0x0020 | ??? |
07 | 0x0040 | ??? |
08 | 0x0080 | Event |
09 | 0x0100 | ??? |
10 | 0x0200 | ??? |
11 | 0x0400 | ??? |
12 | 0x0800 | Souvenir |
13 | 0x1000 | ??? |
14 | 0x2000 | Classic |
15 | 0x4000 | Premier |
16 | 0x8000 | ??? |
Ability
Abilities are stored as a two-byte word at 0xA2-0xA3.
"S#" is the number of non-Hidden Abilities a Pokémon has in that form (either 1 or 2). "Standards" means that the Pokémon can have either standard Ability. "HA?" is whether the Pokémon's species has a Hidden Ability in that form (even if not currently obtainable).
Hex | Ability | S# | HA? |
---|---|---|---|
0x0202 | Hidden | 2 | yes |
0x0300 | Standard | 1 | yes |
0x0302 | Hidden | 1 | yes |
0x0303 | Standards | 2 | yes |
Poké Balls
This is actually the standard method for storing Poké Balls for Pokémon that has been used since Gen V, but it isn't listed anywhere else on Bulbapedia so I'm including it here.
Dec | Hex | Ball |
---|---|---|
001 | 0x0001 | Master Ball |
002 | 0x0002 | Ultra Ball |
003 | 0x0003 | Great Ball |
004 | 0x0004 | Poké Ball |
005 | 0x0005 | Safari Ball |
006 | 0x0006 | Net Ball |
007 | 0x0007 | Dive Ball |
008 | 0x0008 | Nest Ball |
009 | 0x0009 | Repeat Ball |
010 | 0x000A | Timer Ball |
011 | 0x000B | Luxury Ball |
012 | 0x000C | Premier Ball |
013 | 0x000D | Dusk Ball |
014 | 0x000E | Heal Ball |
015 | 0x000F | Quick Ball |
016 | 0x0010 | Cherish Ball |
017 | 0x0011 | Fast Ball |
018 | 0x0012 | Level Ball |
019 | 0x0013 | Lure Ball |
020 | 0x0014 | Heavy Ball |
021 | 0x0015 | Love Ball |
022 | 0x0016 | Friend Ball |
023 | 0x0017 | Moon Ball |
024 | 0x0018 | Sport Ball |
025 | 0x0019 | Dream Ball |