main_ROM_START = 0x1050; // defined:true
FORM0_ROM_START = 0x237D0; // defined:true
FORM0_ROM_END = 0x25FD0; // defined:true
UVTS_25_ROM_END = 0xF16160; // defined:true
D_80000000 = 0x80000000;
D_80000004 = 0x80000004;
D_80000008 = 0x80000008;
D_8000000C = 0x8000000C;
D_80000308 = 0x80000308;
D_8000030C = 0x8000030C;
D_8000031C = 0x8000031C;
uvLoadFormFiles = 0x80001360;
uvAllocFile = 0x80001824;
uvFileReadBlock = 0x80001CF4;
D_80020FA4 = 0x80020FA4;
bssStart = 0x80022BD0;
D_80022CD8 = 0x80022CD8;
D_debugEnable = 0x80025E7C;
D_formTOC = 0x80033778;
D_formLoader = 0x80036010;
uvstring_rom = 0x8008E340; // type:func rom:0x16E468
uvMemRead =  0x80002890;
_uvMediaCopy = 0x800026B0;
_uvDMA = 0x800053AC;
uvMemSet = 0x8000285C;
bootproc = 0x80004C20;
mio0Decode = 0x80005590;
sKernelThread = 0x8002FA80;
Thread_Kernel = 0x800052A4;
uvWaitForMesg = 0x80004BE8;
uvContMesgInit = 0x80005484;
uvConsumeBytes = 0x80001DDC;

// filesystem
uvFileReadHeader = 0x800023E0;
uvFileGetSize = 0x800024BC;
uvFileGetDataPtr = 0x800024A8;
uvFileFree = 0x80002484;
uvFileGetPadType = 0x800024D0;
uvFileGetEntryTag = 0x800024E4;
uvFileSetPadTagStart = 0x80002694;

// clocks
uvClk_80001160 = 0x80001160;
uvClkInit = 0x800011A8;
uvClkUpdate = 0x800011D4;
uvClkGetSec = 0x80001230;
uvClkReset = 0x80001310;
sCpuLastCount = 0x8002D940;
sWrapCount = 0x8002D944;

// 1050
uvSetGameState = 0x80000814;
gGameStateFlag = 0x80025CF8;
gCurrentGameState = 0x80025D94;
uvShowNoController = 0x80000A6C;
gNoControllerStrings = 0x8001F634;

// 3F10
_uvMemAlloc = 0x80002F6C;
_uvMemAllocAlign8 = 0x80002F4C;
_uvMemAllocAlign16 = 0x800032C4;
_uvMemFree = 0x800031A8;
uvLoadModuleCode = 0x80003584;
uvLoadModule = 0x80003520;
gMemBlockHead = 0x8002DA60;
gModuleCount = 0x8002DA78;
gMemBlock = 0x80033770; // defined:true

// file_manager
sFormFilesCount = 0x8002D9A0;
fileDirectory = 0x8002D9A4;
gFormFiles = 0x8002D9B4;
uvGetFilesCount = 0x80001654;
uvGetFileData = 0x800016A4;
uvUpdateFileAllocPtr = 0x800019A8;
uvCheckValidTag = 0x80001EAC;
uvCheckValidFileId = 0x80001FC4;
uvGetFileInstanceCount = 0x800015D4;
// main
uvSysInit = 0x80004B40;
gCartDMATransferFlag = 0x8001F7DC;

// mem_allocator
_uvMemAllocInitStartUp = 0x80002A30;
uvMemFree = 0x800032E4;

