Pokémon HGSS Save File Structure

From ProjectPokemon Wiki
Revision as of 09:39, 24 November 2010 by Atofeqoly (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page

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