Kirby 64 uses a 512 byte EEPROM chip to store save data. Software mirrors of the data are kept at 0x800EC9F8 and 0x800ECBB0 in RAM.
Offset | Size | Description |
---|---|---|
0x000 | 0x0C | Header |
0x00C | 0x04 | Header checksum |
0x010 | 0x54 | File 1 data |
0x064 | 0x04 | File 1 checksum |
0x068 | 0x54 | File 2 data |
0x0BC | 0x04 | File 2 checksum |
0x0C0 | 0x54 | File 3 data |
0x114 | 0x04 | File 3 checksum |
Checksums are generated by adding the sum of all the 32-bit words in a section to 0x97538642. The function that performs this operation is at 0x800B8F34.
Offset | Type | Description |
---|---|---|
0x0 | u32 | Latest Unlocked World |
0x4 | u32 | Latest Unlocked Level |
0x8 | u32 | Unknown |
0xC | u32 | Number of Cutscenes Watched |
0x10 | u8 | Percentage Complete |
0x11 | u8 | Sound Setting (0 for stereo, 1 for mono) |
0x12 | u8 | HUD Display Option |
0x13 | u8 | Unknown |
… | … | … |
0x18 | u16 | 100-Yard Hop Record |
0x1A | u16 | Bumper Crop Bump Record |
0x1C | u16 | Checkerboard Chase Record |
… | … | … |
It is possible to get a file with 100% completion using the function at 800BA5C4 with A0 set to the file you want to complete. This can be done in the vanilla game using a cheat code. Requirements:
Steps: