mirror of https://github.com/n64decomp/mk64.git
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:
parent
b723c1be14
commit
208fecdd28
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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
34
mk64.ld
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
25
src/actors.h
25
src/actors.h
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
|
|
@ -4,4 +4,3 @@ void func_80091440(s8);
|
|||
void func_800914A0(void);
|
||||
void func_800914E0(void);
|
||||
|
||||
extern u16 D_8015F6F8;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -521,7 +521,7 @@ void setup_game_memory(void) {
|
|||
set_segment_base_addr(0xD, (void *) sp38);
|
||||
|
||||
gNextFreeMemoryAddress += sp40;
|
||||
FreeMemoryResetAnchor = gNextFreeMemoryAddress;
|
||||
gFreeMemoryResetAnchor = gNextFreeMemoryAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
40
src/main.h
40
src/main.h
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include <variables.h>
|
||||
#include <segments.h>
|
||||
#include "main.h"
|
||||
#include "code_800029B0.h"
|
||||
#include "memory.h"
|
||||
#include "math_util.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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++);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ enum ActorType {
|
|||
Initial,
|
||||
Balloon,
|
||||
FireworkCone,
|
||||
FireworkBurst,
|
||||
FireworkBurst
|
||||
};
|
||||
|
||||
// unk
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue