From 01c86ec6219d4f4e15665c5990ac5dae75ae57fe Mon Sep 17 00:00:00 2001 From: rozlette Date: Thu, 23 Apr 2020 01:11:25 -0500 Subject: [PATCH] Decompile z_prenmi.c --- include/functions.h | 78 +++++++++++++++---------------- include/structs.h | 51 +++++++++++++++++++- include/variables.h | 21 +++------ linker_scripts/code_script.txt | 2 +- src/code/z_prenmi.c | 52 +++++++++++++++++++++ tables/files_with_nonmatching.txt | 1 + tables/functions.txt | 78 +++++++++++++++---------------- tables/variables.txt | 21 +++------ undef.txt | 11 +---- 9 files changed, 198 insertions(+), 117 deletions(-) create mode 100644 src/code/z_prenmi.c diff --git a/include/functions.h b/include/functions.h index 38b0f5e3eae..a47e3dbbb4e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -778,7 +778,7 @@ void func_800B8050(Actor* actor, GlobalContext* ctxt, s32 iParm3); // func_800B8 void func_800B8118(void); // func_800B8118 void func_800B81E0(void); // func_800B81E0 UNK_PTR func_800B8214(PosRot* param_1, Actor* param_2); // func_800B8214 -f32* func_800B8248(PosRot* param_1, Actor* param_2); // func_800B8248 +f32* func_800B8248(PosRot* param_1, ActorPlayer* param_2); // func_800B8248 void func_800B82EC(void); // func_800B82EC void func_800B83BC(void); // func_800B83BC void func_800B83F8(void); // func_800B83F8 @@ -1087,7 +1087,7 @@ u32 func_800C9CC4(CollisionContext* bgCtxt, BgPolygon* polygon, s32 index); // f void func_800C9CEC(void); // func_800C9CEC void func_800C9D14(void); // func_800C9D14 void func_800C9D50(void); // func_800C9D50 -void func_800C9D8C(void); // func_800C9D8C +unsigned int func_800C9D8C(CollisionContext* param_1, BgPolygon* param_2, s32 param_3); // func_800C9D8C void func_800C9DDC(void); // func_800C9DDC u32 func_800C9E18(CollisionContext* bgCtxt, BgPolygon* polygon, s32 index); // func_800C9E18 u32 func_800C9E40(CollisionContext* bgCtxt, BgPolygon* polygon, s32 index); // func_800C9E40 @@ -2284,43 +2284,43 @@ void func_801284A0(void); // func_801284A0 void func_80128640(void); // func_80128640 void func_80128B74(void); // func_80128B74 void func_80128BD0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE4 param_6); // func_80128BD0 -void Prenmi_Stop(PreNMIContext* ctxt); // func_80129EF0 -void Prenmi_Update(PreNMIContext* ctxt); // func_80129F04 -void Prenmi_Draw(PreNMIContext* ctxt); // func_80129F4C -void Prenmi_Main(PreNMIContext* ctxt); // func_80129FF8 -void Prenmi_Fini(PreNMIContext* ctxt); // func_8012A02C -void Prenmi_Init(PreNMIContext* ctxt); // func_8012A038 -void func_8012A080(void); // func_8012A080 -void func_8012A0AC(void); // func_8012A0AC -void func_8012A2B8(void); // func_8012A2B8 -void func_8012A340(void); // func_8012A340 -void func_8012A3B4(void); // func_8012A3B4 -void func_8012A438(void); // func_8012A438 -void func_8012A4D0(void); // func_8012A4D0 -void func_8012A540(void); // func_8012A540 -void func_8012A5D8(void); // func_8012A5D8 -void func_8012A638(void); // func_8012A638 -void func_8012A6F0(void); // func_8012A6F0 -void func_8012A718(void); // func_8012A718 -void func_8012A774(void); // func_8012A774 -void func_8012A8A8(void); // func_8012A8A8 -void func_8012A8F0(void); // func_8012A8F0 -void func_8012A940(void); // func_8012A940 -void func_8012A978(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); // func_8012A978 -void func_8012A9E0(void); // func_8012A9E0 -void func_8012AA48(void); // func_8012AA48 -void func_8012AA9C(void); // func_8012AA9C -void func_8012AAC0(void); // func_8012AAC0 -void func_8012AB08(void); // func_8012AB08 -void func_8012AE68(GlobalContext* ctxt); // func_8012AE68 -void func_8012AEAC(void); // func_8012AEAC -int func_8012aed4(void); // func_8012AED4 -void func_8012AEE4(void); // func_8012AEE4 -void func_8012AEF4(void); // func_8012AEF4 -void func_8012AF18(void); // func_8012AF18 -void func_8012AF38(void); // func_8012AF38 -void func_8012AF9C(void); // func_8012AF9C -void func_8012BBE8(void); // func_8012BBE8 +void PreNMI_Stop(PreNMIContext* prenmiCtx); // func_80129EF0 +void PreNMI_Update(PreNMIContext* prenmiCtx); // func_80129F04 +void PreNMI_Draw(PreNMIContext* prenmiCtx); // func_80129F4C +void PreNMI_Main(PreNMIContext* prenmiCtx); // func_80129FF8 +void PreNMI_Destroy(PreNMIContext* prenmiCtx); // func_8012A02C +void PreNMI_Init(PreNMIContext* prenmiCtx); // func_8012A038 +f32 Quake_Random(void); // func_8012A080 +void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 y, f32 x); // func_8012A0AC +s16 Quake_Callback1(QuakeRequest* req, ShakeInfo* shake); // func_8012A2B8 +s16 Quake_Callback5(QuakeRequest* req, ShakeInfo* shake); // func_8012A340 +s16 Quake_Callback6(QuakeRequest* req, ShakeInfo* shake); // func_8012A3B4 +s16 Quake_Callback3(QuakeRequest* req, ShakeInfo* shake); // func_8012A438 +s16 Quake_Callback2(QuakeRequest* req, ShakeInfo* shake); // func_8012A4D0 +s16 Quake_Callback4(QuakeRequest* req, ShakeInfo* shake); // func_8012A540 +s16 Quake_GetFreeIndex(void); // func_8012A5D8 +QuakeRequest* Quake_AddImpl(Camera* cam, u32 callbackIdx); // func_8012A638 +void Quake_Remove(QuakeRequest* req); // func_8012A6F0 +QuakeRequest* Quake_GetRequest(s16 idx); // func_8012A718 +QuakeRequest* Quake_SetValue(s16 idx, s16 valueType, s16 value); // func_8012A774 +u32 Quake_SetSpeed(s16 idx, s16 value); // func_8012A8A8 +u32 Quake_SetCountdown(s16 idx, s16 value); // func_8012A8F0 +s16 Quake_GetCountdown(s16 idx); // func_8012A940 +u32 Quake_SetQuakeValues(s16 idx, s16 y, s16 x, s16 zoom, s16 rotZ); // func_8012A978 +u32 Quake_SetUnkValues(s16 idx, s16 arg1); // func_8012A9E0 +void Quake_Init(void); // func_8012AA48 +s16 Quake_Add(Camera* cam, u32 callbackIdx); // func_8012AA9C +u32 Quake_RemoveFromIdx(s16 idx); // func_8012AAC0 +s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData); // func_8012AB08 +void Quake2_Init(GlobalContext* ctxt); // func_8012AE68 +void Quake2_SetCountdown(s16 countdown); // func_8012AEAC +int Quake2_GetCountdown(void); // func_8012AED4 +s16 Quake2_GetType(void); // func_8012AEE4 +void Quake2_SetType(s16 type); // func_8012AEF4 +void Quake2_ClearType(s16 type); // func_8012AF18 +u32 Quake2_GetFloorQuake(ActorPlayer* player); // func_8012AF38 +void Quake2_Update(void); // func_8012AF9C +void Quake_NumActiveQuakes(void); // func_8012BBE8 Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); // func_8012BC50 Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); // func_8012BD8C Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f); // func_8012BF08 diff --git a/include/structs.h b/include/structs.h index 9d40432a85e..aed0afd386d 100644 --- a/include/structs.h +++ b/include/structs.h @@ -578,6 +578,12 @@ typedef struct { /* 0x00 */ UNK_TYPE1 pad0[0x1C]; } PermanentSceneFlags; // size = 0x1C +typedef struct { +/* 0x0 */ s16 unk0; +/* 0x2 */ s16 unk2; +/* 0x4 */ s16 unk4; +} QuakeRequest14; // size = 0x6 + typedef struct { /* 0x0 */ u8 red; /* 0x1 */ u8 green; @@ -1473,6 +1479,23 @@ typedef struct { /* 0x00C */ SceneObject objects[35]; } SceneContext; // size = 0x958 +typedef struct { +/* 0x00 */ Vec3f focalPointChange; +/* 0x0C */ Vec3f eyeChange; +/* 0x18 */ s16 rotZ; +/* 0x1A */ s16 zoom; +/* 0x1C */ UNK_TYPE1 pad1C[0x2]; +} ShakeInfo; // size = 0x1E + +typedef struct { +/* 0x00 */ Vec3f focalPointChange; +/* 0x0C */ Vec3f eyeChange; +/* 0x18 */ s16 unk18; +/* 0x1A */ s16 unk1A; +/* 0x1C */ f32 unk1C; +/* 0x20 */ f32 unk20; +} UnkQuakeCalcStruct; // size = 0x24 + typedef struct { /* 0x000 */ u32 magic; /* 0x004 */ GraphicsContext* gfxCtx; @@ -2134,7 +2157,7 @@ struct GameState { /* 0x9C */ u32 frames; /* 0xA0 */ UNK_TYPE1 padA0[0x2]; /* 0xA2 */ u8 framerateDivisor; // game speed? -/* 0xA3 */ UNK_TYPE1 padA3[0x1]; +/* 0xA3 */ UNK_TYPE1 unkA3; }; // size = 0xA4 struct OpeningContext { @@ -2233,6 +2256,13 @@ typedef struct LightingContext LightingContext; typedef struct GlobalContext GlobalContext; +typedef struct { +/* 0x0 */ GlobalContext* ctxt; +/* 0x4 */ s32 type; // bitfield, highest set bit determines type +/* 0x8 */ s16 countdown; +/* 0xA */ s16 state; // 0 - stopped, 1 - active, 2 - setup +} Quake2Context; // size = 0xC + typedef s32(*collision_add_func)(GlobalContext*, ColCommon*); typedef void(*collision_func)(GlobalContext*, CollisionCheckContext*, ColCommon*, ColCommon*); @@ -2265,8 +2295,27 @@ typedef void(*scene_proc_draw_func)(GlobalContext* ctxt, u32 segment, void* para typedef struct Camera Camera; +typedef struct { +/* 0x00 */ s16 randIdx; +/* 0x02 */ s16 countdownMax; +/* 0x04 */ Camera* cam; +/* 0x08 */ u32 callbackIdx; +/* 0x0C */ s16 y; +/* 0x0E */ s16 x; +/* 0x10 */ s16 zoom; +/* 0x12 */ s16 rotZ; +/* 0x14 */ QuakeRequest14 unk14; +/* 0x1A */ s16 speed; +/* 0x1C */ s16 unk1C; +/* 0x1E */ s16 countdown; +/* 0x20 */ s16 camPtrIdx; +/* 0x22 */ UNK_TYPE1 pad22[0x2]; +} QuakeRequest; // size = 0x24 + typedef s32(*camera_update_func)(Camera* camera); +typedef s16(*quake_callback_func)(QuakeRequest* req, ShakeInfo* shake); + typedef struct LightsList LightsList; typedef struct LoadedParticleEntry LoadedParticleEntry; diff --git a/include/variables.h b/include/variables.h index 4f0d4fa207b..ac84cb31330 100644 --- a/include/variables.h +++ b/include/variables.h @@ -1384,11 +1384,11 @@ extern UNK_TYPE1 D_801C0EA0; // D_801C0EA0 extern UNK_TYPE1 D_801C0EAC; // D_801C0EAC extern UNK_TYPE1 D_801C0EB8; // D_801C0EB8 extern UNK_TYPE2 D_801C0EC0; // D_801C0EC0 -extern UNK_TYPE2 D_801C0EC4; // D_801C0EC4 -extern UNK_TYPE1 D_801C0EC8; // D_801C0EC8 -extern UNK_TYPE2 D_801C0EE4; // D_801C0EE4 -extern UNK_TYPE2 D_801C0EE8; // D_801C0EE8 -extern UNK_TYPE2 D_801C0EEC; // D_801C0EEC +extern s16 sQuakeRequestCount; // D_801C0EC4 +extern quake_callback_func sQuakeCallbacks[7]; // D_801C0EC8 +extern s16 D_801C0EE4; // D_801C0EE4 +extern s16 D_801C0EE8; // D_801C0EE8 +extern s16 D_801C0EEC; // D_801C0EEC extern Gfx sSetupDL[438]; // D_801C0EF0 extern Gfx sFillSetupDL[12]; // D_801C1CA0 extern Gfx gEmptyDL[1]; // D_801C1D00 @@ -4038,15 +4038,8 @@ extern UNK_TYPE1 D_801F59EC; // D_801F59EC extern UNK_TYPE1 D_801F59F0; // D_801F59F0 extern UNK_TYPE1 D_801F59F4; // D_801F59F4 extern UNK_TYPE1 D_801F59F8; // D_801F59F8 -extern UNK_TYPE1 D_801F5A00; // D_801F5A00 -extern UNK_TYPE1 D_801F5A08; // D_801F5A08 -extern UNK_TYPE1 D_801F5A1E; // D_801F5A1E -extern UNK_TYPE1 D_801F5A2C; // D_801F5A2C -extern UNK_TYPE1 D_801F5A50; // D_801F5A50 -extern UNK_TYPE1 D_801F5A74; // D_801F5A74 -extern GlobalContext* D_801F5A90; // D_801F5A90 -extern UNK_TYPE1 D_801F5A96; // D_801F5A96 -extern UNK_TYPE2 D_801F5A98; // D_801F5A98 +extern QuakeRequest sQuakeRequest[4]; // D_801F5A00 +extern Quake2Context sQuake2Context; // D_801F5A90 extern s32 gSceneProcStep; // D_801F5AA0 extern u32 gSceneProcFlags; // D_801F5AA4 extern f32 gSceneProcFlashingAlpha; // D_801F5AA8 diff --git a/linker_scripts/code_script.txt b/linker_scripts/code_script.txt index c8c9c540ecb..c54917e8f1d 100644 --- a/linker_scripts/code_script.txt +++ b/linker_scripts/code_script.txt @@ -371,7 +371,7 @@ SECTIONS build/asm/code_0x801224E0.o(.text) build/asm/code_0x80122660.o(.text) build/asm/z_player_lib.o(.text) - build/asm/z_prenmi.o(.text) + build/src/code/z_prenmi.o(.text) build/asm/code_0x8012A080.o(.text) build/src/code/z_rcp.o(.text) . += 0x10; diff --git a/src/code/z_prenmi.c b/src/code/z_prenmi.c new file mode 100644 index 00000000000..e2e9721da16 --- /dev/null +++ b/src/code/z_prenmi.c @@ -0,0 +1,52 @@ +#include +#include + +void PreNMI_Stop(PreNMIContext* prenmiCtx) { + prenmiCtx->state.running = 0; + prenmiCtx->state.nextGameStateInit = NULL; + prenmiCtx->state.nextGameStateSize = 0; +} + +void PreNMI_Update(PreNMIContext* prenmiCtx) { + if (prenmiCtx->timer == 0) { + ViConfig_UpdateVi(1); + PreNMI_Stop(prenmiCtx); + return; + } + + prenmiCtx->timer--; +} + +#ifdef NON_MATCHING +// Minor reordering around call to func_8012C470 +void PreNMI_Draw(PreNMIContext* prenmiCtx) { + GraphicsContext* gfxCtx = prenmiCtx->state.gfxCtx; + + func_8012CF0C(gfxCtx, 1, 1, 0, 0, 0); + func_8012C470(gfxCtx); + + gDPSetFillColor(gfxCtx->polyOpa.p++, + (GPACK_RGBA5551(0xFF, 0xFF, 0xFF, 1) << 16) | GPACK_RGBA5551(0xFF, 0xFF, 0xFF, 1)); + gDPFillRectangle(gfxCtx->polyOpa.p++, 0, prenmiCtx->timer + 100, 320 /*SCREEN_WIDTH*/ - 1, prenmiCtx->timer + 100); +} +#else +GLOBAL_ASM("asm/non_matchings/z_prenmi/PreNMI_Draw.asm") +#endif + +void PreNMI_Main(PreNMIContext* prenmiCtx) { + PreNMI_Update(prenmiCtx); + PreNMI_Draw(prenmiCtx); + + prenmiCtx->state.unkA3 = 1; +} + +void PreNMI_Destroy(PreNMIContext* prenmiCtx) {} + +void PreNMI_Init(PreNMIContext* prenmiCtx) { + prenmiCtx->state.main = (func_ptr)PreNMI_Main; + prenmiCtx->state.destroy = (func_ptr)PreNMI_Destroy; + prenmiCtx->timer = 30; + prenmiCtx->unkA8 = 10; + + Game_SetFramerateDivisor(&prenmiCtx->state, 1); +} diff --git a/tables/files_with_nonmatching.txt b/tables/files_with_nonmatching.txt index 4d2c2b0b75c..f31bb23c788 100644 --- a/tables/files_with_nonmatching.txt +++ b/tables/files_with_nonmatching.txt @@ -19,3 +19,4 @@ z_std_dma z_scene z_view z_rcp +z_prenmi diff --git a/tables/functions.txt b/tables/functions.txt index 9ba37ab102e..1bbf95ad4ba 100644 --- a/tables/functions.txt +++ b/tables/functions.txt @@ -775,7 +775,7 @@ 0x800B8118:("func_800B8118","void","void"), 0x800B81E0:("func_800B81E0","void","void"), 0x800B8214:("func_800B8214","UNK_PTR","PosRot* param_1, Actor* param_2"), - 0x800B8248:("func_800B8248","f32*","PosRot* param_1, Actor* param_2"), + 0x800B8248:("func_800B8248","f32*","PosRot* param_1, ActorPlayer* param_2"), 0x800B82EC:("func_800B82EC","void","void"), 0x800B83BC:("func_800B83BC","void","void"), 0x800B83F8:("func_800B83F8","void","void"), @@ -1084,7 +1084,7 @@ 0x800C9CEC:("func_800C9CEC","void","void"), 0x800C9D14:("func_800C9D14","void","void"), 0x800C9D50:("func_800C9D50","void","void"), - 0x800C9D8C:("func_800C9D8C","void","void"), + 0x800C9D8C:("func_800C9D8C","unsigned int","CollisionContext* param_1, BgPolygon* param_2, s32 param_3"), 0x800C9DDC:("func_800C9DDC","void","void"), 0x800C9E18:("func_800C9E18","u32","CollisionContext* bgCtxt, BgPolygon* polygon, s32 index"), 0x800C9E40:("func_800C9E40","u32","CollisionContext* bgCtxt, BgPolygon* polygon, s32 index"), @@ -2281,43 +2281,43 @@ 0x80128640:("func_80128640","void","void"), 0x80128B74:("func_80128B74","void","void"), 0x80128BD0:("func_80128BD0","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE4 param_6"), - 0x80129EF0:("Prenmi_Stop","void","PreNMIContext* ctxt"), - 0x80129F04:("Prenmi_Update","void","PreNMIContext* ctxt"), - 0x80129F4C:("Prenmi_Draw","void","PreNMIContext* ctxt"), - 0x80129FF8:("Prenmi_Main","void","PreNMIContext* ctxt"), - 0x8012A02C:("Prenmi_Fini","void","PreNMIContext* ctxt"), - 0x8012A038:("Prenmi_Init","void","PreNMIContext* ctxt"), - 0x8012A080:("func_8012A080","void","void"), - 0x8012A0AC:("func_8012A0AC","void","void"), - 0x8012A2B8:("func_8012A2B8","void","void"), - 0x8012A340:("func_8012A340","void","void"), - 0x8012A3B4:("func_8012A3B4","void","void"), - 0x8012A438:("func_8012A438","void","void"), - 0x8012A4D0:("func_8012A4D0","void","void"), - 0x8012A540:("func_8012A540","void","void"), - 0x8012A5D8:("func_8012A5D8","void","void"), - 0x8012A638:("func_8012A638","void","void"), - 0x8012A6F0:("func_8012A6F0","void","void"), - 0x8012A718:("func_8012A718","void","void"), - 0x8012A774:("func_8012A774","void","void"), - 0x8012A8A8:("func_8012A8A8","void","void"), - 0x8012A8F0:("func_8012A8F0","void","void"), - 0x8012A940:("func_8012A940","void","void"), - 0x8012A978:("func_8012A978","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5"), - 0x8012A9E0:("func_8012A9E0","void","void"), - 0x8012AA48:("func_8012AA48","void","void"), - 0x8012AA9C:("func_8012AA9C","void","void"), - 0x8012AAC0:("func_8012AAC0","void","void"), - 0x8012AB08:("func_8012AB08","void","void"), - 0x8012AE68:("func_8012AE68","void","GlobalContext* ctxt"), - 0x8012AEAC:("func_8012AEAC","void","void"), - 0x8012AED4:("func_8012aed4","int","void"), - 0x8012AEE4:("func_8012AEE4","void","void"), - 0x8012AEF4:("func_8012AEF4","void","void"), - 0x8012AF18:("func_8012AF18","void","void"), - 0x8012AF38:("func_8012AF38","void","void"), - 0x8012AF9C:("func_8012AF9C","void","void"), - 0x8012BBE8:("func_8012BBE8","void","void"), + 0x80129EF0:("PreNMI_Stop","void","PreNMIContext* prenmiCtx"), + 0x80129F04:("PreNMI_Update","void","PreNMIContext* prenmiCtx"), + 0x80129F4C:("PreNMI_Draw","void","PreNMIContext* prenmiCtx"), + 0x80129FF8:("PreNMI_Main","void","PreNMIContext* prenmiCtx"), + 0x8012A02C:("PreNMI_Destroy","void","PreNMIContext* prenmiCtx"), + 0x8012A038:("PreNMI_Init","void","PreNMIContext* prenmiCtx"), + 0x8012A080:("Quake_Random","f32","void"), + 0x8012A0AC:("Quake_UpdateShakeInfo","void","QuakeRequest* req, ShakeInfo* shake, f32 y, f32 x"), + 0x8012A2B8:("Quake_Callback1","s16","QuakeRequest* req, ShakeInfo* shake"), + 0x8012A340:("Quake_Callback5","s16","QuakeRequest* req, ShakeInfo* shake"), + 0x8012A3B4:("Quake_Callback6","s16","QuakeRequest* req, ShakeInfo* shake"), + 0x8012A438:("Quake_Callback3","s16","QuakeRequest* req, ShakeInfo* shake"), + 0x8012A4D0:("Quake_Callback2","s16","QuakeRequest* req, ShakeInfo* shake"), + 0x8012A540:("Quake_Callback4","s16","QuakeRequest* req, ShakeInfo* shake"), + 0x8012A5D8:("Quake_GetFreeIndex","s16","void"), + 0x8012A638:("Quake_AddImpl","QuakeRequest*","Camera* cam, u32 callbackIdx"), + 0x8012A6F0:("Quake_Remove","void","QuakeRequest* req"), + 0x8012A718:("Quake_GetRequest","QuakeRequest*","s16 idx"), + 0x8012A774:("Quake_SetValue","QuakeRequest*","s16 idx, s16 valueType, s16 value"), + 0x8012A8A8:("Quake_SetSpeed","u32","s16 idx, s16 value"), + 0x8012A8F0:("Quake_SetCountdown","u32","s16 idx, s16 value"), + 0x8012A940:("Quake_GetCountdown","s16","s16 idx"), + 0x8012A978:("Quake_SetQuakeValues","u32","s16 idx, s16 y, s16 x, s16 zoom, s16 rotZ"), + 0x8012A9E0:("Quake_SetUnkValues","u32","s16 idx, s16 arg1"), + 0x8012AA48:("Quake_Init","void","void"), + 0x8012AA9C:("Quake_Add","s16","Camera* cam, u32 callbackIdx"), + 0x8012AAC0:("Quake_RemoveFromIdx","u32","s16 idx"), + 0x8012AB08:("Quake_Calc","s16","Camera* camera, UnkQuakeCalcStruct* camData"), + 0x8012AE68:("Quake2_Init","void","GlobalContext* ctxt"), + 0x8012AEAC:("Quake2_SetCountdown","void","s16 countdown"), + 0x8012AED4:("Quake2_GetCountdown","int","void"), + 0x8012AEE4:("Quake2_GetType","s16","void"), + 0x8012AEF4:("Quake2_SetType","void","s16 type"), + 0x8012AF18:("Quake2_ClearType","void","s16 type"), + 0x8012AF38:("Quake2_GetFloorQuake","u32","ActorPlayer* player"), + 0x8012AF9C:("Quake2_Update","void","void"), + 0x8012BBE8:("Quake_NumActiveQuakes","void","void"), 0x8012BC50:("Gfx_SetFog","Gfx*","Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f"), 0x8012BD8C:("Gfx_SetFogWithSync","Gfx*","Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f"), 0x8012BF08:("Gfx_SetFog2","Gfx*","Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f"), diff --git a/tables/variables.txt b/tables/variables.txt index 64652cb5988..a38eba5066f 100644 --- a/tables/variables.txt +++ b/tables/variables.txt @@ -1381,11 +1381,11 @@ 0x801C0EAC:("D_801C0EAC","UNK_TYPE1","",0x1), 0x801C0EB8:("D_801C0EB8","UNK_TYPE1","",0x1), 0x801C0EC0:("D_801C0EC0","UNK_TYPE2","",0x2), - 0x801C0EC4:("D_801C0EC4","UNK_TYPE2","",0x2), - 0x801C0EC8:("D_801C0EC8","UNK_TYPE1","",0x1), - 0x801C0EE4:("D_801C0EE4","UNK_TYPE2","",0x2), - 0x801C0EE8:("D_801C0EE8","UNK_TYPE2","",0x2), - 0x801C0EEC:("D_801C0EEC","UNK_TYPE2","",0x2), + 0x801C0EC4:("sQuakeRequestCount","s16","",0x2), + 0x801C0EC8:("sQuakeCallbacks","quake_callback_func","[7]",0x1c), + 0x801C0EE4:("D_801C0EE4","s16","",0x2), + 0x801C0EE8:("D_801C0EE8","s16","",0x2), + 0x801C0EEC:("D_801C0EEC","s16","",0x2), 0x801C0EF0:("sSetupDL","Gfx","[438]",0xdb0), 0x801C1CA0:("sFillSetupDL","Gfx","[12]",0x60), 0x801C1D00:("gEmptyDL","Gfx","[1]",0x8), @@ -4157,15 +4157,8 @@ 0x801F59F0:("D_801F59F0","UNK_TYPE1","",0x1), 0x801F59F4:("D_801F59F4","UNK_TYPE1","",0x1), 0x801F59F8:("D_801F59F8","UNK_TYPE1","",0x1), - 0x801F5A00:("D_801F5A00","UNK_TYPE1","",0x1), - 0x801F5A08:("D_801F5A08","UNK_TYPE1","",0x1), - 0x801F5A1E:("D_801F5A1E","UNK_TYPE1","",0x1), - 0x801F5A2C:("D_801F5A2C","UNK_TYPE1","",0x1), - 0x801F5A50:("D_801F5A50","UNK_TYPE1","",0x1), - 0x801F5A74:("D_801F5A74","UNK_TYPE1","",0x1), - 0x801F5A90:("D_801F5A90","GlobalContext*","",0x4), - 0x801F5A96:("D_801F5A96","UNK_TYPE1","",0x1), - 0x801F5A98:("D_801F5A98","UNK_TYPE2","",0x2), + 0x801F5A00:("sQuakeRequest","QuakeRequest","[4]",0x90), + 0x801F5A90:("sQuake2Context","Quake2Context","",0xc), 0x801F5AA0:("gSceneProcStep","s32","",0x4), 0x801F5AA4:("gSceneProcFlags","u32","",0x4), 0x801F5AA8:("gSceneProcFlashingAlpha","f32","",0x4), diff --git a/undef.txt b/undef.txt index cbeb1422850..8b6b65f212f 100644 --- a/undef.txt +++ b/undef.txt @@ -317,15 +317,8 @@ D_801F59EC = code_bss_start + 0x00011A4C; D_801F59F0 = code_bss_start + 0x00011A50; D_801F59F4 = code_bss_start + 0x00011A54; D_801F59F8 = code_bss_start + 0x00011A58; -D_801F5A00 = code_bss_start + 0x00011A60; -D_801F5A08 = code_bss_start + 0x00011A68; -D_801F5A1E = code_bss_start + 0x00011A7E; -D_801F5A2C = code_bss_start + 0x00011A8C; -D_801F5A50 = code_bss_start + 0x00011AB0; -D_801F5A74 = code_bss_start + 0x00011AD4; -D_801F5A90 = code_bss_start + 0x00011AF0; -D_801F5A96 = code_bss_start + 0x00011AF6; -D_801F5A98 = code_bss_start + 0x00011AF8; +sQuakeRequest = code_bss_start + 0x00011A60; +sQuake2Context = code_bss_start + 0x00011AF0; gSceneProcStep = code_bss_start + 0x00011B00; gSceneProcFlags = code_bss_start + 0x00011B04; gSceneProcFlashingAlpha = code_bss_start + 0x00011B08;