D_80200000 = 0x80200000;
D_80200280 = 0x80200280;
D_A0000000 = 0xA0000000;
D_A4040000 = 0xA4040000;
D_A4040004 = 0xA4040004;
D_A4040008 = 0xA4040008;
D_A404000C = 0xA404000C;
D_A4040010 = 0xA4040010;
D_A4080000 = 0xA4080000;
D_A4300000 = 0xA4300000;
D_A4300008 = 0xA4300008;
D_A430000C = 0xA430000C;
D_A4400000 = 0xA4400000;
D_A4400004 = 0xA4400004;
D_A4400008 = 0xA4400008;
D_A440000C = 0xA440000C;
D_A4400010 = 0xA4400010;
D_A4400014 = 0xA4400014;
D_A4400018 = 0xA4400018;
D_A440001C = 0xA440001C;
D_A4400020 = 0xA4400020;
D_A4400024 = 0xA4400024;
D_A4400028 = 0xA4400028;
D_A440002C = 0xA440002C;
D_A4400030 = 0xA4400030;
D_A4400034 = 0xA4400034;
D_A4500000 = 0xA4500000;
D_A4500004 = 0xA4500004;
D_A4500008 = 0xA4500008;
D_A450000C = 0xA450000C;
D_A4500010 = 0xA4500010;
D_A4500014 = 0xA4500014;
D_A4600000 = 0xA4600000;
D_A4600004 = 0xA4600004;
D_A4600008 = 0xA4600008;
D_A460000C = 0xA460000C;
D_A4600010 = 0xA4600010;
D_A4600014 = 0xA4600014;
D_A4600018 = 0xA4600018;
D_A460001C = 0xA460001C;
D_A4600020 = 0xA4600020;
D_A4600024 = 0xA4600024;
D_A4600028 = 0xA4600028;
D_A460002C = 0xA460002C;
D_A4600030 = 0xA4600030;
D_A4800000 = 0xA4800000;
D_A4800004 = 0xA4800004;
D_A4800010 = 0xA4800010;
D_A4800018 = 0xA4800018;
D_A5000510 = 0xA5000510;

// sched
_uvScCreateScheduler = 0x80004088;
gSchedRingIdx = 0x8002F270;
__scMain = 0x800042E4;
gSchedStack = 0x8002F248;
gSchedRspStatus = 0x8002F251;
gSchedRdpStatus = 0x8002F252;
_uvScAddClient = 0x80004284;
_uvScHandleRetrace = 0x800043E4;
_uvScHandleRSP = 0x800046EC;
_uvScHandleRDP = 0x8000481C;
_uvScHandleNMI = 0x8000487C;
_uvScInitClientList = 0x80004274;
_uvScGetCmdQ = 0x800042DC;
gScheduler = 0x8002F4F8;
gNmiAsserted = 0x8002F274;

// Why splat keep putting this on undefined_syms!
D_80020EAE = 0x80020EAE; // defined:true

gUvSprtExports = 0x80025C14;
gUvGfxMgrExports = 0x80025C08;
gUvGfxStateExports = 0x80025C44;
gGameGuiExports = 0x80025C74;
gScrnExports = 0x80025C88;
gUvMathExports = 0x80025C2C;

