Pokémon HGSS Save File Structure: Difference between revisions

From ProjectPokemon Wiki
Jump to navigation Jump to search
No edit summary
(Added Kanto badges)
Line 76: Line 76:
: 0x3F = Lady
: 0x3F = Lady
: 0x46 = Psychic
: 0x46 = Psychic
===Kanto League Badges - 0x83===
*Unsigned 8bit bitfield
*Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events.
: 0x01 = Boulder Badge
: 0x02 = Cascade Badge
: 0x04 = Thunder Badge
: 0x08 = Rainbow Badge
: 0x10 = Soul Badge
: 0x20 = Marsh Badge
: 0x40 = Volcano Badge
: 0x80 = Earth Badge


===Total Playtime - 0x86===
===Total Playtime - 0x86===

Revision as of 17:06, 16 September 2009

Small block offsets

Adventure Started - 0x34

  • Unsigned 32bit integer.
  • Number of seconds since 1/1/2000 00:00:00

Pokémon League Champ Date - 0x3C

  • Unsigned 32bit integer.
  • Number of seconds since 1/1/2000 00:00:00

Trainer Name - 0x64

Trainer ID - 0x74

  • Random unsigned 16bit integer
  • The visible identification number of a trainer
  • Determines ownership of Pokémon.

Secret ID - 0x76

  • Random unsigned 16bit integer
  • The hidden identification number of a trainer
  • Determines ownership of Pokémon.
  • Determines variation in the game.

Money - 0x78

  • Unsigned 32bit integer.
  • Limited to 0xF423F (999,999)

Trainer Gender - 0x7C

  • 0 if male, 1 if female.
  • Determines ownership of Pokémon.

Country of Origin - 0x7D

  • Unsigned 8bit integer.
  • Determines whether or not Pokémon get an outsider EXP bonus.
  • Countries other than Japan are inferred from D/P/Pt, since the game has only been released in Japanese.
0x1 = 日本語 (Japan)
0x2 = English (US/UK/AU)
0x3 = Français (France/Québec)
0x4 = Italiano (Italy)
0x5 = Deutsch (Germany)
0x7 = Español (Spain/Latin Americas)
0x8 = 한국어 (South Korea)

Johto League Badges - 0x7E

  • Unsigned 8bit bitfield
  • Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events.
0x01 = Zephyr Badge
0x02 = Hive Badge
0x04 = Plain Badge
0x08 = Fog Badge
0x10 = Storm Badge
0x20 = Mineral Badge
0x40 = Glacier Badge
0x80 = Rising Badge

Multiplayer Avatar - 0x7F

  • Unsigned 8bit integer.
  • Determines the sprite seen by other players in a multiplayer environment such as the Union Room.
0x00 = None
0x03 = School Kid
0x05 = Bug Catcher
0x06 = Lass
0x07 = Battle Girl
0x0B = Ace Trainer Male
0x0D = Beauty
0x0E = Ace Trainer Female
0x0F = Roughneck
0x1F = Pop Idol
0x23 = Social
0x25 = Cowgirl
0x2A = Ruin Maniac
0x32 = Black Belt
0x3E = Rich Boy
0x3F = Lady
0x46 = Psychic

Kanto League Badges - 0x83

  • Unsigned 8bit bitfield
  • Determines what PokéMart items are for sale, what level outsider Pokémon will obey until, and flags certain in-game events.
0x01 = Boulder Badge
0x02 = Cascade Badge
0x04 = Thunder Badge
0x08 = Rainbow Badge
0x10 = Soul Badge
0x20 = Marsh Badge
0x40 = Volcano Badge
0x80 = Earth Badge

Total Playtime - 0x86

  • Hours = unsigned 16bit integer.
  • Minutes = unsigned 8bit integer.
  • Seconds = unsigned 8bit integer.

Number of Current Party Pokémon - 0x94

  • Unsigned 8bit integer.

Party Pokémon - 0x98

The Pokémon in the trainer's party.

  • 6 blocks of 236byte structures
Main article: Pokemon NDS Structure

General Items - 0x644

Main article: Other items

The items in the Trainer's general Items bag pocket.

  • 165 blocks of 4 byte structures (two bytes for item index, two bytes for quantity)

Key Items - 0x8D8

Main article: Key items

The items in the Trainer's Key Items bag pocket.

  • 43 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).

TMs & HMs - 0x9A4

Main article: TMs and HMs

The items in the Trainer's TMs & HMs bag pocket.

  • 100 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).
  • TMs & HMs are auto-sorted by item index in ascending order.

Mail - 0xB34

Main article: Mail

The items in the Trainer's Mail bag pocket.

  • 12 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).

Medicine - 0xB64

Main article: Medicine

The items in the Trainer's Medicine bag pocket.

  • 40 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).

Berries - 0xC04

Main article: Berries

The items in the Trainer's Berries bag pocket.

  • 64 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).
  • Berries are auto-sorted by item index in ascending order.

Balls - 0xD04

Main article: Pokéballs

The items in the Trainer's Balls bag pocket.

  • 24 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).

Battle Items - 0xD64

Main article: Battle items

The items in the Trainer's Battle Items bag pocket.

  • 31 blocks of 4 byte structures (two bytes for item index, two bytes for quantity).

First Registered Item - 0xDE0

The first Key items registered for use with the Y button.

  • Unsigned 16bit integer, representing the ID of the item.

Second Registered Item - 0xDE2

The first Key items registered for use with a button on the Touch Screen.

  • Unsigned 16bit integer, representing the ID of the item.

Starter Pokémon - 0xE44

The Pokédex number of the starter chosen.

  • Unsigned 16bit integer.

Map ID Number - 0x1234

Main article: MAP LIST HGSS
  • Unsigned 16bit integer.

Player Map X Coordinate - 0x236E

  • Unsigned 16bit integer.

Player Map Y Coordinate - 0x2372

  • Unsigned 16bit integer.

Player Map Z Coordinate - 0x2376

  • Unsigned 16bit integer.

Follower Map X Coordinate - 0x23BE

  • Unsigned 16bit integer.

Follower Map Y Coordinate - 0x23C2

  • Unsigned 16bit integer.

Follower Map Z Coordinate - 0x23C6

  • Unsigned 16bit integer.

Money held by mother - 0xC0D8

  • Unsigned 32bit integer.
  • Limited to 0xF423F (999,999)

Big block offsets

Pokémon in Storage - 0xF700

The Pokémon in Bill's PC.

  • 18 blocks of 4080byte structures (each box contains 30 136byte Pokémon structures).
  • Each box structure is separated by 16 bytes of space (unlike D/P).
Main article: Pokemon NDS Structure

Box Names - 0x21708

  • 18 blocks of 40byte structures
  • The first 11 words (22 bytes) each word represent a character in the game's character table.

Box Wallpapers - 0x219D8

  • 18 bytes, each representing the wallpaper for the corresponding box.
0x20 = Ho-oh
0x21 = Lugia
0x22 = TV
0x23 = Pokéthlon
0x24 = Starters
0x25 = Pichu
0x26 = Ecruteak
0x27 = Team Rocket