---
# System prepended metadata

title: menu.c documentation

---

{%hackmd theme-dark %}
<style>
    .markdown-body:not(.next-editor) pre {
        color: #AAAAAA;
        background-color:#222222;
    }
    .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string {
        background-color:#222222;
    }
    .token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol, .token.deleted {
        color:#6666CC;
    }
</style>

## menu.c documentation

This document contains documentation for stuff that needs to be renamed.

```c
/************ .bss ************/

// Both used as part of gRecordTimesMenuElements,
// representing the initials that set the record.
char D_80126390[4]; //course initials
char D_80126394[4]; //flap initials

unk801263C0 D_801263B8;
unk801263C0 gMenuCurrentCharacter;

// Current level id being previewed.
s32 D_801263D0; //Compared for equality to gTrackIdForPreview

// Players in character select who are ready
s8 D_801263DC[MAXCONTROLLERS];

// unused
s32 D_801263E4;

// Number of points to award the racers at the end of a trophy race round.
s32 D_801263F8[8];

// Array of booleans. 0 = X place is occupied by AI, 1 = occupied by player.
u8 D_80126418[8];

// Array of booleans. 
u8 D_80126420[8];

// Places of racers in the previous race.
u8 D_80126428[8];

// Places of racers overall.
u8 D_80126430[8];

// ???
s8 D_80126438[8];

// Unused
s8 D_80126440[8];

// Boolean, is currently in copy file mode?
s32 D_80126484; 

// Boolean, is currently in erase file mode?
s32 D_80126488;

// File index to copy/erase.
s32 gSaveFileIndex3;

// File index to copy to.
s32 gSaveFileIndex2;

// Boolean, is showing the confirm OK before deleting a file.
s32 D_80126494;

// Current ghost index selected in the ghost data menu.
s32 D_80126498;

// Unused.
s32 D_8012649C;

// Controller index for Controller Pak? (TODO: Confirm this)
s32 D_801264D0;

// Number of ghost entries in ghost data.
s32 D_801264D4;

u8 D_801264DC[6]; //gGhostLevelIDs?
// These are just part of D_801264DC
//s8 D_801264E0;
//s8 D_801264E1;

u8 D_801264E4[4]; //gGhostSomethings?
s32 D_801264E8;
u8 D_801264EC[4]; //gGhostVehicleIds?
s32 D_801264F0[2];
u16 D_801264F8[6]; //gGhostChecksums?

s8 sDialogueOptionMax;
u8 D_80126508[6]; // Array of 6 track ids?
s8 gDialogueOptionYOffset;
u8 D_80126510[6]; // Array of 6 racer ids?
s8 gDialogueItemSelection;
u8 D_80126518[6]; // Array of vehicle ids?
u16 D_80126520[6]; // Array of timestamps?
Settings *gSavefileData[4];
u8 D_80126540[8];
u8 D_80126750[128]; // Array of booleans if object in gMenuObjects is valid.
s32 D_801267D0;
s32 D_801267D4;
s32 D_801267D8[5]; //Buttons pressed per player plus an extra?
s8 *D_801267EC;
s32 D_801267F0[5];
s8 *D_80126804;
s32 D_80126808[MAXCONTROLLERS]; //Soundmask values
s16 D_80126818[5];
s32 D_80126824;

// Size: 12 bytes
typedef struct unk80126878 {
    char *text;
    s16 x;
    s16 y;
    s32 colourIndex;
} unk80126878;

unk80126878 D_80126878[8];

/************ functions ************/

// Processes input/renders the menu rankings menu?
s32 func_80081F4C(s32 updateRate);

```