// Symbols for module files
gspF3DEX2_fifoDataStart = 0x800218B0;
rspBootTextStart = 0x80019CE0; // name_end:rspBootTextEnd
gspF3DEX2_fifoTextStart = 0x80019DB0; // name_end:gspF3DEX2_fifoTextEnd
aspMainTextStart = 0x8001E810;
aspMainDataStart = 0x80022910;
gUvAudiomgrExports = 0x80025BD8;
gUvChanExports = 0x80025BDC;
gUvCbckExports = 0x80025BE0;
gUvCmidiExports = 0x80025BE4;
gUvContExports = 0x80025BE8;
gUvDobjExports = 0x80025BEC;
gUvEarExports = 0x80025BF0;
gUvEmitterExports = 0x80025BF4;
gUvEnvExports = 0x80025BF8;
gUvFmtxExports = 0x80025BFC;
gUvFontExports = 0x80025C00;
gUvFvecExports = 0x80025C04;
gUvImtxExports = 0x80025C0C;
gUvModelExports = 0x80025C10;
gUvStringExports = 0x80025C18;
gUvTerraExports = 0x80025C1C;
gUvTextureExports = 0x80025C20;
gUvJanimExports = 0x80025C24;
gUvIntersectExports = 0x80025C28;
D_80025C30 = 0x80025C30;
gUvGeomExports = 0x80025C34;
gUvDGeomExports = 0x80025C38;
gUvTseqExports = 0x80025C3C;
gUvFxExports = 0x80025C40;
gUvTexAnimExports = 0x80025C48;
gUvSortExports = 0x80025C4C;
gUvLightExports = 0x80025C50;
gUvDynExports = 0x80025C54;
gUvQuatExports = 0x80025C5C;
gUvQueryExports = 0x80025C60;
gUvGuiExports = 0x80025C64;
gUvGrphExports = 0x80025C68;
gUvIsectExports = 0x80025C6C;
gUvPfxExports = 0x80025C70;
gSndExports = 0x80025C78;
gCamExports = 0x80025C7C;
gMiscExports = 0x80025C80;
gSceneExports = 0x80025C84;
gLightExports = 0x80025C8C;
gReplayExports = 0x80025C90;
gGlareExports = 0x80025C94;
gSkidExports = 0x80025C98;
gSprayExports = 0x80025C9C;
gSparksExports = 0x80025CA0;
gSmackExports = 0x80025CA4;
gPieceExports = 0x80025CA8;
gAiExports = 0x80025CAC;
gTdataExports = 0x80025CB0;
gRainExports = 0x80025CB4;
gEnvExports = 0x80025CB8;
gRippleExports = 0x80025CBC;
gSplashExports = 0x80025CC0;
gCarAudioExports = 0x80025CC4;
gEnvSndExports = 0x80025CC8;
gFlagExports = 0x80025CCC;
gExplExports = 0x80025CD0;
gVolTestExports = 0x80025CD4;
gBattleExports = 0x80025CD8;
gPowerupExports = 0x80025CDC;
gLetterExports = 0x80025CE0;
gWeaponExports = 0x80025CE4;
gRumbleExports = 0x80025CE8;
gGameSettings = 0x80025CF0;
gDebugNumMaxTxts = 0x80025CF4;
D_80025CFC = 0x80025CFC;
D_80025D00 = 0x80025D00;
gOptionsMusicVol = 0x80025D08;
gOptionsSfxVol = 0x80025D0C;
gOptionsSpeechVol = 0x80025D10;
gNumPlayers = 0x80025D14;
D_80025D16 = 0x80025D16;
gNumAiCars = 0x80025D18;
gDebugPlyrLead = 0x80025D1C;
gDebugMxSpeed = 0x80025D20;
gDebugDefaultMaterial = 0x80025D24;
gDebugAiDbgState = 0x80025D28;
gDebugAiRecord = 0x80025D2C;
gDebugSteerAssist = 0x80025D30;
gCurrentTrack = 0x80025D34;
gDebugDispMasks = 0x80025D44;
gDebugDispViGamma = 0x80025D48;
gDebugDispViGamDith = 0x80025D4C;
gDebugDispViDivot = 0x80025D50;
gDebugDispViDither = 0x80025D54;
gDebugDispAntialias = 0x80025D58;
gDebugDispTxtFilter = 0x80025D5C;
gDebugDispTxtPersp = 0x80025D60;
gDebugDispTxtDetail = 0x80025D64;
gDebugDispMipmap = 0x80025D68;
D_80025D6C = 0x80025D6C;
D_80025D70 = 0x80025D70;
D_80025D74 = 0x80025D74;
D_80025D76 = 0x80025D76;
D_80025D78 = 0x80025D78;
D_80025D7C = 0x80025D7C;
D_80025D80 = 0x80025D80;
gDebugOptsCarSelect = 0x80025D84;
D_80025D86 = 0x80025D86;
D_80025D88 = 0x80025D88;
D_80025D89 = 0x80025D89;
D_80025D8A = 0x80025D8A;
D_80025D8B = 0x80025D8B;
D_80025D8C = 0x80025D8C;
gDebugRecordIntro = 0x80025D90;
gDebugOptsGlare = 0x80025D98;
gDebugOptsFrameRate = 0x80025D9C;
gDebugAbortMode = 0x80025DA0;
gDebugInfLapsFlag = 0x80025DA4;
gDebugHudState = 0x80025DA8;
gDebugFrateDisp = 0x80025DAC;
gDebugSuspensionFlag = 0x80025DB0;
gDebugTileSort = 0x80025DB4;
gTrackWeather = 0x80025DB8; // doesn't work even though it's referenced
gDebugOptsCarShadow = 0x80025DBC;
gDebugDisableGoodFramera = 0x80025DC0;
gDebugOptsLosCheckOff = 0x80025DC4;
gDebugOptsVelCam = 0x80025DC8;
gDebugOptsDrawingOff = 0x80025DCC;
D_80025DD0 = 0x80025DD0;
D_80025DD4 = 0x80025DD4;
D_80025DD8 = 0x80025DD8;
D_80025DDC = 0x80025DDC;
D_80025DE0 = 0x80025DE0;
D_80025DE4 = 0x80025DE4;
D_80025E24 = 0x80025E24;
gCurrentCar = 0x80025E28;
gCurrentCarColor = 0x80025E2A;
gTransmissionType = 0x80025E2C;
gPlayerName = 0x80025E40;
gPlayerNameBuffer = 0x80025E50;
gPlayerNameLength = 0x80025E60;
gOptionsLanguage = 0x80025E64;
gOptionsStereoMono = 0x80025E68;
gOptionsSpeed = 0x80025E69;
D_80025E6A = 0x80025E6A;
gOptionsMap = 0x80025E6B;
gOptionsDisplay = 0x80025E6C;
D_80025E6D = 0x80025E6D;
D_80025E6F = 0x80025E6F;
D_80025E70 = 0x80025E70;
gCurrentReplayEvent = 0x80025E80;
gNumOpenTracks = 0x8002CFF0;
gNumOpenCars = 0x8002CFF4;
gNumOpenTourns = 0x8002CFF8;
gNumOpenMtracks = 0x8002CFFC;
gDebugProfilingState = 0x8001F780;
gDebugOptsMinDt = 0x8002CC90;
D_8002D198 = 0x8002D198;
D_8002D19C = 0x8002D19C;
D_8002CD64 = 0x8002CD64;
D_8002CD68 = 0x8002CD68;
D_8002CD6C = 0x8002CD6C;
D_8002CD70 = 0x8002CD70;
gCheatBattleDamage = 0x8002CD90;
uvLoadFile = 0x800019B8;
uvUnloadModule = 0x80003760;
uvGetModuleFileId = 0x80003494;
gRomEnd = 0x8002D9B0;
gModuleFilesSize = 0x8002D9AC;
gFormFilesSize = 0x8002D9A8;
D_8002CD98 = 0x8002CD98;
D_8002CC8C = 0x8002CC8C;
gGameExports = 0x8002D1A4;

