User:Gates to Infinity Pokémon Data Info Data Structure

MDFW - The Mystery Dungeon Tree of Information.
Revision as of 21:29, 24 June 2025 by B (talk | contribs)
Jump to navigation Jump to search

pokemon_data_info.bin is a file in Nintendo 3DS Pokémon Mystery Dungeon: Gates to Infinity. This page describes its data structure as a means to research the games and further document them on the MDFW.

Information

each Pokémon has a block of 0xE0 bytes

from 0x0 to 0xF - each bit represents whether a TM/HM is learnable or not

from 0x10 to 0x43 - every move learned by leveling up, represented by 2 bytes each (26 moves)

from 0x44 to 0x5E - levels at which each move is learned. 1 byte for each move (26 moves)
0x5F - unknown (always 00?)

0x60 - one byte deciding which tiles a Pokémon can stand on:
bit 0 - unknown. active for most Pokémon
bit 1 - unknown. active for most Pokémon
bit 2 - unknown. inactive for most Pokémon
bit 3 - if active, the Pokémon can walk over water
bit 4 - if active, the Pokémon can walk over lava
bit 5 - if active, the Pokémon can walk on top of walls and enemies (occasionally doesn't let you walk toward enemies, seems a bit inconsistent)
bit 6 - if active, the Pokémon can float over tiles
bit 7 - unknown. seems to always be inactive?
^ the order is correct. check if I didn't reverse the order in rtdx notes

0x61 and 0x62 - unknown (u16)
0x63 - unknown. seems to be 01 for unrecruitable legendaries and 00 for (all?) other Pokémon (u8)

0x64 and 0x65 - National Pokédex number (u16)
0x66 and 0x67 - unknown. seems to be the same as above for some Pokémon (generations 1 and 2?) but different for others (u16)
0x68 (and 0x69? to check) - Pokémon Category (u16)
0x6a - recruit rate 1, first time during main story (16-bit signed)
0x6c - recruit rate 2, subsequent recruits or post-story (16-bit signed)
0x6e - unk? (u8)
0x6f - unk? (u8)

0x70 - base HP (2 bytes)
0x72 - base attack (2 bytes)
0x74 - base sp attack (2 bytes)
0x76 - base defense (2 bytes)
0x78 - base sp defense (2 bytes)

0x7A - index used when listing Pokémon? (ex. Snivy is 1, Servine is 2, Serperior is 3)
0x7B - unk

from 0x7C to 0xCF: data relating to evolutions and previous stages. these bytes form blocks of 0xC bytes for each possible evolution
for each block:
0x0 = previous stage ID (u16)
0x2 = next stage ID (u16)
0x4 = ID of the required item (u16)
0x6 = unk (u16)
0x8 = if not 00, the Pokémon needs to "open up with the team". the value can vary (u16)
0xA = level required for evolution (u8)
0xB = evolution method (01 by leveling up, 02 with item) (u8)

0xD0 and 0xD1 - unknown (always 00?)
0xD2 - experience.bin ID (u8)
0xD3 - unk (u8)
0xD4 - unk (u8)
0xD5 - unk (u8)
0xD6 - unk (u8)
0xD7 - unk (u8)
0xD8 - ability 1
0xD9 - ability 2
0xDA - unknown (always 00? intended for Hidden Abilities like in rtdx?)
0xDB - type 1
0xDC - type 2
(00 None, 01 Normal, 02 Grass, 03 Fire, 04 Water, 05 Electric, 06 Ice, 07 Fighting, 08 Poison, 09 Ground, 0A Flying, 0B Psychic, 0C Bug, 0D Rock, 0E Ghost, 0F Dragon, 10 Dark, 11 Steel)
0xDD - unknown (usually 01, Kecleon is 02)
0xDE - unknown (always 0A? equivalent to 0x96 in rtdx?)
0xDF - size (01 for most Pokémon, 03 for big boss-only Pokémon like Kyurem)

See Also

References

  • Researched by B.