Register - Login
Views: 96136863
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
12-11-18 01:36:25 AM

Jul - SM64 Hacking (Archive) - Save file format info New poll - New thread - New reply
Next newer thread | Next older thread
MarIO0
Member
Level: 16


Posts: 1/43
EXP: 16406
For next: 3850

Since: 09-03-09


Since last post: 5.0 years
Last activity: 5.0 years

Posted on 09-03-09 11:25:13 AM (last edited by MarIO0 at 09-03-09 11:27 AM) Link | Quote
Probably not useful, but it may be interesting to test some things.



Structure of the EEPROM dump (512 bytes)
----------------------------------------
----------------------------------------
56 bytes - Save Data 1
56 bytes - Save Data 1 (backup)
56 bytes - Save Data 2
56 bytes - Save Data 2 (backup)
56 bytes - Save Data 3
56 bytes - Save Data 3 (backup)
56 bytes - Save Data 4
56 bytes - Save Data 4 (backup)
64 bytes - Padding / random data?

The game seems to check if the checksum of the main save data is valid, if it isn't, then it tries to load the backup, and if it's also invalid, it deletes the save data.

Save Data (56 bytes each)
-------------------------
-------------------------

Settings
--------
Byte 9 - Bit 1: Cap stolen by snowman
Byte 9 - Bit 2: Cap stolen by bird
Byte 9 - Bit 3: Cap stolen by monkey
Byte 9 - Bit 5: 3rd floor (50 star) door
Byte 10 - Bit 1: Unknown. Seems to be set when opening the DDR/BitFS room?
Byte 10 - Bit 2: Water level outside the castle
Byte 10 - Bit 3: Princess secret slide door
Byte 10 - Bit 4: Whomp's Fortress door
Byte 10 - Bit 5: Cool, Cool Mountain door
Byte 10 - Bit 6: Jolly Roger Bay door
Byte 10 - Bit 7: Bowser in the dark world (8 star) door
Byte 10 - Bit 8: Bowser in the fire sea (30 star) door
Byte 11 - Bit 1: Valid game (Game is empty otherwise)
Byte 11 - Bit 2: Wing cap switch
Byte 11 - Bit 3: Metal cap switch
Byte 11 - Bit 4: Vanish cap switch
Byte 11 - Bit 5: Bowser in the dark world key (disabled when the door is opened)
Byte 11 - Bit 6: Bowser in the fire sea key (disabled when the door is opened)
Byte 11 - Bit 7: Basement door open
Byte 11 - Bit 8: 2nd floor door open

Stars
-----
Byte n: Bit 1/2/3/4/5/6/7 - Stars 1/2/3/4/5/6/7
Byte n + 1: Bit 8 - Cannon

Bob-omb Battlefield: n = 12
Whomp's Fortress: n = 13
Jolly Roger Bay: n = 14
Cool, Cool mountain: n = 15
Big Boo's Haunt: n = 16
Hazy Maze Cave: n = 17
Lethal Lava Land: n = 18
Shifting Sand Land: n = 19
Dire, Dire Docks: n = 20
Slowman's Land: n = 21
Wet-Dry World: n = 22
Tall, Tall Mountain: n = 23
Tiny-Huge Island: n = 24
Tick Tock Clock: n = 25
Rainbow Ride: n = 26

Secret stars
------------
Byte 8: Bit 1 - Toad near Hazy Maze Cave
Byte 8: Bit 2 - Toad near Tall, Tall Mountain
Byte 8: Bit 3 - Toad near Tick Tock Clock
Byte 8: Bit 4 - MIPS 1
Byte 8: Bit 5 - MIPS 2
Byte 27: Bit 1 - Bowser in the dark world*
Byte 28: Bit 1 - Bowser in the fire sea
Byte 29: Bit 1 - Bowser in the sky
Byte 30: Bit 1 - Princess slide
Byte 30: Bit 2 - Princess slide 21'
Byte 31: Bit 1 - Metal cap star
Byte 32: Bit 1 - Wing cap star
Byte 33: Bit 1 - Vanish cap star
Byte 34: Bit 1 - Flying special level
Byte 35: Bit 8 - Flying special level (cannon)
Byte 35: Bit 1 - Aquarium

* = Uses the same byte as the Rainbow Ride cannon!

"Unused" stars
--------------
All the bytes of the stars (8 + 12 to 35), plus byte 36, can be used to store stars. The stars should be saved in the low 7 bits, and the high bit is used to store the cannon flag.

The maximum number of stars (in the save file) is 26 * 7 = 182.

Coins
-----
The coins are saved in:

Bob-omb Battlefield: Byte 37
Whomp's Fortress: Byte 38
Jolly Roger Bay: Byte 39
Cool, Cool mountain: Byte 40
Big Boo's Haunt: Byte 41
Hazy Maze Cave: Byte 42
Lethal Lava Land: Byte 43
Shifting Sand Land: Byte 44
Dire, Dire Docks: Byte 45
Slowman's Land: Byte 46
Wet-Dry World: Byte 47
Tall, Tall Mountain: Byte 48
Tiny-Huge Island: Byte 49
Tick Tock Clock: Byte 50
Rainbow Ride: Byte 51

Checksum
--------
52: 2 bytes - Always 0x4441?
54: 2 bytes - Checksum-16 (Sum of all bytes to a 16-bit integer) of the data (from 0 to 54).

Unknown or unused
-----------------
Bytes 0 to 7.
Some bits, probably unused.

Lyskar
12210
-The Chaos within trumps the Chaos without-
Level: 185


Posts: 3339/12211
EXP: 87227572
For next: 532163

Since: 07-03-07

From: 52-2-88-7

Since last post: 4.0 years
Last activity: 3.0 years

Posted on 09-03-09 08:44:58 PM Link | Quote
Eh, save file data may be useful if people want to change what is saved/how things are saved/etc. so I figure it's useful.

If it wasn't, this topic would be in the trash. :p
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Save file format info New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 220d144 [2018-11-04]
©2000-2018 Acmlm, Xkeeper, Inuyasha, et al.

26 database queries.
Query execution time: 0.190285 seconds
Script execution time: 0.008708 seconds
Total render time: 0.198993 seconds