Table of Contents

EEPROM Memory Map

The EEPROM is a chip inside the cartridge where the save game data is stored. The game stores the star, coin, cannon, and Mips data for each of the four save files and some main menu state. In order to protect against data corruption, the game stores a duplicate copy of each block and a 4 byte checksum at the end of it. If the checksums of the original and the copy don't match, then the game knows that something bad happened to your save file and will repair the corrupted data with the copied data.

Top Level Structure

Start End Description
0x000 0x037 File A data
0x038 0x06F File A data (Copy)
0x070 0x0A7 File B data
0x0A8 0x0DF File B data (Copy)
0x0E0 0x117 File C data
0x118 0x14F File C data (Copy)
0x150 0x187 File D data
0x188 0x1BF File D data (Copy)
0x1C0 0x1DF Main Menu data
0x1E0 0x1FF Main Menu data (Copy)

Save File Data

The first 8 bytes seem to always be loaded as 0x00, even if you try to save those bytes as something else. The secret stars at 0x08 are for Toads/Mips. The flags at bytes 0x09 to 0x0B are there to determine if you done a specific action like unlock a door, lost your hat, drained the water, etc. Bytes 0x1B to 0x24 are for the stars in the secret courses/bowser levels. 0x25 to 0x33 are your coin scores. Because each level only gets 1 byte to store the coin score, the maximum possible score you can get is 255. The final 4 bytes contain the checksum for that file chunk.

Range Description
0x00 - 0x07 Always 0x00?
0x08 Secret stars in castle (toads, Mips)
0x09 Bit 1: Cap stolen by snowman
Bit 2: Cap stolen by bird
Bit 3: Cap stolen by monkey
Bit 5: 3rd floor (50 star) door
0x0A Bit 1: Unknown. Seems to be set when opening the DDR/BitFS room?
Bit 2: Water level outside the castle
Bit 3: Princess secret slide door
Bit 4: Whomp's Fortress door
Bit 5: Cool, Cool Mountain door
Bit 6: Jolly Roger Bay door
Bit 7: Bowser in the dark world (8 star) door
Bit 8: Bowser in the fire sea (30 star) door
0x0B Bit 1: Valid game (Game is empty otherwise)
Bit 2: Wing cap switch
Bit 3: Metal cap switch
Bit 4: Vanish cap switch
Bit 5: Bowser in the dark world key (disabled when the door is opened)
Bit 6: Bowser in the fire sea key (disabled when the door is opened)
Bit 7: Basement door open
Bit 8: 2nd floor door open
0x0C - 0x1C Course Stars (the 8th bit is for the level's cannon)
0x1B - 0x24 Secret stars in courses (secret, bowser levels)
0x25 - 0x33 Course Coin scores
0x34 - 0x37 Checksum

This is data that is used in the file menu. Bytes 0x10-0x11 store the sound select option. Bytes 0x12 - 0x1B seem to be unused, you can write data here and not have it affect anything.

Range Description
0x00 - 0x0F Related to high scores?
0x10 - 0x11 Sound Select option: 0x0000 = Stereo, 0x0001 = Mono, 0x0002 = Headset
0x12 - 0x1B Unused?
0x1C - 0x1F Checksum

References