mirror of
https://github.com/n64decomp/mk64
synced 2026-09-09 03:20:11 -04:00
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:
+106
-28
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user