Tux Posted July 10, 2011 Posted July 10, 2011 (edited) Hi, I don't know if this has already been done by someone, but yesterday I did some research in my Platinium save file. EDIT : Now in HGSS. Here is the results (in addition to the wiki) (all offsets are relative to the starting offset of a block) : Pokémon Platinium General block offsets : Adventure started : 0x34 Unsigned 32-bit integer In seconds since 1/1/2000 00:00:00 Pokémon League Champion date : 0x3C Unsigned 32-bit integer In seconds since 1/1/2000 00:00:00 Total Playtime : 0x8A Same as in DP Museum resurrected Pokemon's Pokedex ID : 0xF14 Unsigned 16-bit integer National Pokedex's Pokemon ID (?) Poketch structure : starting at 0x1160 In order : Poketch enabled flag (0 : disabled; else : enabled), number of Poketch Apps enabled (max 25 / 0x19, offset : 0x1161) , currently viewed one (0x1162) , "Poketch Apps enabled" flag list (25 flags starting at 0x1163). Same as in DP. Map ID number : 0x1280 Unsigned 16-bit integer "Sinnoh Pokedex" flag : 0x1642 "National Pokedex" flag : 0x1643 First Daycare Pokémon : 0x1654 236-byte Pokemon structure Second Daycare Pokemon : 0x1740 236-byte Pokemon structure Daycare Egg's PID : 0x128C Unsigned 32-bit integer Map Coordinates : Each coordinates is a unsigned 16-bit (32-bit, with 16 unused bits, IMO) integer. X : 0x287E Y : 0x2882 Z : 0x2886 Underground scores : Each coordinates is a unsigned 32-bit integer. Players met : 0x3CB4 Gifts given : 0x3CB8 Spheres obtained : 0x3CC0 Fossils obtained : 0x3CC4 Traps avoided : 0x3CCC :cool: Traps triggered : 0x3CD0 Flags captured : 0x3CE8 Poffins : starting at 0x52E8 Same Poffin structure as in DP (?) Note about poffin type : 0x1E = No poffin; 0x01 = Spicy/dry (?) Battle scores (battle wins) : starting at 0x68E0 10 consecutive unsigned 16-bit integers Same order as in DP and as in the wiki. Battle points : 0x7234 Unsigned 16-bit integer Repel remaining effect's countdown : 0x8073 Unsigned 8-bit integer GTS Pokemon : 0x8080 236-byte Pokemon structure Offset may not be correct Storage block offsets : Currently viewed box (?) : 0x00 8-bit integer Box 1 is 0x00 Pokemon : starting at 0x04 Each Pokemon is 236-byte long There isn't any padding between boxes. Box names : 18 names, starting at 0x11EE4 Missing informations : Pal Park's Pokémon offsets (but this is very easy to find ... ) Global score, Pokémon scores (?), Number of won contests (?), Number of Ribbons (?) : Cannot be found "raw" in the savefile. (I'm sure of this for the global score) COM himself wasn't able to find them. So, these infos are probably encrypted, somehow, somewhere. Pokémon Heart Gold & Soul Silver General block offsets : Counters box : 0x84 Unsigned 16-bit integer Max. value is 50,000 (0xC350) Lotto number : 0xE5C Unsigned 16-bit integer Blue card points : 0x1058 Unsigned 16-bit integer (max 9999) Pokédex stucture : See this thread Pokémon caugth : 0x12BC Pokémon seen : 0x12FC Lang entries unlocked : 0x13FD (1 byte (bitfield, see link) per Pokémon) Default form : 0x133C (1 bit per Pokémon) (1b = Female, 0b = Male) Genders (forms) unlocked (1bit per Pokémon) : 0x13FC If only one form has been unlocked, then 1b = Female, 0b = Male Else, 1b = Male, 0b = Female Special cases : First Spinda seen's PID : 0x13BC (prediction) Shellos forms : 0x13C0 Gastrodon forms : 0x13C1 Burmy forms : 0x13C2 Wormadam forms : 0x13C3 Unown forms : 0x13C5 Rotom forms : 0x15F0 Deoxys forms 1 : 0x12FB Deoxys forms 2 : 0x133B Shaymin forms : 0x15F4 Giratina forms : 0x15F5 First daycare Pokémon : 0x15FC 136-byte Pokémon structure Second daycare Pokémon : 0x16E8 136-byte Pokémon structure Daycare Egg's PID : 0x17D4 Unsigned 32-bit integer Seals box's data : 0x4E20 80 8-bit integers, each corresponding to a quantity (max 99 / 0x63). Apicorn box's data : 0xE558 7 8-bit integers, each corresponding to a quantity (max 99/0x63). Battle points : 0x5BB8 Unsigned 16-bit integer Castle points : 0x52F4 (?) Unsigned 16-bit integer Battle tower wins : (?) Unsigned 16-bit integers Record : 0x5264 Current : 0x5266 Repel's remaining steps : 0x6909 Unsigned 8-bit integer GTS backup Pokémon : 0x6910 236-byte Pokémon structure Pokéathlon points : 0xE548 Unsigned 32-bit integer Pokéwalker backup Pokémon : 0xE5E0 136-byte Pokémon structure Pokéwalker Steps : 0xE704 Unsigned 32-bit integer Pokéwalker Steps : 0xE708 Unsigned 32-bit integer Storage block offsets : Currently viewed box : 0x12000 8-bit integer Box 1 is 0x00 Remember : all offsets here are relative to their block's start (here, the storage block start is 0x7200) Missing informations : Pal Park's Pokémon offsets (but this is very easy to find ... ) Global score, Pokémon scores (?), Number of won contests (?), Number of Ribbons (?), battle scores etc... : Cannot be found "raw" in the savefile. (I'm sure of this for the global score) These infos are probably encrypted, somehow, somewhere. Software I used / credits : Pokésav vbindiff An emulator PokéGen I'll now do some research in HGSS save files, then in BW ones ... I hope my research will be useful. Edited July 13, 2011 by Tux Adding info
DeadSkullzJr Posted October 16, 2019 Posted October 16, 2019 0xE704 - Pokewalker Steps (32-bit) 0xE708 - Pokewalker Watts (32-bit) The documentation marked 0xE708 as the Pokewalker steps when it should have been the watts. Also I am sorry for the giant bump. At least you are getting the right information out of the post though.
VersaceBot Posted November 6, 2019 Posted November 6, 2019 Confused as to what these values are. Are they memory addresses? Values?
DeadSkullzJr Posted January 31, 2020 Posted January 31, 2020 On 11/6/2019 at 4:05 PM, VersaceBot said: Confused as to what these values are. Are they memory addresses? Values? These are addresses via the save file itself. I wouldn't use this on any ordinary save for the simple fact that changing certain things can actually cause the save to be corrupted when using it in the game, this is purely for documentation purposes for generally more advanced users who know what they are doing, that's why things like PKHeX exist because these creators know the saves better than the average user, they know what needs to be changed and what not. As for the physical memory addresses (aka RAM), most of this information is actually dynamic rather than static. The addresses above are NOT for the memory but the save itself, I repeat these addresses are for the save itself, NOT the memory.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now