// Cheat Menu - Beetle Battle
gOpenCheatFlag01 = 0x8002d009; // Number of ladybugs
gOpenCheatFlag02 = 0x8002d00a; // Ladybug color change
gOpenCheatFlag03 = 0x8002d00b; // Health
gOpenCheatFlag04 = 0x8002d00c; // Power-ups
gOpenCheatFlag05 = 0x8002d00d; // Time limit
gOpenCheatFlag06 = 0x8002d00e; // Radar
gOpenCheatFlag07 = 0x8002d00f; // Damage
gOpenCheatFlag08 = 0x8002d010; // ? Mode

// Cheat Menu - Single Race
gOpenCheatFlag09 = 0x8002d011; // Time Attack Bonus Boxes
gOpenCheatFlag10 = 0x8002d012; // Breakables
gOpenCheatFlag11 = 0x8002d013; // Environment
gOpenCheatFlag12 = 0x8002d014; // Cars
gOpenCheatFlag13 = 0x8002d015; // Handicap - Two Player
gOpenCheatFlag14 = 0x8002d016; // Color Change
gOpenCheatFlag15 = 0x8002d017; // Field of View
gOpenCheatFlag16 = 0x8002d018; // Horn
gOpenCheatFlag17 = 0x8002d019; // Track Music
gOpenCheatFlag18 = 0x8002d01a; // Handbrake power
D_8002CDAA = 0x8002CDAA;
D_8002CC50 = 0x8002CC50;
D_8002CC7C = 0x8002CC7C;
D_8002CB9A = 0x8002CB9A;
D_8002CC64 = 0x8002CC64;
D_8002D1A8 = 0x8002D1A8;
gCheatTrackMusic = 0x8002CC9C;
D_8002CB8C = 0x8002CB8C;
D_80030000 = 0x80030000;
D_8002D1A0 = 0x8002D1A0;
D_8002CC80 = 0x8002CC80;
D_8002CC8A = 0x8002CC8A;
D_8002CC88 = 0x8002CC88;
D_8002CC58 = 0x8002CC58;
D_8002CC54 = 0x8002CC54;
gCheatCars = 0x8002CC97;

