This is an old revision of the document!
Mario Kart 64 uses a 512 byte EEPROM unit to save time trial records and the selected sound mode. A mirror of EEPROM data is kept at 8018EB90 in RAM.
Offset | Length | Description |
---|---|---|
0x000 | 24 | Luigi raceway record set |
0x018 | 24 | Moo Moo Farm record set |
0x030 | 24 | Koopa Troopa Beach record set |
0x048 | 24 | Kalimari Desert record set |
0x060 | 24 | Toad's Turnpike record set |
0x078 | 24 | Frappe Snowland record set |
0x090 | 24 | Choco Mountain record set |
0x0A8 | 24 | Mario Raceway record set |
0x0C0 | 24 | Wario Stadium record set |
0x0D8 | 24 | Sherbet Land record set |
0x0F0 | 24 | Royal Raceway record set |
0x108 | 24 | Bowser's Castle record set |
0x120 | 24 | D.K's Jungle Parkway record set |
0x138 | 24 | Yoshi Valley record set |
0x150 | 24 | Banshee Boardwalk record set |
0x168 | 24 | Rainbow Road record set |
0x180 | 4 | 50cc trophy information |
0x181 | 4 | 100cc trophy information |
0x182 | 4 | 150cc trophy information |
0x183 | 4 | Extra trophy information |
0x184 | 1 | Audio setting |
0x185 | 1 | Unknown (Unused padding?) |
0x186 | 2 | Unknown (Checksum?) |
0x188 | 48 | Copies of all 1st records |
0x1B8 | 6 | Unknown (Padding?) |
0x1BE | 2 | Unknown (Checksum?) |
0x1C0 | 48 | Another 16 records (What for?) |
0x1F0 | 6 | Unknown (Padding?) |
0x1F6 | 2 | Unknown (Checksum?) |
0x1FC | 1 | Copy of audio setting (0x184) |
0x1FD | 1 | Copy of Unknown (Unused padding?) (0x185) |
0x1FE | 2 | Copy of Unknown (Checksum?) (0x186) |
For each course, there is a 24 byte structure that contains the five best completion records and the best lap record. There is an additional byte which indicates whether or not any records have been saved for the set, and another byte which could be a checksum.
Offset | Length | Description |
---|---|---|
0x000 | 3 | 1st record |
0x003 | 3 | 2nd record |
0x006 | 3 | 3rd record |
0x009 | 3 | 4th record |
0x00C | 3 | 5th record |
0x00F | 3 | Best lap record |
0x012 | 1 | Records exist (00 or 01) |
0x013 | 4 | Unknown (Unused?) |
0x017 | 1 | Unknown (Checksum?) |
Record entries are 24 bits each and are stored with little endian byte ordering:
tttttttt tttttttt cccctttt
Where t
is a 20 bit value for the completion time in centiseconds and c
is a 4 bit ID of the character used in the trial. If a record has a time greater than or equal to 100 minutes, it is not displayed.
Valid character IDs for c
are as follows:
ID | Character |
---|---|
0 | MARIO |
1 | LUIGI |
2 | YOSHI |
3 | TOAD |
4 | D.K. |
5 | WARIO |
6 | PEACH |
7 | BOWSER |
8 | (none) |
The default value applied to record entries is 0xC02709
, which is 100 minutes and Mario as the character selection.