Register - Login
Views: 99796996
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 05:48:04 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: 19175
For next: 1081

Since: 09-03-09


Since last post: 9.3 years
Last activity: 8.6 years

Posted on 09-03-09 02:25:13 PM (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: 192


Posts: 3339/12211
EXP: 99320646
For next: 552925

Since: 07-03-07

From: 52-2-88-7

Since last post: 7.4 years
Last activity: 7.3 years

Posted on 09-03-09 11:44:58 PM Link | Quote

Time/Date

09-03-09 05:44:58pm

Posts

3339

Days Here

793

Level

84
Metal_Man88
Local Moderator
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

____________________
Original Layout © Tobias Kelmandia
Next newer thread | Next older thread
Jul - SM64 Hacking (Archive) - Save file format info New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

28 database queries.
Query execution time: 0.086782 seconds
Script execution time: 0.012952 seconds
Total render time: 0.099734 seconds