D_8002EDA0 = 0x8002EDA0;
D_8002EDB8 = 0x8002EDB8;
D_8002DAE0 = 0x8002DAE0;
gModuleNameTags = 0x8002DA70;
D_8002E440 = 0x8002E440;
D_8002EDD0 = 0x8002EDD0;
D_8002CD50 = 0x8002CD50;
D_8002CCB0 = 0x8002CCB0;
gCheatPlayer2Handicap = 0x8002CC98;
gCheatTimeAttackBonusBoxes = 0x8002CC94;
D_8002CC5C = 0x8002CC5C;
D_8002CDA1 = 0x8002CDA1;
D_8002CD54 = 0x8002CD54;
D_8002CD58 = 0x8002CD58;
D_8002CD5C = 0x8002CD5C;
D_8002CD60 = 0x8002CD60;
D_8002CDA4 = 0x8002CDA4;
gCheatBattleHealth = 0x8002CD7C;
gCheatBattleLadybugColor = 0x8002CD84;
gCheatBattlePowerups = 0x8002CD78;
gCheatBattleTimeLimit = 0x8002CD80;
gCheatBattleMysteryBoxMode = 0x8002CD88;
gCheatBattleRadar = 0x8002CD8C;
D_8002CCB4 = 0x8002CCB4;
D_8002CCBC = 0x8002CCBC;
D_8002CCB8 = 0x8002CCB8;
gOptionsControllerLayoutMenu = 0x8002CD40;
D_8002CCC8 = 0x8002CCC8;
D_8002CDE8 = 0x8002CDE8;
gCheatBattleNumLadybugs = 0x8002CD74;
gControllerLayout = 0x8002D064;
D_8002CC84 = 0x8002CC84;
gCustomButtonMap = 0x8002D01C;
D_8002CB90 = 0x8002CB90;
D_8002D003 = 0x8002D003;
D_8002CB94 = 0x8002CB94;
gModuleExportsSize = 0x8002DA74;
gDebugDisableFlag = 0x800257E8; // conflicts with other "DSBL" options
gCheatBreakables = 0x8002CC95;
gCheatEnvironment = 0x8002CC96;
gCheatColorChange = 0x8002CC99;
gCheatFieldOfView = 0x8002CC9A;
gCheatHornSfxId = 0x8002CC9B;
gCheatHandbreakPower = 0x8002CC9D;
gP1Buttons = 0x800321F4;
gP1JoyAxisX = 0x800321F6;
gP1JoyAxisY = 0x800321F7;
gUvDebugExports = 0x80025C58;


D_80000318 = 0x80000318; // Todo this is some kind of hw register
