diff --git a/include/variables.h b/include/variables.h index 793ae5f98..4504387b2 100644 --- a/include/variables.h +++ b/include/variables.h @@ -5,9 +5,6 @@ #include "defines.h" #include "common_structs.h" -extern s32 gActiveScreenMode; // D_800DC52C - -extern s32 gCCSelection; // D_800DC548 extern s8 gCharacterIdByGPOverallRank[8]; // D_8018D9D0 extern s8 gCharacterGridSelections[4]; // D_8018EDE4 extern s8 gCharacterSelections[4]; // D_800E86A8 @@ -16,7 +13,6 @@ extern s8 gControllerPakSelectedTableRow; // D_800E86C0 extern f32 gCourseCompletionPercentByPlayerId[8]; // D_801644D0 extern f32 gCourseCompletionPercentByRank[8]; // D_80162FD8 extern s8 gCourseRecordsMenuSelection; // D_8018EDF8 -extern f32 gCourseTimer; // D_800DC598 extern const s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP]; // D_800F2BB4 extern s8 gCupCourseSelection; // D_8018EE0B extern char *gCupNames[]; // D_800E7500 @@ -24,11 +20,7 @@ extern s8 gCupSelection; // D_8018EE09 extern s16 gCurrentCourseId; // D_800DC5A0 extern s8 gDebugMenuSelection; // D_8018EDEF -extern Gfx *gDisplayListHead; // D_80150298 -extern u16 gEnableDebugMode; // D_800DC520 - -extern s32 gGlobalTimer; // D_800DC54C extern s8 gGPPointsByCharacterId[8]; // D_8018D9C8 extern s16 gGPCurrentRacePlayerIdByRank[8]; // D_80164360 @@ -41,57 +33,34 @@ extern s32 gLapCountByPlayerId[8]; // D_80164390 extern s32 gMenuTimingCounter; // D_8018EE00 extern s32 gMenuSelection; // D_800E86A0 -extern s32 gModeSelection; // D_800DC53C // Indicates the ID of the next title screen demo that will be played extern s8 gNextDemoId; // D_800E86BC // Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order extern const u8 gPerCupIndexByCourseId[]; // D_800EFD50 -extern s32 gPlayerCountSelection1; extern s32 gPlayerIsThrottleActive[]; // D_801653E0 extern s32 gGPCurrentRaceRankByPlayerId[]; // D_801643B8 -//extern u32 gScreenModeSelection; // D_800DC530 -extern u32 gSegmentTable[16]; // D_80150258 -extern OSMesgQueue gSIEventMesgQueue; // D_8014F0B8 extern u8 gSoundMode; // D_8018EDF2 extern char *gSoundModeNames[NUM_SOUND_MODES]; // D_800E7710 extern s8 gTimeTrialDataCourseIndex; // D_8018EDF7 -extern Player gPlayers[8]; -extern Player* gPlayerOne; -extern Player* gPlayerTwo; -extern Player* gPlayerThree; -extern Player* gPlayerFour; -extern Player* gPlayerFive; -extern Player* gPlayerSix; -extern Player* gPlayerSeven; -extern Player* gPlayerEight; -extern Player* gPlayerOneCopy; - extern struct_8018CA70_entry D_8018CA70[]; extern Mtx D_80183D60[]; extern struct_D_8018CE10 D_8018CE10[]; -//extern struct GfxPool *gGfxPool; // D_8014EF40 - extern Vec3f D_80165070[]; extern Vp D_802B8880[]; extern Gfx D_0D0077A0[]; -extern s32 gGamestate; -extern u16 gDemoMode; -extern s32 D_800DC540; extern u16 gIsGamePaused; -extern u16 gMatrixObjectCount; - extern u16 D_80162DD8; extern s32 D_80162DE0; extern s32 D_80162DE4; diff --git a/src/camera.c b/src/camera.c index cb101fca8..f3dd6cdf4 100644 --- a/src/camera.c +++ b/src/camera.c @@ -2,10 +2,12 @@ #include #include #include -#include "code_800029B0.h" +#include + #include "camera.h" +#include "code_800029B0.h" #include "math_util.h" -#include "memory.h" +#include "racing/memory.h" #include "waypoints.h" #include "variables.h" #include "code_8001F980.h" @@ -13,7 +15,6 @@ #include "code_80057C60.h" #include "code_80005FD0.h" #include "main.h" -#include f32 D_800DDB30[] = { 0.4f, 0.6f, 0.275f, 0.3f }; @@ -43,7 +44,6 @@ extern f32 D_80164A48[4]; extern f32 D_80164A78[]; extern s8 D_80164A88; extern s8 D_80164A89; -extern f32 gCameraZoom[4]; void camera_init(f32 posX, f32 posY, f32 posZ, UNUSED s16 rot, u32 arg4, s32 cameraId) { Player *player = gPlayerOne; diff --git a/src/camera.h b/src/camera.h index 73cbb1b99..7b6e250c7 100644 --- a/src/camera.h +++ b/src/camera.h @@ -89,8 +89,4 @@ extern Camera *camera2; extern Camera *camera3; extern Camera *camera4; -extern Player *gPlayerTwo; -extern Player *gPlayerThree; -extern Player *gPlayerFour; - #endif diff --git a/src/camera_junk.h b/src/camera_junk.h index f4e9f3d60..d1c9dd355 100644 --- a/src/camera_junk.h +++ b/src/camera_junk.h @@ -7,7 +7,5 @@ void setup_camera_podium_ceremony(void); void func_802816B8(void); // guPerspective params -extern f32 D_80150148, D_8015014C, D_80150150; -extern f32 gCameraZoom[]; #endif diff --git a/src/code_800029B0.c b/src/code_800029B0.c index ee1f1b79a..76a10557b 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -1,5 +1,7 @@ #include #include + +#include "code_800029B0.h" #include "types.h" #include "memory.h" #include "variables.h" @@ -8,7 +10,6 @@ #include "actor_types.h" #include "math_util.h" #include "audio/external.h" -#include "code_800029B0.h" #include #include "collision.h" #include "memory.h" @@ -23,7 +24,6 @@ extern u16 D_800DC5A8; -extern s32 D_800DC510; extern s32 D_802BA038; extern s16 D_802BA048; @@ -33,10 +33,6 @@ extern s8 D_8018EDF3; extern s8 gCupSelection; - -extern s32 gScreenModeSelection; -extern s32 D_80150120; - extern Vec3f D_802B91C8; extern struct ActorSpawnData d_course_moo_moo_farm_tree_spawn[]; diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 12c37414a..7d2375b65 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -1,13 +1,14 @@ #include #include #include + +#include "code_80005FD0.h" #include "math_util.h" #include "code_800029B0.h" -#include "memory.h" +#include "racing/memory.h" #include "waypoints.h" #include "camera.h" #include "actors.h" -#include "code_80005FD0.h" #include "code_8001F980.h" #include "player_controller.h" #include "code_80071F00.h" @@ -20,6 +21,9 @@ #include "bomb_kart.h" #include "courses/all_course_data.h" #include "common_textures.h" +#include "common_structs.h" +#include "main.h" + extern UnkCommonTextureStruct0 *D_800DC720[]; @@ -1409,7 +1413,6 @@ void func_800090F0(s32 playerId, Player *player) { } extern f32 D_8016344C; -extern f32 gCourseTimer; /** * Helps calculate time since player last touched finishline. @@ -5789,7 +5792,6 @@ extern s16 D_80162FCC; //extern s32 D_80163598 extern s32 D_8016359C; //extern TrainStuff D_801635C4; -//extern s32 gScreenModeSelection; // This is really Vec2s D_80163598[465] but that does not match. // Likely because this is a shared pointer between courses. diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index dd6d84656..15f8453d3 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -1,9 +1,8 @@ #ifndef CODE_80005FD0_H #define CODE_80005FD0_H -#include "common_structs.h" #include "vehicles.h" -#include "waypoints.h" +#include "camera.h" struct struct_801642D8 { /* 0x0 */ u16 unk0; @@ -84,7 +83,6 @@ void func_8000EF20(void); void func_8000F0E0(void); void func_8000F124(void); -void func_8000F2BC(struct TrackWayPoint*, size_t); void func_80010218(s32); f32 func_80010480(s32, u16); @@ -94,7 +92,6 @@ void func_80010DBC(s32); f32 func_80010F40(f32, f32, f32, s32); f32 func_80010FA0(f32, f32, f32, s32); -s32 process_path_data(struct TrackWayPoint*, struct TrackWayPoint*); void func_80011AB8(s32); void func_80011AE4(s32); @@ -171,7 +168,6 @@ extern s32 D_80163488; extern s32 D_8016337C; extern s16 D_80164378[]; extern s32 D_801643E0[]; -extern s32 gModeSelection; extern struct unexpiredActors gUnexpiredActorsList[]; extern s16 D_8016348C; extern s32 D_801643E0[]; @@ -191,8 +187,6 @@ extern s16 D_801646CC; extern u16 D_80163E2A; extern Gfx D_0D0076F8[]; -extern struct Controller *gControllerThree; -extern Gfx *gDisplayListHead; extern s32 D_800DDB20; #endif diff --git a/src/code_8001F980.h b/src/code_8001F980.h index 924c45a81..e75b072da 100644 --- a/src/code_8001F980.h +++ b/src/code_8001F980.h @@ -91,7 +91,6 @@ extern s32 D_8018D930[]; extern Gfx D_0D008C78[]; extern Gfx D_0D008D58[]; -extern u16 gDemoMode; extern s32 D_800DDB58; extern void *D_800DDB5C[]; extern Vtx *D_800DDBB4[]; diff --git a/src/code_80057C60.c b/src/code_80057C60.c index 5a52d8446..ed282f32e 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -1,9 +1,12 @@ #include #include #include + +#include "code_80057C60.h" #include "main.h" +#include "actors.h" #include "code_800029B0.h" -#include "memory.h" +#include "racing/memory.h" #include #include #include @@ -12,7 +15,6 @@ #include "code_80005FD0.h" #include "code_8001F980.h" #include "hud_renderer.h" -#include "code_80057C60.h" #include "code_80071F00.h" #include "code_80086E70.h" #include "code_8008C1D0.h" @@ -22,6 +24,7 @@ #include "objects.h" #include "bomb_kart.h" + // WARNING: this macro is undef'd at the end of this file #define MAKE_RGB(r,g,b) (((r) << 0x10) | ((g) << 0x08) | (b << 0x00)) @@ -915,7 +918,6 @@ void func_80059A88(s32 arg0) { } extern s32 D_80165678; -extern s32 gGamestate; extern s32 gRaceFrameCounter; void func_80059AC8(void) { @@ -1161,11 +1163,6 @@ void func_8005A380(void) { extern s8 D_801657F8; -extern struct Controller *gControllerOne; -extern struct Controller *gControllerTwo; -extern struct Controller *gControllerThree; -extern struct Controller *gControllerFour; - void func_8006F824(s32); void func_8005A3C0(void) { @@ -1791,7 +1788,6 @@ extern f32 D_8018D078[8]; extern f32 D_8018D0C8[8]; extern s32 D_8018D1CC; extern s32 gGPCurrentRaceRankByPlayerId[]; -extern s32 gModeSelection; void func_8005B7A0(void) { f32 temp_f0; @@ -2254,7 +2250,6 @@ extern s32 D_8018D3F8; extern s16 gGPCurrentRaceCharacterIdByRank[8]; extern s16 gGPCurrentRacePlayerIdByRank[8]; extern s32 gGPCurrentRaceRankByPlayerId[8]; -extern Player *gPlayerOne; void func_8005C980(void) { s32 var_v0; @@ -6595,9 +6590,6 @@ void func_80069BA8(Player *, s8, s16, s8); /* extern */ void func_80069DB8(Player *, s8, s16, s8); /* extern */ void func_8006A01C(Player *, s8, s16, s8); /* extern */ -extern s32 gActiveScreenMode; -extern s32 gModeSelection; - void func_8006D474(Player *player, s8 arg1, s8 arg2) { s16 var_s2; if ((player->unk_002 & (8 << (arg2 * 4))) == (8 << (arg2 * 4))) { diff --git a/src/code_80057C60.h b/src/code_80057C60.h index 8ceae846a..52371bbe4 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -228,8 +228,6 @@ void func_8006E940(Player*, s8, s8); extern s8 D_801657B2; extern s8 D_801657C8; extern s32 D_8018D22C; -extern s32 gGamestate; -extern u16 gDemoMode; extern s8 D_8018EDF3; extern s8 D_80165898; extern Gfx D_0D0076F8[]; @@ -242,7 +240,6 @@ extern s8 D_80165800[2]; extern s8 D_80165801; extern s8 D_801657B0; extern u8 gControllerRandom; -extern struct Controller *gControllerOne; extern s32 D_8018D214; extern s32 D_8018D2C8[]; extern u8 *D_8018D420; @@ -286,7 +283,6 @@ extern u8 *D_8018D4C8; extern u16 gPlayerBalloonStatus[8][3]; // D_8018D5F0 extern s16 gPlayerBalloonCount[]; // D_8018D8C0 -extern s32 gScreenModeSelection; // D_800DC530 extern struct UnkStruct_800DC5EC *D_800DC5EC; extern struct UnkStruct_800DC5EC *D_800DC5F0; @@ -309,7 +305,6 @@ extern s8 D_801657E8; extern s8 D_8018CAE0; extern s16 gGPCurrentRaceCharacterIdByRank[]; extern s16 D_8018CF98[]; -extern Camera *D_8018CF14; extern Player *D_8018CF1C; diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index acf910172..db7e35990 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -2,6 +2,7 @@ #include #include #include + #include "code_8006E9C0.h" #include "code_80071F00.h" #include "objects.h" @@ -12,6 +13,7 @@ #include #include "audio/external.h" #include "courses/all_course_data.h" +#include "main.h" void func_8006E9C0(void) { diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h index cbd3e8313..1cb7365f1 100644 --- a/src/code_8006E9C0.h +++ b/src/code_8006E9C0.h @@ -29,7 +29,6 @@ extern s16 D_800E5520[]; extern s16 D_800E5548[]; extern s32 gCourseOutlineTextures[0x14]; -extern s32 gScreenModeSelection; extern s8 *gTextureLogoMarioKart64; extern s16 D_80165730; extern s16 D_80165740; diff --git a/src/code_80071F00.c b/src/code_80071F00.c index f0f087e8f..9e8c4bf5c 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -2,16 +2,19 @@ #include #include #include + +#include "code_80071F00.h" +#include "main.h" #include "memory.h" #include "camera.h" #include "math_util.h" #include "math_util_2.h" +#include "hud_renderer.h" #include "objects.h" #include "waypoints.h" #include "variables.h" #include "code_80005FD0.h" #include "code_80057C60.h" -#include "code_80071F00.h" #include "code_80086E70.h" #include "common_textures.h" #include "audio/external.h" diff --git a/src/code_80071F00.h b/src/code_80071F00.h index 4c4c7a2c2..0bd3d2104 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -373,10 +373,6 @@ s32 osRecvMesg(OSMesgQueue*, OSMesg*, s32); extern s8 D_8018EDF3; -extern OSMesgQueue gDmaMesgQueue; -extern OSMesg gMainReceivedMesg; -extern OSIoMesg gDmaIoMesg; - // from other_textures.s extern u8 D_0F0D0E50[]; // gTextureGhosts diff --git a/src/code_80086E70.c b/src/code_80086E70.c index 11d5c239c..9c0661808 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -2,16 +2,18 @@ #include #include #include + +#include "code_80086E70.h" #include "camera.h" #include "objects.h" #include "math_util.h" #include "math_util_2.h" #include "memory.h" #include "code_80071F00.h" -#include "code_80086E70.h" #include "collision.h" #include "audio/external.h" #include "variables.h" +#include "main.h" void func_80086E70(s32 arg0) { D_80165C18[arg0].unk_0AE = 1;// * 0xE0)) = 1; diff --git a/src/code_80086E70.h b/src/code_80086E70.h index a0250c18c..55a391896 100644 --- a/src/code_80086E70.h +++ b/src/code_80086E70.h @@ -167,13 +167,9 @@ void func_8008C1C0(s32); // This may be a list of tilemap flags on a per-camera basis extern s16 D_8018CF68[]; -extern s32 gPlayerCountSelection1; extern f32 D_80183DA8[]; extern f32 D_80183DC8[]; -extern f32 gVBlankTimer; extern Collision D_8018C3B0; -extern Player *gPlayerOne; -extern Player *gPlayerOneCopy; extern s16 gCurrentCourseId; extern Vec4s D_80165760; diff --git a/src/code_8008C1D0.h b/src/code_8008C1D0.h index 6a95409be..f2f71bef3 100644 --- a/src/code_8008C1D0.h +++ b/src/code_8008C1D0.h @@ -127,7 +127,6 @@ void func_800CB064(u8); /* This is where I'd put my static data, if I had any */ -extern u16 gDemoMode; extern f32 D_800E3710[]; extern f32 D_800E3730[]; extern f32 D_800E3750[]; diff --git a/src/code_800AF9B0.h b/src/code_800AF9B0.h index 706be4782..1e801e680 100644 --- a/src/code_800AF9B0.h +++ b/src/code_800AF9B0.h @@ -10,8 +10,6 @@ void func_800B0004(void); /* This is where I'd put my static data, if I had any */ -extern s32 gCCSelection; // D_800DC538 in main.c -extern s32 D_800DC540; extern s16 gCurrentCourseId; // D_800DC5A0 extern s32 gIsMirrorMode; // D_800DC5F4 extern s32 D_800E86A4; diff --git a/src/code_800B45E0.h b/src/code_800B45E0.h index f4e336607..9ec6ebe32 100644 --- a/src/code_800B45E0.h +++ b/src/code_800B45E0.h @@ -99,7 +99,6 @@ extern s8 sControllerPak2State; // Current state of the Controller Pak extern const u8 D_800F2E60[]; extern const u8 gGameName[]; extern const u8 gExtCode[]; -extern OSMesgQueue gSIEventMesgQueue; // D_8014F0B8 extern u16 D_80162DD6; extern s32 D_80162DE0; extern s32 D_80162DFC; diff --git a/src/crash_screen.c b/src/crash_screen.c index b78e426fb..ca06220e9 100644 --- a/src/crash_screen.c +++ b/src/crash_screen.c @@ -4,7 +4,9 @@ #include #include #include + #include "crash_screen.h" +#include "main.h" #ifdef CRASH_SCREEN_ENHANCEMENT #include "debug/crash_screen_enhancement.h" @@ -22,9 +24,6 @@ s32 sButtonSequenceIndex; extern void osSetEventMesg(OSEvent, OSMesgQueue *, OSMesg); extern s32 osRecvMesg(OSMesgQueue *, OSMesg *, s32); -extern void read_controllers(); - -extern struct Controller *gControllerOne; s32 sCounter = 0; diff --git a/src/ending/camera_junk.c b/src/ending/camera_junk.c index fa9423282..517aa01e7 100644 --- a/src/ending/camera_junk.c +++ b/src/ending/camera_junk.c @@ -1,10 +1,12 @@ #include #include #include -#include "camera.h" + #include "camera_junk.h" +#include "camera.h" #include "math_util.h" #include "ceremony_and_credits.h" +#include "main.h" void setup_camera_podium_ceremony(void) { Camera *camera; diff --git a/src/ending/ceremony_and_credits.c b/src/ending/ceremony_and_credits.c index 0a1860ad2..4add8dfc0 100644 --- a/src/ending/ceremony_and_credits.c +++ b/src/ending/ceremony_and_credits.c @@ -20,8 +20,6 @@ #include "podium_ceremony_actors.h" #include "code_80091750.h" -extern f32 gCameraZoom[]; - f32 D_802856B0 = 98.0f; f32 D_802856B4 = 12.0f; f32 D_802856B8 = 52.0f; diff --git a/src/ending/code_80280000.c b/src/ending/code_80280000.c index 92e5eb31b..0df8c1d88 100644 --- a/src/ending/code_80280000.c +++ b/src/ending/code_80280000.c @@ -24,6 +24,7 @@ #include "code_80057C60.h" #include "actors.h" #include "render_courses.h" +#include "main.h" s32 D_802874A0; diff --git a/src/ending/code_80280000.h b/src/ending/code_80280000.h index 5d9d3d288..1946769dc 100644 --- a/src/ending/code_80280000.h +++ b/src/ending/code_80280000.h @@ -11,12 +11,7 @@ void func_80280268(s32 arg0); void credits_loop(void); void load_credits(void); -extern Gfx *gDisplayListHead; - -extern f32 D_80150148, D_8015014C, D_80150150; -extern f32 gCameraZoom[4]; extern s16 gCreditsCourseId; -extern u16 gMatrixObjectCount; extern s16 gMatrixEffectCount; extern u16 gIsInQuitToMenuTransition, gQuitToMenuTransitionCounter; @@ -25,6 +20,4 @@ extern s32 D_802874A0; extern u16 D_80164714, D_80164716, D_80164718; extern u16 D_800DC5E4; -extern u16 D_800DC518; - #endif diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c index 3fbd6edad..b569b4c73 100644 --- a/src/ending/code_80281780.c +++ b/src/ending/code_80281780.c @@ -1,20 +1,22 @@ #include #include -#include "types.h" -#include "variables.h" #include #include + +#include "code_80281780.h" +#include "types.h" +#include "variables.h" #include "memory.h" #include "camera.h" #include "spawn_players.h" #include "skybox_and_splitscreen.h" #include "code_8006E9C0.h" #include "podium_ceremony_actors.h" -#include "code_80281780.h" #include "code_80005FD0.h" #include "collision.h" #include "code_80281C40.h" -#include +#include "code_800029B0.h" +#include "main.h" u8 defaultCharacterIds[] = { 1, 2, 3, 4, 5, 6, 7, 0 diff --git a/src/ending/code_80281780.h b/src/ending/code_80281780.h index 708a432d6..0d511a922 100644 --- a/src/ending/code_80281780.h +++ b/src/ending/code_80281780.h @@ -20,16 +20,12 @@ extern s16 gCurrentCourseId; extern u16 D_800DC5B4; extern s32 gIsMirrorMode; -extern s32 gScreenModeSelection; -extern s32 gActiveScreenMode; -extern s32 gModeSelection; extern u16 D_800DC5BC; extern u16 D_800DC5C8; extern struct UnkStruct_800DC5EC *D_800DC5EC; extern s32 D_80287554; extern f32 D_801647A4; -extern f32 gCameraZoom[]; extern s32 D_8015F5A0; @@ -38,9 +34,7 @@ extern s32 D_00825800; extern s32 D_00831DC0; extern s32 D_00835BA0; -extern struct Controller *gControllerOne; extern s8 gCharacterSelections[]; -extern u16 gEnableDebugMode; extern u8 defaultCharacterIds[]; extern s8 gGPOverallRanks[8]; diff --git a/src/ending/code_80281C40.c b/src/ending/code_80281C40.c index 037523527..0780f9981 100644 --- a/src/ending/code_80281C40.c +++ b/src/ending/code_80281C40.c @@ -1,6 +1,8 @@ #include #include #include + +#include "code_80281C40.h" #include "main.h" #include "math_util.h" #include "skybox_and_splitscreen.h" @@ -8,7 +10,6 @@ #include "code_80057C60.h" #include "code_80091750.h" #include "podium_ceremony_actors.h" -#include "code_80281C40.h" #include "ceremony_and_credits.h" #include "podium_ceremony_actors.h" #include "code_8001F980.h" diff --git a/src/ending/code_80281C40.h b/src/ending/code_80281C40.h index bcba22cc9..bf423ea5c 100644 --- a/src/ending/code_80281C40.h +++ b/src/ending/code_80281C40.h @@ -12,8 +12,4 @@ extern u16 gIsInQuitToMenuTransition; extern Gfx D_00284F70[]; extern Gfx D_00284EE0[]; -extern f32 D_80150148, D_8015014C, D_80150150; - -extern f32 gCameraZoom[]; - #endif diff --git a/src/gbiMacro.c b/src/gbiMacro.c index e7d4f1ddd..f079632e4 100644 --- a/src/gbiMacro.c +++ b/src/gbiMacro.c @@ -7,7 +7,6 @@ extern s16 D_800E43A8; extern Mtx D_0D008E98; -extern Gfx* gDisplayListHead; // rsp init UNUSED void gfx_func_80040D00(void) { diff --git a/src/hud_renderer.h b/src/hud_renderer.h index eebec97b5..268d21b48 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -2,6 +2,7 @@ #define hud_renderer_H #include "common_structs.h" +#include "main.h" void func_80045738(u8*, u8*, s32, s32); void func_80057114(s32); @@ -455,6 +456,4 @@ extern s8 D_800E566A[]; extern u8 d_course_bowsers_castle_thwomp_tlut[]; // Some type of pallette? -extern Gfx *gDisplayListHead; - #endif diff --git a/src/main.c b/src/main.c index e9e84ba10..171529754 100644 --- a/src/main.c +++ b/src/main.c @@ -1,3 +1,4 @@ +#define STRANGE_MAIN_HEADER_H #include #include #include @@ -6,7 +7,7 @@ #include "config.h" #include "profiler.h" #include "main.h" -#include "memory.h" +#include "racing/memory.h" #include "menus.h" #include "segments.h" #include "segment_symbols.h" @@ -165,6 +166,7 @@ OSMesg gPIMesgBuf[32]; OSMesgQueue gPIMesgQueue; s32 gGamestate = 0xFFFF; +// D_800DC510 is externed as an s32 in other files. D_800DC514 is only used in main.c, likely a developer mistake. u16 D_800DC510 = 0; u16 D_800DC514 = 0; u16 D_800DC518 = 0; @@ -264,7 +266,7 @@ void create_gfx_task_structure(void) { gGfxSPTask->task.t.ucode_boot = rspbootTextStart; gGfxSPTask->task.t.ucode_boot_size = ((u8 *) rspbootTextEnd - (u8 *) rspbootTextStart); // The split-screen multiplayer racing state uses F3DLX which has a simple subpixel calculation. - // Singleplayer race mode and all other game states use F3DEX. + // Singleplayer race mode and all other game states use F3DEX. // http://n64devkit.square7.ch/n64man/ucode/gspF3DEX.htm if (gGamestate != RACING || gPlayerCountSelection1 == 1) { gGfxSPTask->task.t.ucode = gspF3DEXTextStart; @@ -300,7 +302,7 @@ void init_controllers(void) { } } -void update_controller(s32 index) { +void update_controller(s32 index) { struct Controller *controller = &gControllers[index]; u16 stick; @@ -534,8 +536,8 @@ void setup_game_memory(void) { } /** - * @brief - * + * @brief + * */ void game_init_clear_framebuffer(void) { gGamestateNext = 0; // = START_MENU_FROM_QUIT? @@ -825,7 +827,7 @@ void race_logic_loop(void) { func_800591B4(); func_80093E20(); #if DVDL - display_dvdl(); + display_dvdl(); #endif gDPFullSync(gDisplayListHead++); gSPEndDisplayList(gDisplayListHead++); @@ -839,7 +841,7 @@ void race_logic_loop(void) { * State 3) Process race related logic * State 4) Ending sequence * State 5) Credits - * + * * Note that the state doesn't flip-flop at random but is permanent * until the state changes (ie. Exit menus and start a race). */ @@ -873,7 +875,7 @@ void game_state_handler(void) { init_rcp(); func_80094A64(gGfxPool); #if DVDL - display_dvdl(); + display_dvdl(); #endif break; case RACING: @@ -995,7 +997,7 @@ void handle_sp_complete(void) { struct SPTask *curSPTask = gActiveSPTask; gActiveSPTask = NULL; - + if (curSPTask->state == SPTASK_STATE_INTERRUPTED) { // handle_vblank tried to start an audio task while there was already a // gfx task running, so it had to interrupt the gfx task. That interruption @@ -1103,9 +1105,9 @@ void func_80002658(void) { } /** - * Sets courseId to NULL if - * - * + * Sets courseId to NULL if + * + * */ void update_gamestate(void) { switch (gGamestate) { diff --git a/src/main.h b/src/main.h index db59c091f..df0c65202 100644 --- a/src/main.h +++ b/src/main.h @@ -62,8 +62,6 @@ struct UnkStruct_8015F584 { u16 unk2; }; -extern struct UnkStruct_8015F584 D_8014F110[]; - void create_thread(OSThread*, OSId, void (*entry)(void *), void*, void*, OSPri); void main_func(void); void thread1_idle(void*); @@ -105,8 +103,16 @@ void update_gamestate(void); void thread5_game_loop(void*); void thread4_audio(void*); -extern struct GfxPool *gGfxPool; -extern Gfx *gDisplayListHead; + +extern struct VblankHandler *gVblankHandler1; +extern struct VblankHandler *gVblankHandler2; + +extern struct SPTask *gActiveSPTask; +extern struct SPTask *sCurrentAudioSPTask; +extern struct SPTask* sCurrentDisplaySPTask; +extern struct SPTask* sNextAudioSPTask; +extern struct SPTask* sNextDisplaySPTask; + extern struct Controller gControllers[]; extern struct Controller *gControllerOne; extern struct Controller *gControllerTwo; @@ -116,9 +122,6 @@ extern struct Controller *gControllerFive; extern struct Controller *gControllerSix; extern struct Controller *gControllerSeven; extern struct Controller *gControllerEight; -extern s32 D_800DC568; -extern s32 D_800DC56C[]; - extern Player gPlayers[]; extern Player *gPlayerOne; @@ -132,26 +135,102 @@ extern Player *gPlayerEight; extern Player *gPlayerOneCopy; extern Player *gPlayerTwoCopy; -extern UNUSED Player *gPlayerThreeCopy; -extern UNUSED Player *gPlayerFourCopy; -extern u16 D_80152308; +extern s32 D_800FD850[]; +extern struct GfxPool gGfxPools[]; +extern struct GfxPool *gGfxPool; -extern s32 gModeSelection; - -extern u16 *gPhysicalFramebuffers[]; -extern OSIoMesg gDmaIoMesg; +extern s32 gfxPool_padding; +extern struct VblankHandler gGameVblankHandler; +extern struct VblankHandler sSoundVblankHandler; +extern OSMesgQueue gDmaMesgQueue, gGameVblankQueue, gGfxVblankQueue, unused_gMsgQueue, gIntrMesgQueue, gSPTaskMesgQueue; +extern OSMesgQueue sSoundMesgQueue; +extern OSMesg sSoundMesgBuf[]; +extern OSMesg gDmaMesgBuf[], gGameMesgBuf; +extern OSMesg gGfxMesgBuf[]; +extern OSMesg gIntrMesgBuf[], gSPTaskMesgBuf[]; extern OSMesg gMainReceivedMesg; -extern OSMesgQueue gDmaMesgQueue; -extern s32 gGamestateNext; -extern s32 gActiveScreenMode; -extern f32 gVBlankTimer; -extern s32 gScreenModeSelection; +extern OSIoMesg gDmaIoMesg; +extern OSMesgQueue gSIEventMesgQueue; +extern OSMesg gSIEventMesgBuf[]; extern OSContStatus gControllerStatuses[]; -extern struct Controller *gControllerFive; + +extern OSContPad gControllerPads[]; extern u8 gControllerBits; +extern struct UnkStruct_8015F584 D_8014F110[]; +extern u16 gNumActors; +extern u16 gMatrixObjectCount; +extern s32 gTickSpeed; +extern f32 D_80150118; +extern u16 wasSoftReset; +extern u16 D_8015011E; + +extern s32 D_80150120; +extern s32 gMenuSelectionFromQuit; +extern f32 gCameraZoom[]; + +extern f32 D_80150148; +extern f32 D_8015014C; +extern f32 D_80150150; + +extern struct D_80150158 gD_80150158[]; +extern uintptr_t gSegmentTable[]; +extern Gfx *gDisplayListHead; +extern struct SPTask *gGfxSPTask; +extern s32 D_801502A0; +extern s32 D_801502A4; +extern u16 *gPhysicalFramebuffers[]; +extern u32 D_801502B4; +extern Mat4 D_801502C0; + +extern s32 padding[]; + +extern u16 D_80152300[]; +extern u16 D_80152308; + +extern OSThread gIdleThread; +extern ALIGNED8 u8 gIdleThreadStack[]; +extern OSThread gVideoThread; +extern ALIGNED8 u8 gVideoThreadStack[]; +extern OSThread gGameLoopThread; +extern ALIGNED8 u8 gGameLoopThreadStack[]; +extern OSThread gAudioThread; +extern ALIGNED8 u8 gAudioThreadStack[]; + +extern u8 gGfxSPTaskYieldBuffer[]; +extern u32 gGfxSPTaskStack[]; +extern OSMesg gPIMesgBuf[]; +extern OSMesgQueue gPIMesgQueue; + +extern s32 gGamestate; +#ifndef STRANGE_MAIN_HEADER_H +extern s32 D_800DC510; +#endif +extern u16 D_800DC518; +extern u16 gDemoMode; +extern u16 gEnableDebugMode; +extern s32 gGamestateNext; +extern s32 gActiveScreenMode; +extern s32 gScreenModeSelection; +extern s32 gPlayerCountSelection1; + +extern s32 gModeSelection; +extern s32 D_800DC540; +extern s32 D_800DC544; +extern s32 gCCSelection; +extern s32 gGlobalTimer; +extern u16 sRenderedFramebuffer; +extern u16 sRenderingFramebuffer; +extern s32 D_800DC568; +extern s32 D_800DC56C[]; +extern s16 sNumVBlanks; +extern f32 gVBlankTimer; +extern f32 gCourseTimer; + +// end of definition of main.c variables + extern u64 rspbootTextStart[], rspbootTextEnd[]; extern u64 gspF3DEXTextStart[], gspF3DEXTextEnd[]; extern u64 gspF3DLXTextStart[], gspF3DLXTextEnd[]; @@ -180,6 +259,4 @@ extern struct UnkStruct_800DC5EC *D_800DC5EC; extern u16 D_800DC5B0; extern s32 gPlayerWinningIndex; -extern u16 D_80152300[]; - #endif diff --git a/src/math_util_2.c b/src/math_util_2.c index 5344c9a77..b3157df04 100644 --- a/src/math_util_2.c +++ b/src/math_util_2.c @@ -597,7 +597,6 @@ void func_80041D24(void) { } void guOrtho(Mtx *, f32, f32, f32, f32, f32, f32, f32); /* extern */ -extern s32 gActiveScreenMode; extern s8 D_801658FE; extern Mtx D_80183D60[]; diff --git a/src/player_controller.c b/src/player_controller.c index 0a690ea66..b05c42ee0 100644 --- a/src/player_controller.c +++ b/src/player_controller.c @@ -3,22 +3,23 @@ #include #include #include + +#include "player_controller.h" #include "code_800029B0.h" #include "kart_attributes.h" -#include "memory.h" +#include "racing/memory.h" #include "math_util.h" #include "code_8001F980.h" -#include "player_controller.h" #include "code_8008C1D0.h" #include "collision.h" #include "waypoints.h" #include "audio/external.h" #include "code_8003DC40.h" +#include "main.h" extern s8 D_80164A89; extern s16 D_801633F8; extern s32 D_8018D168; -extern s32 D_800DC510; s16 D_800E3810[] = { 1, 2, 3, 4, 5, 6, 7, 0 diff --git a/src/player_controller.h b/src/player_controller.h index c2507a504..79a56ecf4 100644 --- a/src/player_controller.h +++ b/src/player_controller.h @@ -195,12 +195,4 @@ extern Player *D_801653C0[8]; extern s16 D_801656F0; extern s32 gRaceFrameCounter; -extern struct Controller *gControllerEight; -extern struct Controller *gControllerFour; -extern struct Controller *gControllerOne; -extern struct Controller *gControllerSeven; -extern struct Controller *gControllerSix; -extern struct Controller *gControllerThree; -extern struct Controller *gControllerTwo; - #endif diff --git a/src/racing/actors.c b/src/racing/actors.c index 2a3d56653..f9cb9325e 100644 --- a/src/racing/actors.c +++ b/src/racing/actors.c @@ -1,12 +1,14 @@ #include #include #include -#include "types.h" -#include "code_800029B0.h" +#include #include #include #include #include +#include + +#include "code_800029B0.h" #include "main.h" #include "math_util.h" #include "memory.h" @@ -18,10 +20,10 @@ #include "code_80071F00.h" #include "code_8008C1D0.h" #include "collision.h" -#include #include "audio/external.h" #include "common_textures.h" #include "courses/all_course_data.h" +#include "main.h" // Appears to be textures // or tluts diff --git a/src/racing/actors.h b/src/racing/actors.h index 4b9de1249..4d0aea8a3 100644 --- a/src/racing/actors.h +++ b/src/racing/actors.h @@ -124,30 +124,15 @@ extern struct Actor *D_802BA05C; extern s8 gTLUTRedShell[512]; // tlut 256 extern u16 D_802BA260; -extern s32 gPlayerCountSelection1; -extern Player gPlayers[]; -extern u16 gNumActors; - extern u16 D_802BA260; // Box Truck sub-type? -extern Player *gPlayerOne; -extern struct Controller gControllers[]; - -extern s32 gActiveScreenMode; - extern u16 gNearestWaypointByPlayerId[]; extern Camera *camera1; -extern Gfx *gDisplayListHead; -extern s32 gModeSelection; extern s16 gCurrentCourseId; -extern f32 gCameraZoom[]; extern u16 isCrossingTriggeredByIndex[]; extern Lights1 D_800DC610[]; -extern u16 gMatrixObjectCount; - -extern uintptr_t gSegmentTable[]; extern s16 gPlaceItemBoxes; extern s8 D_0D004C68[]; @@ -168,10 +153,6 @@ extern Gfx toads_turnpike_dl_9[]; extern Gfx toads_turnpike_dl_10[]; extern Gfx toads_turnpike_dl_11[]; -extern Mat4 D_801502C0; - -extern s32 gGamestate; -extern s32 gGamestate; extern s32 D_80162DF8; extern Gfx D_0D001750[]; diff --git a/src/racing/actors_extended.h b/src/racing/actors_extended.h index 0cd5d6671..6bf0865ba 100644 --- a/src/racing/actors_extended.h +++ b/src/racing/actors_extended.h @@ -44,6 +44,4 @@ extern f32 D_802B9F68; extern s16 gPlayerBalloonCount[]; -extern u16 gDemoMode; - #endif // ACTORS_EXTENDED_H diff --git a/src/racing/memory.c b/src/racing/memory.c index 506aa6695..4d1cf39dd 100644 --- a/src/racing/memory.c +++ b/src/racing/memory.c @@ -5,9 +5,10 @@ #include #include #include + +#include "memory.h" #include "main.h" #include "code_800029B0.h" -#include "memory.h" #include "math_util.h" s32 sGfxSeekPosition; diff --git a/src/racing/memory.h b/src/racing/memory.h index 3c471c973..7a9111b0f 100644 --- a/src/racing/memory.h +++ b/src/racing/memory.h @@ -90,10 +90,6 @@ void unpack_texture_on(Gfx*, u8*, s8); void unpack_texture_off(Gfx*, u8*, s8); u8 *load_course(s32); -// main.c -extern struct D_80150158 gD_80150158[]; -extern s32 D_801502A0; - extern u8 _other_texturesSegmentRomStart[]; #endif // MEMORY_H diff --git a/src/racing/race_logic.c b/src/racing/race_logic.c index 4f94805a6..581b6769e 100644 --- a/src/racing/race_logic.c +++ b/src/racing/race_logic.c @@ -27,42 +27,23 @@ extern s16 gPlayerBalloonCount[]; extern s16 D_8016348C; extern s8 gCupCourseSelection; -extern s32 D_800DC544; -extern Player gPlayers[]; -extern Player *gPlayerOne; extern s32 gLapCountByPlayerId[]; -extern s32 D_80150120; -extern s32 gModeSelection; -extern s32 gPlayerCountSelection1; extern u16 D_802BA048; -extern s32 D_800DC510; -extern s32 gMenuSelectionFromQuit; extern u16 D_800DC5B4; extern u16 D_800DC5B0; extern u16 D_800DC5B8; extern s32 gMenuSelection; extern s8 D_8018EE08; -extern u16 gDemoMode; -extern f32 D_80150118; -extern u16 D_800DC518; -extern u16 D_8015011E; -extern float gCourseTimer; -extern float gVBlankTimer; -extern s32 gScreenModeSelection; extern s32 D_8018D2AC; -extern s32 gActiveScreenMode; extern s16 gCurrentCourseId; extern u32 D_800DC5AC; -extern u16 gEnableDebugMode; extern s32 gPlayerWinningIndex; extern u16 gIsInQuitToMenuTransition, gQuitToMenuTransitionCounter; extern s32 D_802B91E0; -extern f32 D_80150148; - u16 D_802BA030; u16 D_802BA032; diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c index 929d20b1e..1e72853a1 100644 --- a/src/racing/render_courses.c +++ b/src/racing/render_courses.c @@ -3,15 +3,16 @@ #include #include #include -#include #include + +#include "render_courses.h" +#include "code_800029B0.h" #include "main.h" #include "actors.h" #include "math_util.h" #include "memory.h" #include "code_80281780.h" #include "collision.h" -#include "render_courses.h" #include "skybox_and_splitscreen.h" #include "courses/all_course_data.h" #include "courses/all_course_packed.h" @@ -67,8 +68,6 @@ void parse_course_displaylists(uintptr_t addr) { } } -extern u16 D_80152300[]; - void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { Player *temp_t1 = arg1->player; Camera *temp_a2 = arg1->camera; diff --git a/src/racing/render_courses.h b/src/racing/render_courses.h index 010b13ff8..db41cd28e 100644 --- a/src/racing/render_courses.h +++ b/src/racing/render_courses.h @@ -36,14 +36,7 @@ void func_80295D88(void); void func_802966A0(void); void func_802969F8(void); -extern Gfx *gDisplayListHead; extern s16 gCurrentCourseId; -extern s32 gActiveScreenMode; - -extern u16 sRenderedFramebuffer; -extern uintptr_t gSegmentTable[]; - -extern Player gPlayers[]; extern s32 D_8015F59C; @@ -52,7 +45,6 @@ extern s32 D_800DC5E0; extern s32 D_802B87C4; extern s32 D_802B87C8; extern s32 D_802B87CC; -extern s32 gScreenModeSelection; extern Gfx mario_raceway_dls[]; extern Gfx choco_mountain_dls[]; extern s32 D_802B87BC; @@ -71,13 +63,8 @@ extern Gfx wario_stadium_dls[]; extern Gfx D_090001D0[]; -extern u16 D_800DC518; extern u16 D_8015F58A; extern u16 D_800DC5BC; /* unable to generate initializer */ -extern s32 gGamestate; -extern s32 gModeSelection; -extern u16 gNumActors; -extern s32 gCCSelection; #endif diff --git a/src/racing/skybox_and_splitscreen.c b/src/racing/skybox_and_splitscreen.c index 8bf0e7d35..e7523ac17 100644 --- a/src/racing/skybox_and_splitscreen.c +++ b/src/racing/skybox_and_splitscreen.c @@ -1,22 +1,23 @@ #include #include #include -#include -#include "code_800029B0.h" #include -#include #include #include + +#include "skybox_and_splitscreen.h" +#include "code_800029B0.h" +#include #include "memory.h" #include "camera.h" #include "common_textures.h" -#include "skybox_and_splitscreen.h" #include "code_8001F980.h" #include "code_80057C60.h" #include "code_80091750.h" #include "actors.h" #include "render_courses.h" #include "math_util.h" +#include "main.h" Vp D_802B8880[] = { @@ -1291,8 +1292,6 @@ void copy_framebuffer(s32 arg0, s32 arg1, s32 width, s32 height, u16 *source, u1 extern s32 D_800DC5DC; extern s32 D_800DC5E0; -extern uintptr_t gSegmentTable[]; -extern u16 sRenderedFramebuffer; void func_802A7728(void) { s16 temp_v0; diff --git a/src/racing/skybox_and_splitscreen.h b/src/racing/skybox_and_splitscreen.h index d98ac7549..499d03ca4 100644 --- a/src/racing/skybox_and_splitscreen.h +++ b/src/racing/skybox_and_splitscreen.h @@ -52,43 +52,28 @@ void copy_framebuffer(s32, s32, s32, s32, u16*, u16*); void func_802A7728(void); void func_802A7940(void); -extern Gfx *gDisplayListHead; - extern struct UnkStruct_800DC5EC *D_800DC5EC; extern struct UnkStruct_800DC5EC *D_800DC5F0; extern struct UnkStruct_800DC5EC *D_800DC5F4; extern struct UnkStruct_800DC5EC *D_800DC5F8; extern u16 D_800DC5B0; -extern s32 gGamestateNext; extern u16 gIsInQuitToMenuTransition; extern u16 gQuitToMenuTransitionCounter; extern s32 gMenuSelection; extern s32 D_800E86A4; -extern s32 gMenuSelectionFromQuit; -extern u32 D_801502B4; -extern u16 sRenderingFramebuffer; extern s32 D_800DC5D0; extern s32 D_800DC5D4; extern s32 D_800DC5D8; extern u16 D_800DC5BC; -extern struct GfxPool *gGfxPool; -extern f32 gCameraZoom[]; extern u16 D_800DC5B4; -extern f32 D_80150148; -extern f32 D_8015014C; -extern f32 D_80150150; extern u16 D_800DC5C8; extern u16 D_800DC5B8; extern struct UnkStruct_800DC5EC D_8015F480[]; -extern struct Controller gControllers[]; -extern Player gPlayers[]; extern s32 D_800DC5DC; extern s32 D_800DC5E0; -extern uintptr_t gSegmentTable[]; -extern u16 sRenderedFramebuffer; #endif diff --git a/src/spawn_players.c b/src/spawn_players.c index 21cc01ef4..f111d9b08 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -1,5 +1,7 @@ #include #include + +#include "spawn_players.h" #include "code_800029B0.h" #include "kart_attributes.h" #include "memory.h" @@ -12,10 +14,10 @@ #include "code_80057C60.h" #include "collision.h" #include "render_courses.h" -#include "spawn_players.h" #include "staff_ghosts.h" #include "code_80005FD0.h" #include "podium_ceremony_actors.h" +#include "main.h" // arg4 is height? Or something like that? void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingColumn, f32 arg4, f32 arg5, u16 characterId, s16 playerType) {