From 80595371509567174f2da5bc61c89e51799fca32 Mon Sep 17 00:00:00 2001 From: Derek Hensley Date: Mon, 21 Aug 2023 18:44:28 -0700 Subject: [PATCH] Game bss and cleanup (#1356) * Game bss and cleanup * Match Oot with rdp time variables * PR review * Namefixer --- include/functions.h | 7 -- include/variables.h | 6 +- include/z64game.h | 16 +-- include/z64speed_meter.h | 18 +++ spec | 1 - src/code/game.c | 108 +++++++++--------- src/code/graph.c | 10 +- src/code/sched.c | 2 +- src/code/speed_meter.c | 5 +- src/code/z_kaleido_setup.c | 2 +- src/code/z_play.c | 14 +-- src/code/z_prenmi.c | 2 +- .../gamestates/ovl_daytelop/z_daytelop.c | 2 +- .../ovl_file_choose/z_file_choose_NES.c | 2 +- .../gamestates/ovl_opening/z_opening.c | 2 +- src/overlays/gamestates/ovl_select/z_select.c | 2 +- src/overlays/gamestates/ovl_title/z_title.c | 2 +- .../ovl_kaleido_scope/z_kaleido_scope_NES.c | 10 +- tools/disasm/functions.txt | 18 +-- tools/disasm/variables.txt | 6 +- tools/namefixer.py | 2 + tools/sizes/code_functions.csv | 18 +-- 22 files changed, 135 insertions(+), 120 deletions(-) create mode 100644 include/z64speed_meter.h diff --git a/include/functions.h b/include/functions.h index 4664fee890..ff803000d5 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1457,13 +1457,6 @@ void Sched_SendGfxCancelMsg(SchedContext* sched); void Sched_FaultClient(void* param1, void* param2); void Sched_ThreadEntry(void* arg); void Sched_Init(SchedContext* sched, void* stack, OSPri pri, u8 viModeType, UNK_TYPE arg4, IrqMgr* irqMgr); -// void func_80177390(void); -void func_801773A0(void* arg0); -void func_801773C4(void* arg0); -void SpeedMeter_DrawTimeEntries(void* displayList, GraphicsContext* gfxCtx); -// void func_80177A84(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE4 param_9); -//void func_80177AC8(void); -void SpeedMeter_DrawAllocEntries(void* displayList, GraphicsContext* gfxCtx, GameState* gameState); void Mtx_SetTranslateScaleMtx(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY, f32 translateZ); void Mtx_SetRotationMtx(Mtx* mtx, s32 angle, f32 axisX, f32 axisY, f32 axisZ); diff --git a/include/variables.h b/include/variables.h index e1fa8b4912..8a46bdbf5b 100644 --- a/include/variables.h +++ b/include/variables.h @@ -2054,13 +2054,15 @@ extern u32 gAudioSPDataSize; extern volatile OSTime D_801FBAE0; extern volatile OSTime D_801FBAE8; -extern volatile OSTime D_801FBAF0; +extern volatile OSTime gRDPTimeTotal; extern volatile OSTime lastRenderFrameDuration; extern volatile OSTime gRSPAudioTotalTime; extern volatile OSTime sRSPGFXTotalTime; extern volatile OSTime sRSPOtherTotalTime; // extern UNK_TYPE1 D_801FBB18; -extern volatile OSTime gRDPTotalTime; + +// Accumulator for `gRDPTimeTotal` +extern volatile OSTime gRDPTimeAcc; // extern UNK_TYPE1 D_801FBB28; extern Vec3f D_801FBBF0; diff --git a/include/z64game.h b/include/z64game.h index 87dffe5c37..a0c57853a6 100644 --- a/include/z64game.h +++ b/include/z64game.h @@ -71,16 +71,16 @@ typedef struct GameState { } GameState; // size = 0xA4 -void Game_UpdateFramerateVariables(s32 divisor); -void Game_SetFramerateDivisor(GameState* gameState, s32 divisor); -void GameState_SetFBFilter(Gfx** gfx, void* zbuffer); -void Game_Nop80173534(GameState* gameState); +void GameState_UpdateFramerateDivisors(s32 divisor); +void GameState_SetFramerateDivisor(GameState* gameState, s32 divisor); +void GameState_SetFBFilter(Gfx** gfxP, void* zbuffer); +void GameState_Noop(GameState* gameState); void GameState_Draw(GameState* gameState, struct GraphicsContext* gfxCtx); void GameState_SetFrameBuffer(struct GraphicsContext* gfxCtx); -void func_801736DC(struct GraphicsContext* gfxCtx); -void Game_UpdateInput(GameState* gameState); -void Game_Update(GameState* gameState); -void Game_IncrementFrameCount(GameState* gameState); +void GameState_DrawEnd(struct GraphicsContext* gfxCtx); +void GameState_GetInput(GameState* gameState); +void GameState_Update(GameState* gameState); +void GameState_IncrementFrameCount(GameState* gameState); void GameState_InitArena(GameState* gameState, size_t size); void GameState_Realloc(GameState* gameState, size_t size); void GameState_Init(GameState* gameState, GameStateFunc init, struct GraphicsContext* gfxCtx); diff --git a/include/z64speed_meter.h b/include/z64speed_meter.h new file mode 100644 index 0000000000..fbd8152488 --- /dev/null +++ b/include/z64speed_meter.h @@ -0,0 +1,18 @@ +#ifndef Z64SPEED_METER_H +#define Z64SPEED_METER_H + +#include "PR/ultratypes.h" + +struct GameState; +struct GraphicsContext; + +typedef struct SpeedMeter { + /* 0x00 */ char unk_00[0x20]; +} SpeedMeter; // size = 0x20 + +void SpeedMeter_Init(SpeedMeter* this); +void SpeedMeter_Destroy(SpeedMeter* this); +void SpeedMeter_DrawTimeEntries(SpeedMeter* this, struct GraphicsContext* gfxCtx); +void SpeedMeter_DrawAllocEntries(SpeedMeter* this, struct GraphicsContext* gfxCtx, struct GameState* gameState); + +#endif diff --git a/spec b/spec index 17b041fe1e..6c8311802f 100644 --- a/spec +++ b/spec @@ -555,7 +555,6 @@ beginseg include "build/src/code/audio_thread_manager.o" include "build/src/code/title_setup.o" include "build/src/code/game.o" - include "build/data/code/game.bss.o" include "build/src/code/gamealloc.o" include "build/src/code/graph.o" include "build/src/code/graphalloc.o" diff --git a/src/code/game.c b/src/code/game.c index 0884de4441..dc1e1b93e4 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -5,38 +5,39 @@ #include "system_malloc.h" #include "z64debug_text.h" #include "z64rumble.h" +#include "z64speed_meter.h" #include "z64vimode.h" #include "z64viscvg.h" #include "z64vismono.h" #include "z64viszbuf.h" #include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h" -extern UNK_TYPE1 D_801F7FF0; -extern VisCvg sGameVisCvg; -extern VisZbuf sGameVisZbuf; -extern VisMono sGameVisMono; -extern ViMode sGameViMode; - s32 gFramerateDivisor = 1; f32 gFramerateDivisorF = 1.0f; f32 gFramerateDivisorHalf = 1.0f / 2.0f; f32 gFramerateDivisorThird = 1.0f / 3.0f; -void Game_UpdateFramerateVariables(s32 divisor) { +SpeedMeter sGameSpeedMeter; +VisCvg sGameVisCvg; +VisZbuf sGameVisZbuf; +VisMono sGameVisMono; +ViMode sGameViMode; + +void GameState_UpdateFramerateDivisors(s32 divisor) { gFramerateDivisor = divisor; gFramerateDivisorF = divisor; gFramerateDivisorHalf = divisor / 2.0f; gFramerateDivisorThird = divisor / 3.0f; } -void Game_SetFramerateDivisor(GameState* gameState, s32 divisor) { - R_UPDATE_RATE = (s16)divisor; +void GameState_SetFramerateDivisor(GameState* gameState, s32 divisor) { + R_UPDATE_RATE = divisor; gameState->framerateDivisor = divisor; - Game_UpdateFramerateVariables(divisor); + GameState_UpdateFramerateDivisors(divisor); } -void GameState_SetFBFilter(Gfx** gfx, void* zbuffer) { - Gfx* dlist = *gfx; +void GameState_SetFBFilter(Gfx** gfxP, void* zbuffer) { + Gfx* gfx = *gfxP; if ((R_FB_FILTER_TYPE > 0) && (R_FB_FILTER_TYPE < 5)) { sGameVisCvg.type = R_FB_FILTER_TYPE; @@ -44,7 +45,7 @@ void GameState_SetFBFilter(Gfx** gfx, void* zbuffer) { sGameVisCvg.color.g = R_FB_FILTER_PRIM_COLOR(1); sGameVisCvg.color.b = R_FB_FILTER_PRIM_COLOR(2); sGameVisCvg.color.a = R_FB_FILTER_A; - VisCvg_Draw(&sGameVisCvg, &dlist); + VisCvg_Draw(&sGameVisCvg, &gfx); } else if ((R_FB_FILTER_TYPE == 5) || (R_FB_FILTER_TYPE == 6)) { sGameVisZbuf.useRgba = (R_FB_FILTER_TYPE == 6); sGameVisZbuf.primColor.r = R_FB_FILTER_PRIM_COLOR(0); @@ -55,7 +56,7 @@ void GameState_SetFBFilter(Gfx** gfx, void* zbuffer) { sGameVisZbuf.envColor.g = R_FB_FILTER_ENV_COLOR(1); sGameVisZbuf.envColor.b = R_FB_FILTER_ENV_COLOR(2); sGameVisZbuf.envColor.a = R_FB_FILTER_A; - VisZbuf_Draw(&sGameVisZbuf, &dlist, zbuffer); + VisZbuf_Draw(&sGameVisZbuf, &gfx, zbuffer); } else if (R_FB_FILTER_TYPE == 7) { sGameVisMono.unk_00 = 0; sGameVisMono.primColor.r = R_FB_FILTER_PRIM_COLOR(0); @@ -66,43 +67,43 @@ void GameState_SetFBFilter(Gfx** gfx, void* zbuffer) { sGameVisMono.envColor.g = R_FB_FILTER_ENV_COLOR(1); sGameVisMono.envColor.b = R_FB_FILTER_ENV_COLOR(2); sGameVisMono.envColor.a = R_FB_FILTER_A; - VisMono_Draw(&sGameVisMono, &dlist); + VisMono_Draw(&sGameVisMono, &gfx); } - *gfx = dlist; + *gfxP = gfx; } -void Game_Nop80173534(GameState* gameState) { +void GameState_Noop(GameState* gameState) { } void GameState_Draw(GameState* gameState, GraphicsContext* gfxCtx) { - Gfx* nextDisplayList; - Gfx* polyOpa; + Gfx* gfx; + Gfx* gfxHead; OPEN_DISPS(gfxCtx); - nextDisplayList = Graph_GfxPlusOne(polyOpa = POLY_OPA_DISP); - gSPDisplayList(OVERLAY_DISP++, nextDisplayList); + gfx = Graph_GfxPlusOne(gfxHead = POLY_OPA_DISP); + gSPDisplayList(OVERLAY_DISP++, gfx); - if (R_FB_FILTER_TYPE && R_FB_FILTER_ENV_COLOR(3) == 0) { - GameState_SetFBFilter(&nextDisplayList, gfxCtx->zbuffer); + if ((R_FB_FILTER_TYPE != 0) && (R_FB_FILTER_ENV_COLOR(3) == 0)) { + GameState_SetFBFilter(&gfx, gfxCtx->zbuffer); } if (R_ENABLE_ARENA_DBG < 0) { R_ENABLE_ARENA_DBG = 0; } - gSPEndDisplayList(nextDisplayList++); - Graph_BranchDlist(polyOpa, nextDisplayList); - POLY_OPA_DISP = nextDisplayList; + gSPEndDisplayList(gfx++); + Graph_BranchDlist(gfxHead, gfx); + POLY_OPA_DISP = gfx; CLOSE_DISPS(gfxCtx); Debug_DrawText(gfxCtx); if (R_ENABLE_ARENA_DBG != 0) { - SpeedMeter_DrawTimeEntries(&D_801F7FF0, gfxCtx); - SpeedMeter_DrawAllocEntries(&D_801F7FF0, gfxCtx, gameState); + SpeedMeter_DrawTimeEntries(&sGameSpeedMeter, gfxCtx); + SpeedMeter_DrawAllocEntries(&sGameSpeedMeter, gfxCtx, gameState); } } @@ -119,27 +120,27 @@ void GameState_SetFrameBuffer(GraphicsContext* gfxCtx) { CLOSE_DISPS(gfxCtx); } -void func_801736DC(GraphicsContext* gfxCtx) { - Gfx* nextDisplayList; - Gfx* polyOpa; +void GameState_DrawEnd(GraphicsContext* gfxCtx) { + Gfx* gfx; + Gfx* gfxHead; OPEN_DISPS(gfxCtx); - nextDisplayList = Graph_GfxPlusOne(polyOpa = gfxCtx->polyOpa.p); - gSPDisplayList(OVERLAY_DISP++, nextDisplayList); - gSPEndDisplayList(nextDisplayList++); - Graph_BranchDlist(polyOpa, nextDisplayList); + gfx = Graph_GfxPlusOne(gfxHead = POLY_OPA_DISP); + gSPDisplayList(OVERLAY_DISP++, gfx); + gSPEndDisplayList(gfx++); + Graph_BranchDlist(gfxHead, gfx); - POLY_OPA_DISP = nextDisplayList; + POLY_OPA_DISP = gfx; CLOSE_DISPS(gfxCtx); } -void Game_UpdateInput(GameState* gameState) { +void GameState_GetInput(GameState* gameState) { PadMgr_GetInput(gameState->input, true); } -void Game_Update(GameState* gameState) { +void GameState_Update(GameState* gameState) { GraphicsContext* gfxCtx = gameState->gfxCtx; GameState_SetFrameBuffer(gameState->gfxCtx); @@ -148,12 +149,12 @@ void Game_Update(GameState* gameState) { if (R_PAUSE_BG_PRERENDER_STATE != PAUSE_BG_PRERENDER_PROCESS) { GameState_Draw(gameState, gfxCtx); - func_801736DC(gfxCtx); + GameState_DrawEnd(gfxCtx); } } -void Game_IncrementFrameCount(GameState* gameState) { - Game_Nop80173534(gameState); +void GameState_IncrementFrameCount(GameState* gameState) { + GameState_Noop(gameState); gameState->frames++; } @@ -171,27 +172,26 @@ void GameState_InitArena(GameState* gameState, size_t size) { } void GameState_Realloc(GameState* gameState, size_t size) { - GameAlloc* alloc; + GameAlloc* alloc = &gameState->alloc; void* gameArena; size_t systemMaxFree; size_t bytesFree; size_t bytesAllocated; - void* heapStart; + void* heapStart = gameState->heap.start; - heapStart = gameState->heap.start; - alloc = &gameState->alloc; THA_Destroy(&gameState->heap); GameAlloc_Free(alloc, heapStart); SystemArena_GetSizes(&systemMaxFree, &bytesFree, &bytesAllocated); - size = ((systemMaxFree - (sizeof(ArenaNode))) < size) ? (0) : (size); + size = ((systemMaxFree - sizeof(ArenaNode)) < size) ? 0 : size; if (size == 0) { - size = systemMaxFree - (sizeof(ArenaNode)); + size = systemMaxFree - sizeof(ArenaNode); } - if ((gameArena = GameAlloc_Malloc(alloc, size)) != NULL) { + gameArena = GameAlloc_Malloc(alloc, size); + if (gameArena != NULL) { THA_Init(&gameState->heap, gameArena, size); } else { - THA_Init(&gameState->heap, 0, 0); + THA_Init(&gameState->heap, NULL, 0); __assert("../game.c", 1074); } } @@ -201,7 +201,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g gameState->frames = 0; gameState->main = NULL; gameState->destroy = NULL; - gameState->running = 1; + gameState->running = true; gfxCtx->viMode = gActiveViMode; gfxCtx->viConfigFeatures = gViConfigFeatures; gfxCtx->xScale = gViConfigXScale; @@ -216,7 +216,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g } GameState_InitArena(gameState, 0x100000); - Game_SetFramerateDivisor(gameState, 3); + GameState_SetFramerateDivisor(gameState, 3); init(gameState); @@ -224,7 +224,7 @@ void GameState_Init(GameState* gameState, GameStateFunc init, GraphicsContext* g VisZbuf_Init(&sGameVisZbuf); VisMono_Init(&sGameVisMono); ViMode_Init(&sGameViMode); - func_801773A0(&D_801F7FF0); + SpeedMeter_Init(&sGameSpeedMeter); Rumble_Init(); osSendMesg(&gameState->gfxCtx->queue, NULL, OS_MESG_BLOCK); @@ -240,7 +240,7 @@ void GameState_Destroy(GameState* gameState) { } Rumble_Destroy(); - func_801773C4(&D_801F7FF0); + SpeedMeter_Destroy(&sGameSpeedMeter); VisCvg_Destroy(&sGameVisCvg); VisZbuf_Destroy(&sGameVisZbuf); VisMono_Destroy(&sGameVisMono); @@ -266,7 +266,7 @@ s32 GameState_GetArenaSize(GameState* gameState) { } s32 func_80173B48(GameState* gameState) { - s32 result = OS_CYCLES_TO_NSEC(gameState->framerateDivisor * sIrqMgrRetraceTime) - OS_CYCLES_TO_NSEC(D_801FBAF0); + s32 result = OS_CYCLES_TO_NSEC(gameState->framerateDivisor * sIrqMgrRetraceTime) - OS_CYCLES_TO_NSEC(gRDPTimeTotal); return result; } diff --git a/src/code/graph.c b/src/code/graph.c index fe1542f66c..bce1624061 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -228,8 +228,8 @@ retry: } void Graph_UpdateGame(GameState* gameState) { - Game_UpdateInput(gameState); - Game_IncrementFrameCount(gameState); + GameState_GetInput(gameState); + GameState_IncrementFrameCount(gameState); if (SREG(20) < 3) { Audio_Update(); } @@ -245,7 +245,7 @@ void Graph_ExecuteAndDraw(GraphicsContext* gfxCtx, GameState* gameState) { gameState->unk_A3 = 0; Graph_SetNextGfxPool(gfxCtx); - Game_Update(gameState); + GameState_Update(gameState); OPEN_DISPS(gfxCtx); @@ -312,10 +312,10 @@ void Graph_ExecuteAndDraw(GraphicsContext* gfxCtx, GameState* gameState) { D_801FBAE8 = sRSPGFXTotalTime; D_801FBAE0 = gRSPAudioTotalTime; - D_801FBAF0 = gRDPTotalTime; + gRDPTimeTotal = gRDPTimeAcc; sRSPGFXTotalTime = 0; gRSPAudioTotalTime = 0; - gRDPTotalTime = 0; + gRDPTimeAcc = 0; if (sGraphTaskStartTime != 0) { lastRenderFrameDuration = time - sGraphTaskStartTime; diff --git a/src/code/sched.c b/src/code/sched.c index 19e6a6bc94..f8dc2a35de 100644 --- a/src/code/sched.c +++ b/src/code/sched.c @@ -481,7 +481,7 @@ void Sched_HandleRDPDone(SchedContext* sched) { } // Log run time - gRDPTotalTime = osGetTime() - sRDPStartTime; + gRDPTimeAcc = osGetTime() - sRDPStartTime; // Mark task done curRDP = sched->curRDPTask; diff --git a/src/code/speed_meter.c b/src/code/speed_meter.c index 780a02c62f..1e6f1f886e 100644 --- a/src/code/speed_meter.c +++ b/src/code/speed_meter.c @@ -1,12 +1,13 @@ #include "global.h" +#include "z64speed_meter.h" #include "z64view.h" #include "system_malloc.h" #pragma GLOBAL_ASM("asm/non_matchings/code/speed_meter/func_80177390.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/speed_meter/func_801773A0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/speed_meter/SpeedMeter_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/speed_meter/func_801773C4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/speed_meter/SpeedMeter_Destroy.s") #pragma GLOBAL_ASM("asm/non_matchings/code/speed_meter/SpeedMeter_DrawTimeEntries.s") diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index 91c0b4a7cc..a08f2b56b5 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -110,7 +110,7 @@ void KaleidoSetup_Update(PlayState* play) { } if (pauseCtx->state == PAUSE_STATE_OPENING_0) { - Game_SetFramerateDivisor(&play->state, 2); + GameState_SetFramerateDivisor(&play->state, 2); if (ShrinkWindow_Letterbox_GetSizeTarget() != 0) { ShrinkWindow_Letterbox_SetSizeTarget(0); } diff --git a/src/code/z_play.c b/src/code/z_play.c index 1d5617850f..ccbf1f0c43 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -728,7 +728,7 @@ void Play_UpdateTransition(PlayState* this) { if (gTransitionTileState == TRANS_TILE_READY) { TransitionTile_Destroy(&sTransitionTile); gTransitionTileState = TRANS_TILE_OFF; - Game_SetFramerateDivisor(&this->state, 3); + GameState_SetFramerateDivisor(&this->state, 3); } } this->transitionTrigger = TRANS_TRIGGER_OFF; @@ -775,7 +775,7 @@ void Play_UpdateTransition(PlayState* this) { if (sTransitionFillTimer >= 20) { gTransitionTileState = TRANS_TILE_OFF; - Game_SetFramerateDivisor(&this->state, 3); + GameState_SetFramerateDivisor(&this->state, 3); this->transitionTrigger = TRANS_TRIGGER_OFF; this->transitionMode = TRANS_MODE_OFF; this->envCtx.fillScreen = false; @@ -809,7 +809,7 @@ void Play_UpdateTransition(PlayState* this) { this->transitionMode = TRANS_MODE_OFF; } else { gTransitionTileState = TRANS_TILE_OFF; - Game_SetFramerateDivisor(&this->state, 3); + GameState_SetFramerateDivisor(&this->state, 3); this->transitionTrigger = TRANS_TRIGGER_OFF; this->transitionMode = TRANS_MODE_OFF; } @@ -838,7 +838,7 @@ void Play_UpdateTransition(PlayState* this) { if (this->transitionTrigger == TRANS_TRIGGER_END) { if (this->envCtx.sandstormPrimA < 110) { gTransitionTileState = TRANS_TILE_OFF; - Game_SetFramerateDivisor(&this->state, 3); + GameState_SetFramerateDivisor(&this->state, 3); this->transitionTrigger = TRANS_TRIGGER_OFF; this->transitionMode = TRANS_MODE_OFF; } @@ -874,7 +874,7 @@ void Play_UpdateTransition(PlayState* this) { if (this->transitionTrigger == TRANS_TRIGGER_END) { if (this->envCtx.sandstormPrimA <= 0) { gTransitionTileState = TRANS_TILE_OFF; - Game_SetFramerateDivisor(&this->state, 3); + GameState_SetFramerateDivisor(&this->state, 3); this->transitionTrigger = TRANS_TRIGGER_OFF; this->transitionMode = TRANS_MODE_OFF; } @@ -897,7 +897,7 @@ void Play_UpdateTransition(PlayState* this) { if (gSaveContext.cutsceneTransitionControl <= 100) { gTransitionTileState = TRANS_TILE_OFF; - Game_SetFramerateDivisor(&this->state, 3); + GameState_SetFramerateDivisor(&this->state, 3); this->transitionTrigger = TRANS_TRIGGER_OFF; this->transitionMode = TRANS_MODE_OFF; } @@ -945,7 +945,7 @@ void Play_UpdateMain(PlayState* this) { } else { sTransitionTile.zBuffer = gZBufferPtr; gTransitionTileState = TRANS_TILE_READY; - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); } break; diff --git a/src/code/z_prenmi.c b/src/code/z_prenmi.c index 51f2d77f71..e1282db6bc 100644 --- a/src/code/z_prenmi.c +++ b/src/code/z_prenmi.c @@ -50,5 +50,5 @@ void PreNMI_Init(GameState* thisx) { this->timer = 30; this->unk_A8 = 10; - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); } diff --git a/src/overlays/gamestates/ovl_daytelop/z_daytelop.c b/src/overlays/gamestates/ovl_daytelop/z_daytelop.c index cd44664c9f..1b68e0b14b 100644 --- a/src/overlays/gamestates/ovl_daytelop/z_daytelop.c +++ b/src/overlays/gamestates/ovl_daytelop/z_daytelop.c @@ -226,7 +226,7 @@ void DayTelop_LoadGraphics(DayTelopState* this) { void DayTelop_Init(GameState* thisx) { DayTelopState* this = (DayTelopState*)thisx; - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); Matrix_Init(&this->state); ShrinkWindow_Destroy(); View_Init(&this->view, this->state.gfxCtx); diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c index f869c88a4f..4d3e172d9d 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.c @@ -2521,7 +2521,7 @@ void FileSelect_Init(GameState* thisx) { FileSelectState* this = (FileSelectState*)thisx; size_t size; - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); Matrix_Init(&this->state); ShrinkWindow_Init(); View_Init(&this->view, this->state.gfxCtx); diff --git a/src/overlays/gamestates/ovl_opening/z_opening.c b/src/overlays/gamestates/ovl_opening/z_opening.c index 84425cc732..f2b74cdc71 100644 --- a/src/overlays/gamestates/ovl_opening/z_opening.c +++ b/src/overlays/gamestates/ovl_opening/z_opening.c @@ -52,7 +52,7 @@ void TitleSetup_Destroy(GameState* thisx) { void TitleSetup_Init(GameState* thisx) { TitleSetupState* this = (TitleSetupState*)thisx; - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); Matrix_Init(&this->state); ShrinkWindow_Init(); View_Init(&this->view, this->state.gfxCtx); diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c index 71524496e1..06775bf6ec 100644 --- a/src/overlays/gamestates/ovl_select/z_select.c +++ b/src/overlays/gamestates/ovl_select/z_select.c @@ -1084,7 +1084,7 @@ void MapSelect_Init(GameState* thisx) { this->pageDownIndex = dREG(82); } - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); gSaveContext.save.cutsceneIndex = 0; gSaveContext.save.playerForm = PLAYER_FORM_HUMAN; gSaveContext.save.linkAge = 0; diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index abde294e5c..21f034e12e 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -156,7 +156,7 @@ void ConsoleLogo_Init(GameState* thisx) { this->staticSegment = THA_AllocTailAlign16(&this->state.heap, segmentSize); DmaMgr_SendRequest0(this->staticSegment, SEGMENT_ROM_START(nintendo_rogo_static), segmentSize); - Game_SetFramerateDivisor(&this->state, 1); + GameState_SetFramerateDivisor(&this->state, 1); Matrix_Init(&this->state); ShrinkWindow_Init(); View_Init(&this->view, this->state.gfxCtx); diff --git a/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c b/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c index e864a27d71..04567cf9d9 100644 --- a/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c +++ b/src/overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope_NES.c @@ -3157,7 +3157,7 @@ void KaleidoScope_Update(PlayState* play) { if (interfaceCtx->screenFillAlpha >= 255) { interfaceCtx->screenFillAlpha = 255; pauseCtx->state = PAUSE_STATE_OFF; - Game_SetFramerateDivisor(&play->state, 3); + GameState_SetFramerateDivisor(&play->state, 3); R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_UNK4; Object_LoadAll(&play->objectCtx); BgCheck_InitCollisionHeaders(&play->colCtx, play); @@ -3314,7 +3314,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->promptChoice = PAUSE_PROMPT_YES; Audio_PlaySfx(NA_SE_SY_DECIDE); pauseCtx->state = PAUSE_STATE_OFF; - Game_SetFramerateDivisor(&play->state, 3); + GameState_SetFramerateDivisor(&play->state, 3); R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_UNK4; Object_LoadAll(&play->objectCtx); BgCheck_InitCollisionHeaders(&play->colCtx, play); @@ -3347,7 +3347,7 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_STATE_GAMEOVER_7: if (sramCtx->status == 0) { pauseCtx->state = PAUSE_STATE_OFF; - Game_SetFramerateDivisor(&play->state, 3); + GameState_SetFramerateDivisor(&play->state, 3); R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_UNK4; Object_LoadAll(&play->objectCtx); BgCheck_InitCollisionHeaders(&play->colCtx, play); @@ -3387,7 +3387,7 @@ void KaleidoScope_Update(PlayState* play) { interfaceCtx->screenFillAlpha = 255; pauseCtx->state = PAUSE_STATE_OFF; - Game_SetFramerateDivisor(&play->state, 3); + GameState_SetFramerateDivisor(&play->state, 3); R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_UNK4; Object_LoadAll(&play->objectCtx); BgCheck_InitCollisionHeaders(&play->colCtx, play); @@ -3580,7 +3580,7 @@ void KaleidoScope_Update(PlayState* play) { case PAUSE_STATE_UNPAUSE_CLOSE: pauseCtx->state = PAUSE_STATE_OFF; - Game_SetFramerateDivisor(&play->state, 3); + GameState_SetFramerateDivisor(&play->state, 3); R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_UNK4; Object_LoadAll(&play->objectCtx); BgCheck_InitCollisionHeaders(&play->colCtx, play); diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 11286c882b..686ce3002c 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -3120,16 +3120,16 @@ 0x801732DC:("Setup_InitImpl",), 0x8017332C:("Setup_Destroy",), 0x80173338:("Setup_Init",), - 0x80173360:("Game_UpdateFramerateVariables",), - 0x801733A8:("Game_SetFramerateDivisor",), + 0x80173360:("GameState_UpdateFramerateDivisors",), + 0x801733A8:("GameState_SetFramerateDivisor",), 0x801733DC:("GameState_SetFBFilter",), - 0x80173534:("Game_Nop80173534",), + 0x80173534:("GameState_Noop",), 0x80173540:("GameState_Draw",), 0x80173644:("GameState_SetFrameBuffer",), - 0x801736DC:("func_801736DC",), - 0x80173754:("Game_UpdateInput",), - 0x8017377C:("Game_Update",), - 0x801737E4:("Game_IncrementFrameCount",), + 0x801736DC:("GameState_DrawEnd",), + 0x80173754:("GameState_GetInput",), + 0x8017377C:("GameState_Update",), + 0x801737E4:("GameState_IncrementFrameCount",), 0x80173810:("GameState_InitArena",), 0x80173880:("GameState_Realloc",), 0x80173950:("GameState_Init",), @@ -3216,8 +3216,8 @@ 0x8017715C:("Sched_ThreadEntry",), 0x801772A0:("Sched_Init",), 0x80177390:("func_80177390",), - 0x801773A0:("func_801773A0",), - 0x801773C4:("func_801773C4",), + 0x801773A0:("SpeedMeter_Init",), + 0x801773C4:("SpeedMeter_Destroy",), 0x801773D0:("SpeedMeter_DrawTimeEntries",), 0x80177A84:("func_80177A84",), 0x80177AC8:("func_80177AC8",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 9e122fed28..8a0c74f957 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -4025,7 +4025,7 @@ 0x801F6FC0:("D_801F6FC0","UNK_TYPE1","",0x1), 0x801F6FC8:("sSlowlyStackInfo","StackEntry","",0x1c), 0x801F6FE8:("sSlowlyStack","u8","[4096]",0x1000), - 0x801F7FF0:("D_801F7FF0","UNK_TYPE1","",0x20), + 0x801F7FF0:("sGameSpeedMeter","SpeedMeter","", 0x20), 0x801F8010:("sGameVisCvg","VisCvg","",0x10), 0x801F8020:("sGameVisZbuf","VisZbuf","",0x10), 0x801F8030:("sGameVisMono","VisMono","",0x18), @@ -4062,7 +4062,7 @@ 0x801FBAD4:("gAudioSPDataSize","u32","",0x4), 0x801FBAE0:("D_801FBAE0","UNK_TYPE1","",0x1), 0x801FBAE8:("D_801FBAE8","UNK_TYPE1","",0x1), - 0x801FBAF0:("D_801FBAF0","volatile OSTime","",0x8), + 0x801FBAF0:("gRDPTimeTotal","volatile OSTime","",0x8), 0x801FBAF8:("lastRenderFrameDuration","volatile OSTime","",0x8), 0x801FBB00:("gRSPAudioTotalTime","UNK_TYPE1","",0x1), 0x801FBB04:("D_801FBB04","UNK_TYPE1","",0x1), @@ -4070,7 +4070,7 @@ 0x801FBB0C:("D_801FBB0C","UNK_TYPE1","",0x1), 0x801FBB10:("sRSPOtherTotalTime","UNK_TYPE1","",0x1), 0x801FBB14:("D_801FBB14","UNK_TYPE1","",0x1), - 0x801FBB20:("gRDPTotalTime","UNK_TYPE1","",0x1), + 0x801FBB20:("gRDPTimeAcc","UNK_TYPE1","",0x1), 0x801FBB28:("D_801FBB28","UNK_TYPE1","",0x1), 0x801FBB30:("sNotebookViMode","OSViMode","",0x50), 0x801FBB80:("gFramebuffers","u32*","[2]",0x8), diff --git a/tools/namefixer.py b/tools/namefixer.py index 86095aa6e5..e4343cf312 100755 --- a/tools/namefixer.py +++ b/tools/namefixer.py @@ -894,6 +894,8 @@ wordReplace = { "func_8012CA0C": "Gfx_SetupDL56_Ptr", "func_8012CA38": "Gfx_SetupDL59_Opa", + "Game_SetFramerateDivisor": "GameState_SetFramerateDivisor", + # Structs "ActorAnimationEntry": "AnimationInfo", "ActorAnimationEntryS": "AnimationInfoS", diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 5e2e9ce14a..b7da3ff1cf 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -2634,16 +2634,16 @@ asm/non_matchings/code/title_setup/Setup_SetRegs.s,Setup_SetRegs,0x80173130,0x6B asm/non_matchings/code/title_setup/Setup_InitImpl.s,Setup_InitImpl,0x801732DC,0x14 asm/non_matchings/code/title_setup/Setup_Destroy.s,Setup_Destroy,0x8017332C,0x3 asm/non_matchings/code/title_setup/Setup_Init.s,Setup_Init,0x80173338,0xA -asm/non_matchings/code/game/Game_UpdateFramerateVariables.s,Game_UpdateFramerateVariables,0x80173360,0x12 -asm/non_matchings/code/game/Game_SetFramerateDivisor.s,Game_SetFramerateDivisor,0x801733A8,0xD +asm/non_matchings/code/game/GameState_UpdateFramerateDivisors.s,GameState_UpdateFramerateDivisors,0x80173360,0x12 +asm/non_matchings/code/game/GameState_SetFramerateDivisor.s,GameState_SetFramerateDivisor,0x801733A8,0xD asm/non_matchings/code/game/GameState_SetFBFilter.s,GameState_SetFBFilter,0x801733DC,0x56 -asm/non_matchings/code/game/Game_Nop80173534.s,Game_Nop80173534,0x80173534,0x3 +asm/non_matchings/code/game/GameState_Noop.s,GameState_Noop,0x80173534,0x3 asm/non_matchings/code/game/GameState_Draw.s,GameState_Draw,0x80173540,0x41 asm/non_matchings/code/game/Game_ResetSegments.s,Game_ResetSegments,0x80173644,0x26 -asm/non_matchings/code/game/func_801736DC.s,func_801736DC,0x801736DC,0x1E -asm/non_matchings/code/game/Game_UpdateInput.s,Game_UpdateInput,0x80173754,0xA -asm/non_matchings/code/game/Game_Update.s,Game_Update,0x8017377C,0x1A -asm/non_matchings/code/game/Game_IncrementFrameCount.s,Game_IncrementFrameCount,0x801737E4,0xB +asm/non_matchings/code/game/GameState_DrawEnd.s,GameState_DrawEnd,0x801736DC,0x1E +asm/non_matchings/code/game/GameState_GetInput.s,GameState_GetInput,0x80173754,0xA +asm/non_matchings/code/game/GameState_Update.s,GameState_Update,0x8017377C,0x1A +asm/non_matchings/code/game/GameState_IncrementFrameCount.s,GameState_IncrementFrameCount,0x801737E4,0xB asm/non_matchings/code/game/Game_InitHeap.s,Game_InitHeap,0x80173810,0x1C asm/non_matchings/code/game/Game_ResizeHeap.s,Game_ResizeHeap,0x80173880,0x34 asm/non_matchings/code/game/GameState_Init.s,GameState_Init,0x80173950,0x40 @@ -2730,8 +2730,8 @@ asm/non_matchings/code/sched/Sched_FaultClient.s,Sched_FaultClient,0x80177084,0x asm/non_matchings/code/sched/Sched_ThreadEntry.s,Sched_ThreadEntry,0x8017715C,0x51 asm/non_matchings/code/sched/Sched_Init.s,Sched_Init,0x801772A0,0x3C asm/non_matchings/code/speed_meter/func_80177390.s,func_80177390,0x80177390,0x4 -asm/non_matchings/code/speed_meter/func_801773A0.s,func_801773A0,0x801773A0,0x9 -asm/non_matchings/code/speed_meter/func_801773C4.s,func_801773C4,0x801773C4,0x3 +asm/non_matchings/code/speed_meter/SpeedMeter_Init.s,SpeedMeter_Init,0x801773A0,0x9 +asm/non_matchings/code/speed_meter/SpeedMeter_Destroy.s,SpeedMeter_Destroy,0x801773C4,0x3 asm/non_matchings/code/speed_meter/SpeedMeter_DrawTimeEntries.s,SpeedMeter_DrawTimeEntries,0x801773D0,0x1AD asm/non_matchings/code/speed_meter/func_80177A84.s,func_80177A84,0x80177A84,0x11 asm/non_matchings/code/speed_meter/func_80177AC8.s,func_80177AC8,0x80177AC8,0xE4