Match bss for code_800029B0 and clean headers (#406)

* Match bss for code_800029B0 and clean headers

* Fix dvdl and a warning
This commit is contained in:
MegaMech 2023-09-08 13:39:13 -06:00 committed by GitHub
parent b723c1be14
commit 208fecdd28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 283 additions and 552 deletions

View File

@ -1,271 +0,0 @@
.include "macros.inc"
.section .bss
#glabel D_8015F480
#.skip 44
#glabel D_8015F4AC
#.skip 2
#glabel D_8015F4AE
#.skip 2
#glabel D_8015F4B0
#.skip 2
#glabel D_8015F4B2
#.skip 14
#glabel D_8015F4C0 # 2p wrapper
#.skip 44
#glabel D_8015F4EC
#.skip 2
#glabel D_8015F4EE
#.skip 2
#glabel D_8015F4F0
#.skip 2
#glabel D_8015F4F2
#.skip 14
#glabel D_8015F500 #3p wrapper
#.skip 44
#glabel D_8015F52C
#.skip 2
#glabel D_8015F52E
#.skip 2
#glabel D_8015F530
#.skip 2
#glabel D_8015F532
#.skip 14
#glabel D_8015F540 #4p wrapper
#.skip 44
#glabel D_8015F56C
#.skip 2
#glabel D_8015F56E
#.skip 2
#glabel D_8015F570
#.skip 2
#glabel D_8015F572 # end of player wrapper
#.skip 14
glabel gSurfaceMap
.skip 4
glabel D_8015F584
.skip 4
glabel D_8015F588
.skip 2
glabel D_8015F58A
.skip 2
glabel D_8015F58C
.skip 4
glabel D_8015F590
.skip 12
glabel D_8015F59C
.skip 4
glabel D_8015F5A0
.skip 4
glabel D_8015F5A4
.skip 196
glabel vtxBuffer
.skip 128
glabel D_8015F6E8
.skip 2
glabel D_8015F6EA
.skip 2
glabel D_8015F6EC
.skip 2
glabel D_8015F6EE
.skip 2
glabel D_8015F6F0
.skip 2
glabel D_8015F6F2
.skip 2
glabel D_8015F6F4
.skip 2
glabel D_8015F6F6
.skip 2
glabel D_8015F6F8
.skip 2
glabel D_8015F6FA
.skip 2
glabel D_8015F6FC
.skip 2
glabel gNumSpawnedShells
.skip 2
glabel D_8015F700
.skip 2
glabel D_8015F702
.skip 2
glabel D_8015F704
.skip 4
glabel D_8015F708
.skip 16
glabel D_8015F718
.skip 12
glabel gFreeMemorySize
.skip 4
glabel gNextFreeMemoryAddress # 0x8015F728 ptr
.skip 4
glabel gHeapEndPtr # 0x8015F72C
.skip 4
glabel D_8015F730
.word 0x00000000
glabel FreeMemoryResetAnchor
.word 0x00000000
glabel D_8015F738
.skip 16
glabel D_8015F748
.skip 16
glabel D_8015F758
.skip 16
glabel D_8015F768
.skip 16
glabel D_8015F778
.skip 12
glabel gCourseDirection
.skip 4
glabel D_8015F788
.skip 8
glabel D_8015F790
.skip 256
glabel D_8015F890
.skip 2
glabel D_8015F892
.skip 2
glabel D_8015F894
.skip 4
glabel gTimePlayerLastTouchedFinishLine
.skip 32
glabel gNmiUnknown1
.skip 4
glabel gNmiUnknown2
.skip 4
glabel gNmiUnknown3
.skip 4
glabel gNmiUnknown4
.skip 4
glabel gNmiUnknown5
.skip 4
glabel gNmiUnknown6
.skip 4
glabel D_8015F8D0
.skip 8
glabel D_8015F8D8
.skip 4
glabel D_8015F8DC
.skip 4
glabel D_8015F8E0
.skip 4
glabel D_8015F8E4
.skip 4
glabel D_8015F8E8
.skip 8
glabel gPlayerPositionLUT
.skip 2
glabel D_8015F8F2
.skip 2
glabel D_8015F8F4
.skip 2
glabel D_8015F8F6
.skip 10
glabel gNumPermanentActors
.skip 184
glabel gActorList
.skip 11200
glabel D_80162578
.skip 112
glabel gDebugPathCount
.skip 2
glabel sIsController1Unplugged
.skip 2
glabel D_801625EC
.skip 4
glabel D_801625F0
.skip 4
glabel D_801625F4
.skip 4
glabel D_801625F8
.skip 4
glabel D_801625FC

View File

@ -105,6 +105,7 @@ struct Actor {
/* 0x30 */ Collision unk30;
}; // size = 0x70
// Duplicate declare for simplicity when externing actors & packed files.
extern struct Actor gActorList[ACTOR_LIST_SIZE]; // D_8015F9B8
/*

View File

@ -59,8 +59,6 @@ extern OSMesgQueue gSIEventMesgQueue; // D_8014F0B8
extern u8 gSoundMode; // D_8018EDF2
extern char *gSoundModeNames[NUM_SOUND_MODES]; // D_800E7710
// Indexed by Player ID. Track time in seconds since player has last crossed the finish line
extern f32 gTimePlayerLastTouchedFinishLine[8]; // D_8015F898
extern s8 gTimeTrialDataCourseIndex; // D_8018EDF7
extern Player gPlayers[8];
@ -82,9 +80,6 @@ extern struct_D_8018CE10 D_8018CE10[];
//extern struct GfxPool *gGfxPool; // D_8014EF40
extern mk64_surface_map_ram *gSurfaceMap; // This is techinally a pointer to an array, but declaring it as such create regalloc issues elsewhere
extern u16 D_8015F588; // Number of entires in gSurfaceMap
extern Vec3f D_80165070[];
extern Vp D_802B8880[];
@ -98,8 +93,6 @@ extern u16 gIsGamePaused;
extern u16 D_80150112;
extern u16 D_8015F890;
extern u16 D_80162DD8;
extern s32 D_80162DE0;
extern s32 D_80162DE4;

34
mk64.ld
View File

@ -266,11 +266,11 @@ SECTIONS
BUILD_DIR/src/audio/load.o(.data);
BUILD_DIR/src/audio/playback.o(.data);
BUILD_DIR/src/audio/effects.o(.data);
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.data);
BUILD_DIR/src/debug/debug.o(.data);
BUILD_DIR/src/os/sprintf.o(.data);
#endif
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.data);
BUILD_DIR/src/debug/debug.o(.data);
BUILD_DIR/src/os/sprintf.o(.data);
#endif
BUILD_DIR/data/data_0DD0A0_2_1_1.o(.data);
BUILD_DIR/src/audio/port_eu.o(.data);
BUILD_DIR/data/data_0DD0A0_2_1_2.o(.data);
@ -314,11 +314,11 @@ SECTIONS
BUILD_DIR/src/audio/seqplayer.o(.rodata);
BUILD_DIR/src/audio/external.o(.rodata);
BUILD_DIR/src/audio/port_eu.o(.rodata);
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.rodata);
BUILD_DIR/src/debug/debug.o(.rodata);
BUILD_DIR/src/os/sprintf.o(.rodata);
#endif
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.rodata);
BUILD_DIR/src/debug/debug.o(.rodata);
BUILD_DIR/src/os/sprintf.o(.rodata);
#endif
BUILD_DIR/src/os/guRotateF.o(.rodata);
BUILD_DIR/src/os/guPerspectiveF.o(.rodata);
BUILD_DIR/asm/os/__osException.o(.rodata);
@ -336,8 +336,6 @@ SECTIONS
BEGIN_NOLOAD(main) {
BUILD_DIR/src/main.o(.bss);
BUILD_DIR/src/code_800029B0.o(.bss);
BUILD_DIR/asm/bss_800029B0.o(.bss);
BUILD_DIR/src/profiler.o(.bss);
BUILD_DIR/src/crash_screen.o(.bss);
BUILD_DIR/src/code_80004740.o(.bss);
@ -350,11 +348,11 @@ SECTIONS
BUILD_DIR/asm/bss_8001C4D0_1.o(.bss);
BUILD_DIR/src/code_800AF9B0.o(.bss);
BUILD_DIR/src/menus.o(.bss);
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss);
BUILD_DIR/src/debug/debug.o(.bss);
BUILD_DIR/src/os/sprintf.o(.bss);
#endif
#if DEBUG
BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss);
BUILD_DIR/src/debug/debug.o(.bss);
BUILD_DIR/src/os/sprintf.o(.bss);
#endif
BUILD_DIR/asm/bss_main_audio.o(.bss);
BUILD_DIR/src/audio/port_eu.o(.bss);
BUILD_DIR/asm/bss_main_audio2.o(.bss);
@ -415,8 +413,8 @@ SECTIONS
BUILD_DIR/src/framebuffers.o(.bss*);
BUILD_DIR/src/audio/synthesis.o(.bss*);
BUILD_DIR/asm/bss_audio.o(.bss*);
. = ALIGN(0x8);
BUILD_DIR/asm/bss_sptask_audio.o(.bss);
. = ALIGN(0x8);
}
END_NOLOAD(code_8028DF00)

View File

@ -2,6 +2,7 @@
#include <macros.h>
#include <PR/os.h>
#include "types.h"
#include "code_800029B0.h"
#include <common_structs.h>
#include <actor_types.h>
#include <defines.h>

View File

@ -125,16 +125,9 @@ extern s8 D_802BA060[512]; // tlut 256
extern u16 D_802BA260;
extern s32 gPlayerCountSelection1;
extern struct Actor gActorList[];
extern Player gPlayers[];
extern u16 gNumActors;
extern u16 gNumPermanentActors;
/**
* Incremented by one every time the player spawns a new shell actor.
* A cleaning routine runs once twenty-one shells have spawned.
*/
extern u16 gNumSpawnedShells;
extern u16 D_802BA260; // Box Truck sub-type?
extern Player *gPlayerOne;
@ -145,7 +138,6 @@ extern s32 gActiveScreenMode;
extern u16 gNearestWaypointByPlayerId[];
extern Camera *camera1;
extern struct Actor gActorList[];
extern Gfx *gDisplayListHead;
extern s32 gModeSelection;
extern s16 gCurrentCourseId;
@ -154,13 +146,6 @@ extern u16 D_801637B8[];
extern Lights1 D_800DC610[];
extern u16 D_80150112;
extern u16 D_8015F700;
extern u16 D_8015F702;
extern f32 D_8015F704;
extern Vec3f D_8015F708;
extern f32 D_8015F8E4;
extern f32 gCourseDirection;
extern uintptr_t gSegmentTable[];
extern s16 gPlaceItemBoxes;
@ -256,16 +241,8 @@ extern Gfx toads_turnpike_dl_11[];
extern Mat4 D_801502C0;
extern s16 D_8015F6EC;
extern s16 D_8015F6EE;
extern s32 gGamestate;
extern s32 gGamestate;
extern s32 D_8015F8DC;
extern s32 D_8015F8E0;
extern s32 D_801625EC;
extern s32 D_801625F0;
extern s32 D_801625F4;
extern s32 D_80162DF8;
extern Gfx d_course_mario_raceway_dl_piranha_plant[];
@ -398,6 +375,4 @@ extern s8 D_802B8864[];
extern u16 D_800DC5BC;
extern Vec3f D_8015F8D0;
#endif // ACTORS_H

View File

@ -2,6 +2,7 @@
#include <macros.h>
#include <defines.h>
#include <actor_types.h>
#include "code_800029B0.h"
#include "math_util.h"
#include "memory.h"
#include "waypoints.h"

View File

@ -44,22 +44,6 @@ extern f32 D_802B9F68;
extern s16 gPlayerBalloonCount[];
extern struct Actor gActorList[];
extern Player gPlayers[];
extern Player *gPlayerOne;
extern Player *gPlayerTwo;
extern Player *gPlayerThree;
extern struct Controller gControllers[];
extern struct Controller *gControllerOne;
extern struct Controller *gControllerSix;
extern struct Controller *gControllerSeven;
extern struct Controller *gControllerEight;
extern u16 gDemoMode;
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
extern s16 gPlayerPositionLUT[];
#endif // ACTORS_EXTENDED_H

View File

@ -2,6 +2,7 @@
#include <macros.h>
#include <common_structs.h>
#include <defines.h>
#include "code_800029B0.h"
#include "camera.h"
#include "math_util.h"
#include "memory.h"

View File

@ -23,33 +23,24 @@
extern u16 D_800DC5A8;
extern s32 D_800DC510;
extern u16 gNumSpawnedShells;
extern s32 D_802BA038;
extern s16 D_802BA048;
extern s16 gCurrentlyLoadedCourseId;
extern f32 gCourseDirection;
extern s8 D_8018EDF3;
extern s8 gCupSelection;
extern s32 gScreenModeSelection;
extern u32 D_8015F730;
extern s32 FreeMemoryResetAnchor;
extern u32 gNextFreeMemoryAddress;
extern s32 D_80150120;
extern f32 D_8015F738, D_8015F748, D_8015F758, D_8015F768, D_8015F778;
extern Vec3f D_802B91C8;
extern struct ActorSpawnData D_06009570[];
extern struct ActorSpawnData D_06014330[];
extern f32 gCourseDirection;
s32 D_800DC5E0 = 32;
@ -65,7 +56,72 @@ struct UnkStruct_800DC5EC *D_800DC5F0 = &D_8015F480[1];
struct UnkStruct_800DC5EC *D_800DC5F4 = &D_8015F480[2];
struct UnkStruct_800DC5EC *D_800DC5F8 = &D_8015F480[3];
u16 gIsGamePaused = 0;
// Technically a pointer to an array, but declaring it so creates regalloc issues.
mk64_surface_map_ram *gSurfaceMap;
u16 *D_8015F584;
u16 D_8015F588; // Number of entries in gSurfaceMap
u16 D_8015F58A;
u32 D_8015F58C;
Vec3f D_8015F590;
s32 D_8015F59C;
s32 D_8015F5A0;
s32 D_8015F5A4;
s32 code_800029B0_bss_pad[48];
Vtx *vtxBuffer[32];
s16 D_8015F6E8;
s16 D_8015F6EA;
s16 D_8015F6EC; // s16 or u16?
s16 D_8015F6EE;
s16 D_8015F6F0;
s16 D_8015F6F2;
s16 D_8015F6F4;
s16 D_8015F6F6;
u16 D_8015F6F8;
s16 D_8015F6FA;
s16 D_8015F6FC;
/**
* Incremented by one every time the player spawns a new shell actor.
* A cleaning routine runs once twenty-one shells have spawned.
*/
u16 gNumSpawnedShells;
u16 D_8015F700;
u16 D_8015F702;
f32 D_8015F704;
Vec3f D_8015F708;
UNUSED u32 D_8015F718[3]; // Likely held ptrs to segmented data.
u32 gFreeMemorySize;
u32 gNextFreeMemoryAddress;
u32 gHeapEndPtr;
u32 D_8015F730;
u32 gFreeMemoryResetAnchor;
Vec3f D_8015F738;
Vec3f D_8015F748;
Vec3f D_8015F758;
Vec3f D_8015F768;
Vec3f D_8015F778;
f32 gCourseDirection; // Extra mode, flips vertices.
s32 D_8015F788;
s32 D_8015F790[64]; // Unknown data, potentially not used.
u16 D_8015F890;
u16 D_8015F892;
u16 D_8015F894;
// Indexed by Player ID. Track time in seconds since player has last crossed the finish line
f32 gTimePlayerLastTouchedFinishLine[8];
u8 *pAppNmiBuffer = (u8 *) &osAppNmiBuffer;
u8 *gNmiUnknown1;
u8 *gNmiUnknown2;
u8 *gNmiUnknown3;
u8 *gNmiUnknown4;
u8 *gNmiUnknown5;
u8 *gNmiUnknown6;
s32 gIsMirrorMode = 0;
f32 vtxStretchY = 1.0f;
Lights1 D_800DC610[] = {
@ -76,6 +132,28 @@ static s32 pad_800029B0 = 0x80000000;
s16 gCreditsCourseId = COURSE_LUIGI_RACEWAY;
s16 gPlaceItemBoxes = 1;
Vec3f D_8015F8D0;
s32 D_8015F8DC;
s32 D_8015F8E0;
f32 D_8015F8E4;
f32 D_8015F8E8;
s16 gPlayerPositionLUT[8]; // Player index at each position
u16 gNumPermanentActors;
s32 code_800029B0_bss_pad2[44];
struct Actor gActorList[ACTOR_LIST_SIZE];
// @warning todo: Is this apart of the actor array?
UNUSED u8 D_80162578[sizeof(struct Actor)];
s16 gDebugPathCount;
s16 sIsController1Unplugged;
s32 D_801625EC;
s32 D_801625F0;
s32 D_801625F4;
s32 D_801625F8;
f32 D_801625FC;
void func_800029B0(void) {
switch(D_800DC5A8) {
case 0:
@ -110,7 +188,7 @@ void setup_race(void) {
if (gCurrentCourseId != gCurrentlyLoadedCourseId) {
D_80150120 = 0;
gCurrentlyLoadedCourseId = gCurrentCourseId;
gNextFreeMemoryAddress = FreeMemoryResetAnchor;
gNextFreeMemoryAddress = gFreeMemoryResetAnchor;
load_course(gCurrentCourseId);
func_80295D88();
D_8015F730 = gNextFreeMemoryAddress;
@ -166,34 +244,34 @@ void setup_race(void) {
void func_80002DAC(void) {
switch (gCurrentCourseId) {
case COURSE_MARIO_RACEWAY:
vec3f_set(&D_8015F748, -223.0f, 94.0f, -155.0f);
func_800C9D80(&D_8015F748, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F748, -223.0f, 94.0f, -155.0f);
func_800C9D80(D_8015F748, D_802B91C8, 0x5103700B);
break;
case COURSE_ROYAL_RACEWAY:
vec3f_set(&D_8015F748, 177.0f, 87.0f, -393.0f);
func_800C9D80(&D_8015F748, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F748, 177.0f, 87.0f, -393.0f);
func_800C9D80(D_8015F748, D_802B91C8, 0x5103700B);
break;
case COURSE_LUIGI_RACEWAY:
vec3f_set(&D_8015F748, 85.0f, 21.0f, -219.0f);
func_800C9D80(&D_8015F748, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F748, 85.0f, 21.0f, -219.0f);
func_800C9D80(D_8015F748, D_802B91C8, 0x5103700B);
break;
case COURSE_WARIO_STADIUM:
vec3f_set(&D_8015F748, 298.0f, 202.0f, -850.0f);
func_800C9D80(&D_8015F748, D_802B91C8, 0x5103700B);
vec3f_set(&D_8015F758, -1600.0f, 202.0f, -2430.0f);
func_800C9D80(&D_8015F758, D_802B91C8, 0x5103700B);
vec3f_set(&D_8015F768, -2708.0f, 202.0f, 1762.0f);
func_800C9D80(&D_8015F768, D_802B91C8, 0x5103700B);
vec3f_set(&D_8015F778, -775.0f, 202.0f, 1930.0f);
func_800C9D80(&D_8015F778, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F748, 298.0f, 202.0f, -850.0f);
func_800C9D80(D_8015F748, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F758, -1600.0f, 202.0f, -2430.0f);
func_800C9D80(D_8015F758, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F768, -2708.0f, 202.0f, 1762.0f);
func_800C9D80(D_8015F768, D_802B91C8, 0x5103700B);
vec3f_set(D_8015F778, -775.0f, 202.0f, 1930.0f);
func_800C9D80(D_8015F778, D_802B91C8, 0x5103700B);
break;
case COURSE_KOOPA_BEACH:
vec3f_set(&D_8015F738, 153.0f, 0.0f, 2319.0f);
func_800C9D80(&D_8015F738, D_802B91C8, 0x51028001);
vec3f_set(D_8015F738, 153.0f, 0.0f, 2319.0f);
func_800C9D80(D_8015F738, D_802B91C8, 0x51028001);
break;
case COURSE_DK_JUNGLE:
vec3f_set(&D_8015F738, -790.0f, -255.0f, -447.0f);
func_800C9D80(&D_8015F738, D_802B91C8, 0x51028001);
vec3f_set(D_8015F738, -790.0f, -255.0f, -447.0f);
func_800C9D80(D_8015F738, D_802B91C8, 0x51028001);
break;
default:
break;

View File

@ -1,6 +1,10 @@
#ifndef CODE_800029B0_H
#define CODE_800029B0_H
#include <macros.h>
#include <ultra64.h>
#include <actor_types.h>
/* Function Prototypes */
void func_800029B0(void);
@ -14,4 +18,83 @@ extern struct UnkStruct_800DC5EC *D_800DC5F0;
extern struct UnkStruct_800DC5EC *D_800DC5F4;
extern struct UnkStruct_800DC5EC *D_800DC5F8;
extern mk64_surface_map_ram *gSurfaceMap;
extern u16 *D_8015F584;
extern u16 D_8015F588;
extern u16 D_8015F58A;
extern u32 D_8015F58C;
extern Vec3f D_8015F590;
extern s32 D_8015F59C;
extern s32 D_8015F5A0;
extern s32 D_8015F5A4;
extern Vtx *vtxBuffer[];
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6EC;
extern s16 D_8015F6EE;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
extern s16 D_8015F6F4;
extern s16 D_8015F6F6;
extern u16 D_8015F6F8;
extern s16 D_8015F6FA;
extern s16 D_8015F6FC;
extern u16 gNumSpawnedShells;
extern u16 D_8015F700;
extern u16 D_8015F702;
extern f32 D_8015F704;
extern Vec3f D_8015F708;
extern UNUSED u32 D_8015F718[3];
extern u32 gFreeMemorySize;
extern u32 gNextFreeMemoryAddress;
extern u32 gHeapEndPtr;
extern u32 D_8015F730;
extern u32 gFreeMemoryResetAnchor;
extern Vec3f D_8015F738;
extern Vec3f D_8015F748;
extern Vec3f D_8015F758;
extern Vec3f D_8015F768;
extern Vec3f D_8015F778;
extern f32 gCourseDirection;
extern s32 D_8015F788;
extern s32 D_8015F790[];
extern u16 D_8015F890;
extern u16 D_8015F892;
extern u16 D_8015F894;
extern f32 gTimePlayerLastTouchedFinishLine[];
extern u8 *pAppNmiBuffer;
extern u8 *gNmiUnknown1;
extern u8 *gNmiUnknown2;
extern u8 *gNmiUnknown3;
extern u8 *gNmiUnknown4;
extern u8 *gNmiUnknown5;
extern u8 *gNmiUnknown6;
extern Vec3f D_8015F8D0;
extern s32 D_8015F8DC;
extern s32 D_8015F8E0;
extern f32 D_8015F8E4;
extern f32 D_8015F8E8;
extern s16 gPlayerPositionLUT[]; // Player index at each position
extern u16 gNumPermanentActors;
extern struct Actor gActorList[];
extern UNUSED u8 D_80162578[];
extern s16 gDebugPathCount;
extern s16 sIsController1Unplugged;
extern s32 D_801625EC;
extern s32 D_801625F0;
extern s32 D_801625F4;
extern s32 D_801625F8;
extern f32 D_801625FC;
#endif

View File

@ -2,6 +2,7 @@
#include <macros.h>
#include <defines.h>
#include "math_util.h"
#include "code_800029B0.h"
#include "memory.h"
#include "waypoints.h"
#include "camera.h"
@ -1749,10 +1750,6 @@ extern f32 D_0D009418;
extern f32 D_0D009568;
extern f32 D_0D0096B8;
extern f32 D_0D009808;
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
extern f32 D_80162FA0;
extern s16 D_80162FD0;
extern s16 D_80162FF8;

View File

@ -2,8 +2,9 @@
#include <macros.h>
#include <common_structs.h>
#include <defines.h>
#include "types.h"
#include "variables.h"
#include <types.h>
#include <variables.h>
#include "code_800029B0.h"
#include "math_util.h"
#include "math_util_2.h"
#include "main.h"

View File

@ -71,8 +71,6 @@ extern struct_D_802F1F80 *D_80164B04;
extern u8 *D_80164B08;
extern u8 *D_80164B0C;
extern u16 D_8015F894;
extern s32 D_80164A28;
extern s16 D_80164AAE[];
extern s16 D_80164AB0[];

View File

@ -1,7 +1,8 @@
#include <ultra64.h>
#include <macros.h>
#include <PR/gbi.h>
#include <main.h>
#include "main.h"
#include "code_800029B0.h"
#include "memory.h"
#include <variables.h>
#include <config.h>
@ -2326,7 +2327,6 @@ extern s16 gCurrentCourseId;
extern s32 gModeSelection;
extern Player* gPlayerOne;
extern s32 gScreenModeSelection;
extern f32 gTimePlayerLastTouchedFinishLine[8];
void func_8005CB60(s32 playerId, s32 arg1)
{

View File

@ -232,7 +232,6 @@ extern s32 gGamestate;
extern u16 gDemoMode;
extern s8 D_8018EDF3;
extern s8 D_80165898;
extern u16 D_8015F894;
extern Gfx D_0D0076F8[];
extern s8 D_801657E4;
extern s8 D_801657E6;

View File

@ -1,9 +1,12 @@
#include <ultra64.h>
#include <macros.h>
#include "types.h"
#include <types.h>
#include <functions.h>
#include <variables.h>
#include <defines.h>
#include <sounds.h>
#include "code_800029B0.h"
#include "math_util.h"
#include "functions.h"
#include "variables.h"
#include "kart_attributes.h"
#include "waypoints.h"
#include "code_80005FD0.h"
@ -13,8 +16,6 @@
#include "code_80057C60.h"
#include "code_8008C1D0.h"
#include "audio/external.h"
#include <defines.h>
#include <sounds.h>
UNUSED void func_unnamed(void) {

View File

@ -136,7 +136,6 @@ extern f32 D_800E37B0[];
extern f32 D_800E3790[];
extern f32 D_800E37D0[];
extern f32 D_800E37F0[];
extern u16 D_8015F6F8;
extern s16 D_80165190[4][8];
extern f32 D_80165280[];
extern s32 D_80165420[];

View File

@ -1,9 +1,10 @@
#include "variables.h"
#include <variables.h>
#include <actor_types.h>
#include "main.h"
#include "code_800029B0.h"
#include "code_80091440.h"
#include "camera.h"
#include "math_util.h"
#include "main.h"
#include <actor_types.h>
#include "collision.h"
void func_80091440(s8 arg0) {
@ -20,9 +21,7 @@ void func_800914A0(void) {
}
}
extern u32 D_8015F718[3];
void func_800914E0(void) {
UNUSED void func_800914E0(void) {
UNUSED Vec3f sp64 = {0.0f, -20.0f, 150.0f};
UNUSED Vec3f sp58 = {0.0f, -6.0f, 4.0f};
uintptr_t segment = SEGMENT_NUMBER2(D_8015F718[0]);

View File

@ -4,4 +4,3 @@ void func_80091440(s8);
void func_800914A0(void);
void func_800914E0(void);
extern u16 D_8015F6F8;

View File

@ -3,7 +3,9 @@
#include <defines.h>
#include <PR/ultratypes.h>
#include <config.h>
#include <variables.h>
#include <sounds.h>
#include "code_800029B0.h"
#include "code_80091750.h"
#include "code_80005FD0.h"
#include "menus.h"
@ -12,8 +14,6 @@
#include "credits.h"
#include "data_segment2.h"
#include "code_800AF9B0.h"
#include "variables.h"
#include <sounds.h>
#include "code_80281780.h"
#include "memory.h"
#include "audio/external.h"
@ -1485,10 +1485,10 @@ void func_80091B78(void) {
}
}
if (gMenuSelection == LOGO_INTRO_MENU) {
gNextFreeMemoryAddress = FreeMemoryResetAnchor;
gNextFreeMemoryAddress = gFreeMemoryResetAnchor;
set_segment_base_addr(6, decompress_segments((u8 *) &_data_825800SegmentRomStart, (u8 *) &_course_mario_raceway_dl_mio0SegmentRomStart));
}
gNextFreeMemoryAddress = FreeMemoryResetAnchor;
gNextFreeMemoryAddress = gFreeMemoryResetAnchor;
// Hypothetically, this should be a ptr... But only hypothetically.
D_8018D9B0 = (intptr_t) get_next_available_memory_addr(0x000900B0);
D_8018D9B4 = (uintptr_t *) get_next_available_memory_addr(0x0000CE00);

View File

@ -341,8 +341,6 @@ extern s32 D_800DDB24;
extern s16 D_80164478[];
extern u8 *D_8018D9BC;
extern s16 D_8015F892;
extern s8 D_800E86D0[];
extern s32 D_80165754;
extern intptr_t D_8018D9B0;

View File

@ -4,9 +4,10 @@
#include <debug.h>
#include <PR/gu.h>
#include "main.h"
#include "variables.h"
#include "types.h"
#include <main.h>
#include <code_800029B0.h>
#include <variables.h>
#include <types.h>
#include "camera.h"
#include "memory.h"
#include "math_util.h"
@ -134,7 +135,7 @@ void load_credits(void) {
D_800DC5EC->screenStartY = 120;
gScreenModeSelection = SCREEN_MODE_1P;
gActiveScreenMode = SCREEN_MODE_1P;
gNextFreeMemoryAddress = FreeMemoryResetAnchor;
gNextFreeMemoryAddress = gFreeMemoryResetAnchor;
load_course(gCurrentCourseId);
D_8015F730 = gNextFreeMemoryAddress;
set_segment_base_addr(0xB, (void *) decompress_segments((u8 *)&_data_821D10SegmentRomStart, (u8 *)&_data_825800SegmentRomStart));

View File

@ -14,6 +14,7 @@
#include "code_80005FD0.h"
#include "collision.h"
#include "code_80281C40.h"
#include <code_800029B0.h>
u8 defaultCharacterIds[] = {
1, 2, 3, 4, 5, 6, 7, 0
@ -101,7 +102,7 @@ void load_ceremony_cutscene(void) {
D_800DC5EC->screenStartX = 160;
D_800DC5EC->screenStartY = 120;
gScreenModeSelection = SCREEN_MODE_1P;
gNextFreeMemoryAddress = (s32) FreeMemoryResetAnchor;
gNextFreeMemoryAddress = (s32) gFreeMemoryResetAnchor;
gActiveScreenMode = SCREEN_MODE_1P;
gModeSelection = GRAND_PRIX;
load_course(gCurrentCourseId);

View File

@ -31,29 +31,13 @@ extern s32 D_80287554;
extern f32 D_801647A4;
extern f32 D_80150130[];
extern s32 FreeMemoryResetAnchor;
extern s32 D_8015F730;
extern f32 D_8015F8E4;
extern s16 D_8015F6EA;
extern s16 D_8015F6EE;
extern s16 D_8015F6F2;
extern s16 D_8015F6E8;
extern s16 D_8015F6EC; // s16 or u16?
extern s16 D_8015F6F0;
extern s32 D_8015F59C;
extern s32 D_8015F5A0;
extern s32 D_8015F58C;
extern s32 D_00821D10;
extern s32 D_00825800;
extern s32 D_00831DC0;
extern s32 D_00835BA0;
extern s32 D_801625F8;
extern f32 D_801625FC;
extern struct Controller *gControllerOne;
extern s8 gCharacterSelections[];
extern u16 gEnableDebugMode;

View File

@ -9,6 +9,7 @@
#include "collision.h"
#include "math_util.h"
#include "variables.h"
#include "code_800029B0.h"
#pragma intrinsic (sqrtf)
@ -1109,12 +1110,6 @@ s32 is_colliding_with_wall1(Collision *arg, f32 boundingBoxSize, f32 x1, f32 y1,
return 1;
}
extern u16 *D_8015F584;
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
u16 func_802AD950(Collision *collision, f32 boundingBoxSize, f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 z2) {
s32 temp_v0_4;
s32 temp_v1;
@ -1339,12 +1334,6 @@ u16 func_802ADDC8(Collision* collision, f32 boundingBoxSize, f32 posX, f32 posY,
extern u8 D_8014F1110;
extern u16 *D_8015F584;
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
f32 func_802AE1C0(f32 posX, f32 posY, f32 posZ) {
f32 temp_f0;
s16 temp_f4;
@ -1405,18 +1394,6 @@ f32 func_802AE1C0(f32 posX, f32 posY, f32 posZ) {
return phi_f20;
}
extern s16 D_8015F6EC;
extern s32 D_8015F59C;
extern s32 D_8015F5A0;
extern s32 D_8015F5A4;
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
extern s16 D_8015F6FA;
extern s16 D_8015F6FC;
void func_802AE434(Vtx *vtx1, Vtx *vtx2, Vtx *vtx3, s8 surfaceType, u16 sectionId) {
mk64_surface_map_ram *tile = &gSurfaceMap[D_8015F588];
s16 x2;
@ -1839,12 +1816,6 @@ s32 is_triangle_intersecting_bounding_box(s16 minX, s16 maxX, s16 minZ, s16 maxZ
return 0;
}
extern u16 D_8015F58A;
extern s16 D_8015F6E8;
extern s16 D_8015F6EA;
extern s16 D_8015F6F0;
extern s16 D_8015F6F2;
/**
* Appears to initialize some variables and struct members after
* course displaylists have been parsed.
@ -1924,8 +1895,6 @@ void set_vertex_data_with_default_section_id(Gfx *gfx, s8 surfaceType) {
find_and_set_vertex_data(gfx, surfaceType, 0xFF);
}
extern s16 D_8015F6FA;
extern s16 D_8015F6FC;
extern u32 D_8015F58C;
/**

View File

@ -31,8 +31,4 @@ void set_vertex_colours(u32, u32, s32, s8, u8, u8, u8);
void find_vtx_and_set_colours(uintptr_t, s8, u8, u8, u8);
void subtract_scaled_vector(Vec3f, f32, Vec3f);
extern Vtx *vtxBuffer[];
extern s16 D_8015F6EE;
extern f32 D_8015F8E4;
#endif

View File

@ -521,7 +521,7 @@ void setup_game_memory(void) {
set_segment_base_addr(0xD, (void *) sp38);
gNextFreeMemoryAddress += sp40;
FreeMemoryResetAnchor = gNextFreeMemoryAddress;
gFreeMemoryResetAnchor = gNextFreeMemoryAddress;
}
/**

View File

@ -68,11 +68,34 @@ void thread4_audio(void*);
extern struct GfxPool *gGfxPool;
extern Gfx *gDisplayListHead;
extern struct Controller gControllers[8];
extern struct Controller gControllers[];
extern struct Controller *gControllerOne;
extern struct Controller *gControllerTwo;
extern struct Controller *gControllerThree;
extern struct Controller *gControllerFour;
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;
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 Player *gPlayerTwoCopy;
extern UNUSED Player *gPlayerThreeCopy;
extern UNUSED Player *gPlayerFourCopy;
extern u16 D_80152308;
extern u16 *gPhysicalFramebuffers[];
@ -82,21 +105,12 @@ extern OSMesgQueue gDmaMesgQueue;
extern s32 gGamestateNext;
extern s32 gActiveScreenMode;
extern f32 gVBlankTimer;
extern u8 *pAppNmiBuffer;
extern u8 *gNmiUnknown1;
extern u8 *gNmiUnknown2;
extern u8 *gNmiUnknown3;
extern u8 *gNmiUnknown4;
extern u8 *gNmiUnknown5;
extern u8 *gNmiUnknown6;
extern s32 gScreenModeSelection;
extern OSContStatus gControllerStatuses[];
extern struct Controller *gControllerFive;
extern u8 gControllerBits;
extern s16 sIsController1Unplugged;
extern u64 rspbootTextStart[], rspbootTextEnd[];
extern u64 gspF3DEXTextStart[], gspF3DEXTextEnd[];
extern u64 gspF3DLXTextStart[], gspF3DLXTextEnd[];
@ -106,14 +120,11 @@ extern u64 gspF3DLXDataStart[];
extern u64 gGfxSPTaskOutputBuffer[];
extern u32 gGfxSPTaskOutputBufferSize;
extern u32 gNextFreeMemoryAddress;
extern s32 FreeMemoryResetAnchor;
extern u8 _data_segment2SegmentRomStart[];
extern u8 _data_segment2SegmentRomEnd[];
extern u8 _common_texturesSegmentRomStart[];
extern u8 _common_texturesSegmentRomEnd[];
extern u8 _data_802BA370SegmentRomStart[];
extern u32 gHeapEndPtr;
extern u32 *D_801978D0; // Segment? Keeps track of segmented addresses?
extern s16 gCurrentlyLoadedCourseId;
@ -123,9 +134,6 @@ extern s16 D_80164AF0;
extern u16 gIsGamePaused; // 1 if the game is paused and 0 if the game is not paused
extern u16 gIsInQuitToMenuTransition;
extern s32 D_8015F788;
extern s16 gDebugPathCount;
extern struct UnkStruct_800DC5EC *D_800DC5EC;
extern u16 D_800DC5B0;

View File

@ -6,6 +6,7 @@
#include <variables.h>
#include <segments.h>
#include "main.h"
#include "code_800029B0.h"
#include "memory.h"
#include "math_util.h"

View File

@ -93,9 +93,6 @@ u8 *load_course(s32);
// main.c
extern struct D_80150158 gD_80150158[];
extern s32 D_801502A0;
extern u32 gFreeMemorySize;
extern u32 gNextFreeMemoryAddress;
extern u32 gHeapEndPtr;
extern u8 _other_texturesSegmentRomStart[];

View File

@ -3,22 +3,21 @@
#include <defines.h>
#include <global.h>
#include <common_structs.h>
#include "menus.h"
#include "main.h"
#include "code_800029B0.h"
#include "actors.h"
#include "audio/external.h"
#include "code_80005FD0.h"
#include "code_80091750.h"
#include "code_800AF9B0.h"
#include "code_800B45E0.h"
#include "main.h"
#include "staff_ghosts.h"
#include "save_data.h"
#include <sounds.h>
/** Externs to be put into headers **/
extern s16 D_8015F892; // bss unknown
extern u32 D_800DC5AC; // data? from this file or another (main.c?)?
extern void rmonPrintf(const char *, ...); // not in a libultra header?

View File

@ -2,7 +2,8 @@
#include <macros.h>
#include <defines.h>
#include <mk64.h>
#include "variables.h"
#include <variables.h>
#include "code_800029B0.h"
#include "kart_attributes.h"
#include "memory.h"
#include "math_util.h"

View File

@ -476,7 +476,7 @@ void podium_ceremony_loop(void) {
}
func_80281D00();
func_80281540();
#if VARIABLE_WATCH_DEBUG_LIST
#if DVDL
display_dvdl();
#endif
gDPFullSync(gDisplayListHead++);

View File

@ -7,7 +7,7 @@ enum ActorType {
Initial,
Balloon,
FireworkCone,
FireworkBurst,
FireworkBurst
};
// unk

View File

@ -8,6 +8,7 @@
#include "camera.h"
#include "waypoints.h"
#include "staff_ghosts.h"
#include "main.h"
#include "code_800029B0.h"
#include "code_80057C60.h"
#include "code_80071F00.h"
@ -23,33 +24,6 @@
#pragma intrinsic (sqrtf)
extern Player *gPlayerTwo;
extern Player *gPlayerThree;
extern Player *gPlayerFour;
extern Player *gPlayerOneCopy;
extern Player *gPlayerTwoCopy;
extern struct Controller gControllers[];
extern struct Controller *gControllerOne;
extern struct Controller *gControllerThree;
extern struct Controller *gControllerFour;
extern struct Controller *gControllerFive;
extern struct Controller *gControllerSix;
extern struct Controller *gControllerSeven;
extern struct UnkStruct_800DC5EC D_8015F480[];
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 u8 *gNmiUnknown1;
extern u8 *gNmiUnknown2;
extern u8 *gNmiUnknown3;
extern u8 *gNmiUnknown4;
extern u8 *gNmiUnknown5;
extern u8 *gNmiUnknown6;
extern s16 gPlayerBalloonCount[];
extern s16 D_8016348C;
extern s8 gCupCourseSelection;
@ -81,19 +55,14 @@ extern s32 gScreenModeSelection;
extern s32 D_8018D2AC;
extern s32 gActiveScreenMode;
extern s16 gCurrentCourseId;
extern u16 D_8015F890;
extern u32 D_800DC5AC;
extern u16 gEnableDebugMode;
extern s32 gPlayerWinningIndex;
extern u16 gIsInQuitToMenuTransition, gQuitToMenuTransitionCounter;
extern s32 D_802B91E0;
extern s16 D_8015F8F2[];
extern f32 D_8015F8D8;
extern f32 D_80150148;
extern u16 D_8015F894;
u16 D_802BA030;
u16 D_802BA032;
@ -563,8 +532,8 @@ void start_race(void) {
f32 func_8028EE8C(s32 arg0) {
f32 temp_v0 = gPlayers[arg0].pos[2];
f32 temp_v1 = gPlayers[arg0].rotZ;
f32 temp_f14 = D_8015F8D8 - temp_v0;
f32 temp_f16 = temp_v1 - D_8015F8D8;
f32 temp_f14 = D_8015F8D0[2] - temp_v0;
f32 temp_f16 = temp_v1 - D_8015F8D0[2];
return gCourseTimer - ((0.01666666f * temp_f14) / (temp_f14 + temp_f16));
}
@ -631,7 +600,7 @@ void func_8028EF28(void) {
*(gNmiUnknown1 + i) = 99;
}
D_800DC510 = 5;
i = D_8015F8F2[0];
i = gPlayerPositionLUT[1];
gPlayers[i].statusEffects |= 0x200000;
gPlayers[i].unk_000 |= PLAYER_CPU;
func_800CA118((u8)i);
@ -645,7 +614,7 @@ void func_8028EF28(void) {
}
if (currentPosition == 1) {
D_800DC510 = 5;
i = D_8015F8F2[1];
i = gPlayerPositionLUT[2];
*(gNmiUnknown2 + i * 3 + 2) += 1;
if (*(gNmiUnknown2 + i * 3 + 2) > 99) {
*(gNmiUnknown2 + i * 3 + 2) = 99;
@ -664,7 +633,7 @@ void func_8028EF28(void) {
}
if (currentPosition == 2) {
D_800DC510 = 5;
i = D_8015F8F2[2];
i = gPlayerPositionLUT[3];
gPlayers[i].statusEffects |= 0x200000;
gPlayers[i].unk_000 |= PLAYER_CPU;
func_800CA118((u8)i);

View File

@ -37,10 +37,8 @@ void func_802903B0(void);
void func_802909F0(void);
void func_80290B14(void);
extern f32 gTimePlayerLastTouchedFinishLine[];
extern f32 gLapCompletionPercentByPlayerId[];
extern s32 gGPCurrentRaceRankByPlayerId[]; // D_801643B8 (position for each player)
extern s16 gPlayerPositionLUT[]; // D_8015F8F0 (player index at each position)
extern u16 D_80162DD6;
#endif

View File

@ -3,6 +3,7 @@
#include <common_structs.h>
#include <defines.h>
#include <types.h>
#include <code_800029B0.h>
#include <course.h>
#include <packed_displaylist_symbols_gen.h>
#include "main.h"

View File

@ -38,7 +38,6 @@ void func_802969F8(void);
extern Gfx *gDisplayListHead;
extern s16 gCurrentCourseId;
extern u32 gNextFreeMemoryAddress;
extern s32 gActiveScreenMode;
extern u16 sRenderedFramebuffer;
@ -47,19 +46,14 @@ extern uintptr_t gSegmentTable[];
extern Player gPlayers[];
extern s32 D_8015F59C;
extern s32 D_8015F5A0;
extern s32 D_800DC5DC;
extern s32 D_800DC5E0;
extern s32 D_802B87C4;
extern s32 D_802B87C8;
extern s32 D_802B87CC;
extern s32 D_8015F5A4;
extern s32 gScreenModeSelection;
extern Gfx mario_raceway_dls[];
extern s32 D_801625EC;
extern s32 D_801625F0;
extern s32 D_801625F4;
extern Gfx choco_mountain_dls[];
extern s32 D_802B87BC;
extern Gfx bowsers_castle_dls[];
@ -70,9 +64,6 @@ extern u8 frappe_snowland_dls[];
extern Gfx d_course_koopa_troopa_beach_dl_list1[];
extern Gfx royal_raceway_dls[];
extern Gfx luigi_raceway_dls[];
extern s32 D_801625EC;
extern s32 D_801625F0;
extern s32 D_801625F4;
extern Gfx D_06013FF8[];
extern Gfx D_06014060[];
@ -110,21 +101,7 @@ extern Gfx D_06022E00[];
extern Gfx D_06023930[];
extern Gfx D_sherbet_land_06000000[];
extern u16 D_800DC518;
extern u16 D_8015F58A;
extern u16 D_8015F700;
extern u16 D_8015F702;
extern f32 D_8015F8E8;
extern f32 D_8015F8E4;
extern s16 D_8015F6EA;
extern s16 D_8015F6F2;
extern s16 D_8015F6EE;
extern u16 D_8015F588;
extern s16 D_8015F6F4;
extern s16 D_8015F6F6;
extern s16 D_8015F6F4;
extern s16 D_8015F6F6;
extern Gfx D_060072D0[];
extern Gfx D_060079A0[];
extern Gfx D_060093D8[];
@ -142,13 +119,10 @@ extern Gfx D_06018240[];
extern Gfx D_06018FD8[];
extern Gfx D_06023070[];
extern Gfx D_06023B68[];
extern Vec3f D_8015F590;
extern u16 D_800DC5BC; /* unable to generate initializer */
extern s32 gGamestate;
extern s32 gModeSelection;
extern u16 gNumActors;
extern s32 D_8015F58C;
extern mk64_surface_map_ram *gSurfaceMap;
extern s32 gCCSelection;
#endif

View File

@ -2,6 +2,7 @@
#include <macros.h>
#include <PR/gbi.h>
#include <main.h>
#include "code_800029B0.h"
#include <types.h>
#include <common_structs.h>
#include <variables.h>

View File

@ -71,9 +71,6 @@ extern u16 sRenderingFramebuffer;
extern s32 D_800DC5D0;
extern s32 D_800DC5D4;
extern s32 D_800DC5D8;
extern s32 D_801625EC;
extern s32 D_801625F0;
extern s32 D_801625F4;
extern u16 D_800DC5BC;
extern struct GfxPool *gGfxPool;
extern f32 D_80150130[];
@ -85,9 +82,7 @@ extern f32 D_80150150;
extern u16 D_800DC5C8;
extern u16 D_800DC5B8;
extern s32 D_8015F788;
extern struct UnkStruct_800DC5EC D_8015F480[];
extern s32 D_8015F790[];
extern struct Controller gControllers[];
extern Player gPlayers[];

View File

@ -1,5 +1,6 @@
#include "global.h"
#include <global.h>
#include <defines.h>
#include "code_800029B0.h"
#include "kart_attributes.h"
#include "memory.h"
#include "waypoints.h"

View File

@ -3,11 +3,12 @@
#include <types.h>
#include <common_structs.h>
#include <defines.h>
#include <functions.h>
#include "code_800029B0.h"
#include "framebuffers.h"
#include "code_800B45E0.h"
#include "staff_ghosts.h"
#include "code_80091750.h"
#include "functions.h"
extern s32 mio0encode(s32 input, s32, s32);
extern s32 func_80040174(void *, s32, s32);
@ -62,7 +63,6 @@ extern u8 _kart_texturesSegmentRomStart;
extern s16 gCurrentCourseId;
extern s32 gModeSelection;
extern s32 gActiveScreenMode;
extern u16 D_8015F890;
extern s32 gLapCountByPlayerId[];
extern s32 D_8018CA78;