Game bss and cleanup (#1356)

* Game bss and cleanup

* Match Oot with rdp time variables

* PR review

* Namefixer
This commit is contained in:
Derek Hensley 2023-08-21 18:44:28 -07:00 committed by GitHub
parent 312fcafe2d
commit 8059537150
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 135 additions and 120 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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);

18
include/z64speed_meter.h Normal file
View File

@ -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

1
spec
View File

@ -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"

View File

@ -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;
}

View File

@ -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;

View File

@ -481,7 +481,7 @@ void Sched_HandleRDPDone(SchedContext* sched) {
}
// Log run time
gRDPTotalTime = osGetTime() - sRDPStartTime;
gRDPTimeAcc = osGetTime() - sRDPStartTime;
// Mark task done
curRDP = sched->curRDPTask;

View File

@ -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")

View File

@ -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);
}

View File

@ -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;

View File

@ -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);
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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",),

View File

@ -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),

View File

@ -894,6 +894,8 @@ wordReplace = {
"func_8012CA0C": "Gfx_SetupDL56_Ptr",
"func_8012CA38": "Gfx_SetupDL59_Opa",
"Game_SetFramerateDivisor": "GameState_SetFramerateDivisor",
# Structs
"ActorAnimationEntry": "AnimationInfo",
"ActorAnimationEntryS": "AnimationInfoS",

View File

@ -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

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2634 asm/non_matchings/code/title_setup/Setup_InitImpl.s Setup_InitImpl 0x801732DC 0x14
2635 asm/non_matchings/code/title_setup/Setup_Destroy.s Setup_Destroy 0x8017332C 0x3
2636 asm/non_matchings/code/title_setup/Setup_Init.s Setup_Init 0x80173338 0xA
2637 asm/non_matchings/code/game/Game_UpdateFramerateVariables.s asm/non_matchings/code/game/GameState_UpdateFramerateDivisors.s Game_UpdateFramerateVariables GameState_UpdateFramerateDivisors 0x80173360 0x12
2638 asm/non_matchings/code/game/Game_SetFramerateDivisor.s asm/non_matchings/code/game/GameState_SetFramerateDivisor.s Game_SetFramerateDivisor GameState_SetFramerateDivisor 0x801733A8 0xD
2639 asm/non_matchings/code/game/GameState_SetFBFilter.s GameState_SetFBFilter 0x801733DC 0x56
2640 asm/non_matchings/code/game/Game_Nop80173534.s asm/non_matchings/code/game/GameState_Noop.s Game_Nop80173534 GameState_Noop 0x80173534 0x3
2641 asm/non_matchings/code/game/GameState_Draw.s GameState_Draw 0x80173540 0x41
2642 asm/non_matchings/code/game/Game_ResetSegments.s Game_ResetSegments 0x80173644 0x26
2643 asm/non_matchings/code/game/func_801736DC.s asm/non_matchings/code/game/GameState_DrawEnd.s func_801736DC GameState_DrawEnd 0x801736DC 0x1E
2644 asm/non_matchings/code/game/Game_UpdateInput.s asm/non_matchings/code/game/GameState_GetInput.s Game_UpdateInput GameState_GetInput 0x80173754 0xA
2645 asm/non_matchings/code/game/Game_Update.s asm/non_matchings/code/game/GameState_Update.s Game_Update GameState_Update 0x8017377C 0x1A
2646 asm/non_matchings/code/game/Game_IncrementFrameCount.s asm/non_matchings/code/game/GameState_IncrementFrameCount.s Game_IncrementFrameCount GameState_IncrementFrameCount 0x801737E4 0xB
2647 asm/non_matchings/code/game/Game_InitHeap.s Game_InitHeap 0x80173810 0x1C
2648 asm/non_matchings/code/game/Game_ResizeHeap.s Game_ResizeHeap 0x80173880 0x34
2649 asm/non_matchings/code/game/GameState_Init.s GameState_Init 0x80173950 0x40
2730 asm/non_matchings/code/sched/Sched_ThreadEntry.s Sched_ThreadEntry 0x8017715C 0x51
2731 asm/non_matchings/code/sched/Sched_Init.s Sched_Init 0x801772A0 0x3C
2732 asm/non_matchings/code/speed_meter/func_80177390.s func_80177390 0x80177390 0x4
2733 asm/non_matchings/code/speed_meter/func_801773A0.s asm/non_matchings/code/speed_meter/SpeedMeter_Init.s func_801773A0 SpeedMeter_Init 0x801773A0 0x9
2734 asm/non_matchings/code/speed_meter/func_801773C4.s asm/non_matchings/code/speed_meter/SpeedMeter_Destroy.s func_801773C4 SpeedMeter_Destroy 0x801773C4 0x3
2735 asm/non_matchings/code/speed_meter/SpeedMeter_DrawTimeEntries.s SpeedMeter_DrawTimeEntries 0x801773D0 0x1AD
2736 asm/non_matchings/code/speed_meter/func_80177A84.s func_80177A84 0x80177A84 0x11
2737 asm/non_matchings/code/speed_meter/func_80177AC8.s func_80177AC8 0x80177AC8 0xE4