Source

Save Game Documentation / Nintendo 64 / Mario Kart 64 / Mario Kart 64.bt

//--------------------------------------
//--- 010 Editor v3.2.2 Binary Template
//
// File: Mario Kart 64.bt
// Author: DaFox
// Revision: 2
// Purpose: Mario Kart 64 Save Game File Format
//--------------------------------------
LittleEndian();
BitfieldDisablePadding();
typedef enum {
    MARIO, LUIGI, YOSHI, TOAD, DK, WARIO, PEACH, BOWSER
} CHARACTER;

typedef enum {
    NONE, BRONZE, SILVER, GOLD
} TROPHY;

typedef struct {    
    uint32 time : 20;
    CHARACTER character : 4;
} TIMECHAR;

typedef struct {
    TIMECHAR BestRec1;
    TIMECHAR BestRec2;
    TIMECHAR BestRec3;
    TIMECHAR BestRec4;
    TIMECHAR BestRec5;
    TIMECHAR BestLap;
    ubyte EnableCourseErasing;
    ubyte unknown[4];
    ubyte checksum;
} COURSE;

typedef struct {
    TROPHY MushroomCup50cc : 2;
    TROPHY FlowerCup50cc : 2;
    TROPHY StarCup50cc : 2;
    TROPHY SpecialCup50cc : 2;

    TROPHY MushroomCup100cc : 2;
    TROPHY FlowerCup100cc : 2;
    TROPHY StarCup100cc : 2;
    TROPHY SpeciaCup100cc : 2;

    TROPHY MushroomCup150cc : 2;
    TROPHY FlowerCup150cc : 2;
    TROPHY StarCup150cc : 2;
    TROPHY SpeciaCup150cc : 2;

    TROPHY MushroomCupExtra : 2;
    TROPHY FlowerCupExtra : 2;
    TROPHY StarCupExtra : 2;
    TROPHY SpeciaCupExtra : 2;

    ubyte SoundSettings;
    ubyte unknown;
    ubyte checksum;
    ubyte checksum2;
} TROPHYSETTINGS;

typedef struct {
    TIMECHAR LuigisRacewayBestTriLap;
    TIMECHAR MooMooFarmBestTriLap;
    TIMECHAR KoopaTroopaBeachBestTriLap;	
    TIMECHAR KalimariDesertBestTriLap;
    TIMECHAR ToadsTurnpikeBestTriLap;
    TIMECHAR FrappeSnowlandBestTriLap;
    TIMECHAR ChocoMountainBestTriLap;
    TIMECHAR MarioRacewayBestTriLap;
    TIMECHAR LuigisRacewayBestSingle;
    TIMECHAR MooMooFarmBestSingle;
    TIMECHAR KoopaTroopaBeachBestSingle;
    TIMECHAR KalimariDesertBestSingle;
    TIMECHAR ToadsTurnpikeBestSingle;
    TIMECHAR FrappeSnowlandBestSingle;
    TIMECHAR ChocoMountainBestSingle;
    TIMECHAR MarioRacewayBestSingle;
    ubyte unknown[6];
    ubyte checksum;
    ubyte checksum2;
    TIMECHAR WarioStadiumBestTriLap;
    TIMECHAR SherbetLandBestTriLap;
    TIMECHAR RoyalRacewayBestTriLap;
    TIMECHAR BowsersCastleBestTriLap;
    TIMECHAR DKsJungleParkwayBestTriLap;
    TIMECHAR YoshiValleyBestTriLap;
    TIMECHAR BansheeBoardwalkBestTriLap;
    TIMECHAR RainbowRoadBestTriLap;
    TIMECHAR WarioStadiumBestSingle;
    TIMECHAR SherbetLandBestSingle;
    TIMECHAR RoyalRacewayBestSingle;
    TIMECHAR BowsersCastleBestSingle;
    TIMECHAR DKsJungleParkwayBestSingle;
    TIMECHAR YoshiValleyBestSingle;
    TIMECHAR BansheeBoardwalkBestSingle;
    TIMECHAR RainbowRoadBestSingle;
    ubyte unknown2[6];
    ubyte checksum;
    ubyte checksum2;
} TOPTIMES;

struct FILE {
    COURSE LuigisRaceway;
    COURSE MooMooFarm;
	COURSE KoopaTroopaBeach;
	COURSE KalimariDesert;
	COURSE ToadsTurnpike;
	COURSE FrappeSnowland;
	COURSE ChocoMountain;
	COURSE MarioRaceway;
	COURSE WarioStadium;
	COURSE SherbetLand;
	COURSE RoyalRaceway;
	COURSE BowsersCastle;
	COURSE DKsJungleParkway;
	COURSE YoshiValley;
	COURSE BansheeBoardwalk;
	COURSE RainbowRoad;
    TROPHYSETTINGS TrophySettings;
    TOPTIMES TopTimes;
    TROPHYSETTINGS TrophySettings2;
    ubyte padding[1536];
} file;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.