summaryrefslogtreecommitdiff
path: root/src/code/graph.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/graph.c')
-rw-r--r--src/code/graph.c63
1 files changed, 35 insertions, 28 deletions
diff --git a/src/code/graph.c b/src/code/graph.c
index ba683b267..1c9093dc9 100644
--- a/src/code/graph.c
+++ b/src/code/graph.c
@@ -45,23 +45,28 @@ void UCodeDisas_Disassemble(UCodeDisas*, Gfx*);
void Graph_DisassembleUCode(Gfx* workBuf) {
UCodeDisas disassembler;
- if (HREG(80) == 7 && HREG(81) != 0) {
+ if (R_HREG_MODE == HREG_MODE_UCODE_DISAS && R_UCODE_DISAS_TOGGLE != 0) {
UCodeDisas_Init(&disassembler);
- disassembler.enableLog = HREG(83);
+ disassembler.enableLog = R_UCODE_DISAS_LOG_LEVEL;
+
UCodeDisas_RegisterUCode(&disassembler, ARRAY_COUNT(D_8012D230), D_8012D230);
UCodeDisas_SetCurUCode(&disassembler, gspF3DZEX2_NoN_PosLight_fifoTextStart);
+
UCodeDisas_Disassemble(&disassembler, workBuf);
- HREG(93) = disassembler.dlCnt;
- HREG(84) = disassembler.tri2Cnt * 2 + disassembler.tri1Cnt + (disassembler.quadCnt * 2) + disassembler.lineCnt;
- HREG(85) = disassembler.vtxCnt;
- HREG(86) = disassembler.spvtxCnt;
- HREG(87) = disassembler.tri1Cnt;
- HREG(88) = disassembler.tri2Cnt;
- HREG(89) = disassembler.quadCnt;
- HREG(90) = disassembler.lineCnt;
- HREG(91) = disassembler.syncErr;
- HREG(92) = disassembler.loaducodeCnt;
- if (HREG(82) == 1 || HREG(82) == 2) {
+
+ R_UCODE_DISAS_DL_COUNT = disassembler.dlCnt;
+ R_UCODE_DISAS_TOTAL_COUNT =
+ disassembler.tri2Cnt * 2 + disassembler.tri1Cnt + (disassembler.quadCnt * 2) + disassembler.lineCnt;
+ R_UCODE_DISAS_VTX_COUNT = disassembler.vtxCnt;
+ R_UCODE_DISAS_SPVTX_COUNT = disassembler.spvtxCnt;
+ R_UCODE_DISAS_TRI1_COUNT = disassembler.tri1Cnt;
+ R_UCODE_DISAS_TRI2_COUNT = disassembler.tri2Cnt;
+ R_UCODE_DISAS_QUAD_COUNT = disassembler.quadCnt;
+ R_UCODE_DISAS_LINE_COUNT = disassembler.lineCnt;
+ R_UCODE_DISAS_SYNC_ERROR_COUNT = disassembler.syncErr;
+ R_UCODE_DISAS_LOAD_COUNT = disassembler.loaducodeCnt;
+
+ if (R_UCODE_DISAS_LOG_MODE == 1 || R_UCODE_DISAS_LOG_MODE == 2) {
osSyncPrintf("vtx_cnt=%d\n", disassembler.vtxCnt);
osSyncPrintf("spvtx_cnt=%d\n", disassembler.spvtxCnt);
osSyncPrintf("tri1_cnt=%d\n", disassembler.tri1Cnt);
@@ -73,6 +78,7 @@ void Graph_DisassembleUCode(Gfx* workBuf) {
osSyncPrintf("dl_depth=%d\n", disassembler.dlDepth);
osSyncPrintf("dl_cnt=%d\n", disassembler.dlCnt);
}
+
UCodeDisas_Destroy(&disassembler);
}
}
@@ -181,12 +187,13 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) {
SREG(6) = -1;
if (sPrevTaskWorkBuffer != NULL) {
- HREG(80) = 7;
- HREG(81) = 1;
- HREG(83) = 2;
+ R_HREG_MODE = HREG_MODE_UCODE_DISAS;
+ R_UCODE_DISAS_TOGGLE = 1;
+ R_UCODE_DISAS_LOG_LEVEL = 2;
sPrevTaskWorkBuffer = sPrevTaskWorkBuffer;
Graph_DisassembleUCode(sPrevTaskWorkBuffer);
}
+
Fault_AddHungupAndCrashImpl("RCP is HUNG UP!!", "Oh! MY GOD!!");
}
@@ -303,30 +310,30 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) {
CLOSE_DISPS(gfxCtx, "../graph.c", 1028);
- if (HREG(80) == 10 && HREG(93) == 2) {
- HREG(80) = 7;
- HREG(81) = -1;
- HREG(83) = HREG(92);
+ if (R_HREG_MODE == HREG_MODE_PLAY && R_PLAY_ENABLE_UCODE_DISAS == 2) {
+ R_HREG_MODE = HREG_MODE_UCODE_DISAS;
+ R_UCODE_DISAS_TOGGLE = -1;
+ R_UCODE_DISAS_LOG_LEVEL = R_PLAY_UCODE_DISAS_LOG_LEVEL;
}
- if (HREG(80) == 7 && HREG(81) != 0) {
- if (HREG(82) == 3) {
+ if (R_HREG_MODE == HREG_MODE_UCODE_DISAS && R_UCODE_DISAS_TOGGLE != 0) {
+ if (R_UCODE_DISAS_LOG_MODE == 3) {
Fault_AddClient(&sGraphUcodeFaultClient, Graph_UCodeFaultClient, gfxCtx->workBuffer, "do_count_fault");
}
Graph_DisassembleUCode(gfxCtx->workBuffer);
- if (HREG(82) == 3) {
+ if (R_UCODE_DISAS_LOG_MODE == 3) {
Fault_RemoveClient(&sGraphUcodeFaultClient);
}
- if (HREG(81) < 0) {
+ if (R_UCODE_DISAS_TOGGLE < 0) {
LogUtils_LogHexDump((void*)PHYS_TO_K1(SP_BASE_REG), 0x20);
LogUtils_LogHexDump((void*)PHYS_TO_K1(DPC_BASE_REG), 0x20);
}
- if (HREG(81) < 0) {
- HREG(81) = 0;
+ if (R_UCODE_DISAS_TOGGLE < 0) {
+ R_UCODE_DISAS_TOGGLE = 0;
}
}
@@ -475,7 +482,7 @@ void* Graph_Alloc2(GraphicsContext* gfxCtx, size_t size) {
}
void Graph_OpenDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file, s32 line) {
- if (HREG(80) == 7 && HREG(82) != 4) {
+ if (R_HREG_MODE == HREG_MODE_UCODE_DISAS && R_UCODE_DISAS_LOG_MODE != 4) {
dispRefs[0] = gfxCtx->polyOpa.p;
dispRefs[1] = gfxCtx->polyXlu.p;
dispRefs[2] = gfxCtx->overlay.p;
@@ -487,7 +494,7 @@ void Graph_OpenDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file,
}
void Graph_CloseDisps(Gfx** dispRefs, GraphicsContext* gfxCtx, const char* file, s32 line) {
- if (HREG(80) == 7 && HREG(82) != 4) {
+ if (R_HREG_MODE == HREG_MODE_UCODE_DISAS && R_UCODE_DISAS_LOG_MODE != 4) {
if (dispRefs[0] + 1 == gfxCtx->polyOpa.p) {
gfxCtx->polyOpa.p = dispRefs[0];
} else {