diff options
| author | Tharo <17233964+Thar0@users.noreply.github.com> | 2022-05-03 23:43:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-04 00:43:09 +0200 |
| commit | 765cfd63e97b4b7ece2ff4d4a65c2b65e1db7501 (patch) | |
| tree | 6f910b68e18767b4d8021a97895b9da32c7ade62 /src/code | |
| parent | 912b9168752617c26764b81415dc1caa572fc29b (diff) | |
Name rsp ucodes and surrounding cleanup (#1166)
* Name rsp ucodes and surrounding cleanup
* Fix comments alignment and remove unnecessary & in sys_ucode
* Change capitalization of sys_ucode variables
* Remove unnecessary externs for aspMain
* Improvements to Jpeg_ScheduleDecoderTask
* Split unknown rsp code into a separate file, spacing
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/code_800E4FE0.c | 15 | ||||
| -rw-r--r-- | src/code/graph.c | 24 | ||||
| -rw-r--r-- | src/code/sys_ucode.c | 20 | ||||
| -rw-r--r-- | src/code/z_jpeg.c | 54 | ||||
| -rw-r--r-- | src/code/z_room.c | 12 |
5 files changed, 59 insertions, 66 deletions
diff --git a/src/code/code_800E4FE0.c b/src/code/code_800E4FE0.c index 4d3d8afb4..04c43a2bd 100644 --- a/src/code/code_800E4FE0.c +++ b/src/code/code_800E4FE0.c @@ -35,9 +35,6 @@ AudioTask* func_800E4FE0(void) { return func_800E5000(); } -extern u64 rspAspMainDataStart[]; -extern u64 rspAspMainDataEnd[]; - AudioTask* func_800E5000(void) { static s32 sMaxAbiCmdCnt = 0x80; static AudioTask* sWaitingAudioTask = NULL; @@ -178,12 +175,12 @@ AudioTask* func_800E5000(void) { task = &gAudioContext.currTask->task.t; task->type = M_AUDTASK; task->flags = 0; - task->ucode_boot = D_801120C0; - task->ucode_boot_size = 0x1000; - task->ucode_data_size = ((rspAspMainDataEnd - rspAspMainDataStart) * sizeof(u64)) - 1; - task->ucode = D_801120C0; - task->ucode_data = rspAspMainDataStart; - task->ucode_size = 0x1000; + task->ucode_boot = aspMainTextStart; + task->ucode_boot_size = SP_UCODE_SIZE; + task->ucode_data_size = (size_t)(aspMainDataEnd - aspMainDataStart) * sizeof(u64) - 1; + task->ucode = aspMainTextStart; + task->ucode_data = aspMainDataStart; + task->ucode_size = SP_UCODE_SIZE; task->dram_stack = NULL; task->dram_stack_size = 0; task->output_buff = NULL; diff --git a/src/code/graph.c b/src/code/graph.c index e6e6956b2..6bf87ae90 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -11,15 +11,15 @@ CfbInfo sGraphCfbInfos[3]; FaultClient sGraphUcodeFaultClient; UCodeInfo D_8012D230[3] = { - { UCODE_F3DZEX, D_80155F50 }, + { UCODE_F3DZEX, gspF3DZEX2_NoN_PosLight_fifoTextStart }, { UCODE_UNK, NULL }, - { UCODE_S2DEX, D_80113070 }, + { UCODE_S2DEX, gspS2DEX2d_fifoTextStart }, }; UCodeInfo D_8012D248[3] = { - { UCODE_F3DZEX, D_80155F50 }, + { UCODE_F3DZEX, gspF3DZEX2_NoN_PosLight_fifoTextStart }, { UCODE_UNK, NULL }, - { UCODE_S2DEX, D_80113070 }, + { UCODE_S2DEX, gspS2DEX2d_fifoTextStart }, }; void Graph_FaultClient(void) { @@ -38,7 +38,7 @@ void Graph_DisassembleUCode(Gfx* workBuf) { UCodeDisas_Init(&disassembler); disassembler.enableLog = HREG(83); UCodeDisas_RegisterUCode(&disassembler, ARRAY_COUNT(D_8012D230), D_8012D230); - UCodeDisas_SetCurUCode(&disassembler, D_80155F50); + 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; @@ -72,7 +72,7 @@ void Graph_UCodeFaultClient(Gfx* workBuf) { UCodeDisas_Init(&disassembler); disassembler.enableLog = true; UCodeDisas_RegisterUCode(&disassembler, ARRAY_COUNT(D_8012D248), D_8012D248); - UCodeDisas_SetCurUCode(&disassembler, D_80155F50); + UCodeDisas_SetCurUCode(&disassembler, gspF3DZEX2_NoN_PosLight_fifoTextStart); UCodeDisas_Disassemble(&disassembler, workBuf); UCodeDisas_Destroy(&disassembler); } @@ -200,21 +200,21 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { task->ucode_boot_size = SysUcode_GetUCodeBootSize(); task->ucode = SysUcode_GetUCode(); task->ucode_data = SysUcode_GetUCodeData(); - task->ucode_size = 0x1000; - task->ucode_data_size = 0x800; - task->dram_stack = (u64*)gGfxSPTaskStack; + task->ucode_size = SP_UCODE_SIZE; + task->ucode_data_size = SP_UCODE_DATA_SIZE; + task->dram_stack = gGfxSPTaskStack; task->dram_stack_size = sizeof(gGfxSPTaskStack); task->output_buff = gGfxSPTaskOutputBuffer; - task->output_buff_size = (u64*)((u8*)gGfxSPTaskOutputBuffer + sizeof(gGfxSPTaskOutputBuffer)); + task->output_buff_size = gGfxSPTaskOutputBuffer + ARRAY_COUNT(gGfxSPTaskOutputBuffer); task->data_ptr = (u64*)gfxCtx->workBuffer; OPEN_DISPS(gfxCtx, "../graph.c", 828); - task->data_size = (u32)WORK_DISP - (u32)gfxCtx->workBuffer; + task->data_size = (uintptr_t)WORK_DISP - (uintptr_t)gfxCtx->workBuffer; CLOSE_DISPS(gfxCtx, "../graph.c", 830); { s32 pad2; } // Necessary to match stack usage - task->yield_data_ptr = (u64*)gGfxSPTaskYieldBuffer; + task->yield_data_ptr = gGfxSPTaskYieldBuffer; task->yield_data_size = sizeof(gGfxSPTaskYieldBuffer); scTask->next = NULL; diff --git a/src/code/sys_ucode.c b/src/code/sys_ucode.c index 5ead2320c..2be2566e8 100644 --- a/src/code/sys_ucode.c +++ b/src/code/sys_ucode.c @@ -1,20 +1,20 @@ #include "global.h" -u32 D_8012DBA0 = (u32)&D_80155F50; -u32 D_8012DBA4 = (u32)&D_80157580; +u64* sDefaultGSPUCodeText = gspF3DZEX2_NoN_PosLight_fifoTextStart; +u64* sDefaultGSPUCodeData = gspF3DZEX2_NoN_PosLight_fifoDataStart; -u32 SysUcode_GetUCodeBoot(void) { - return &D_80009320; +u64* SysUcode_GetUCodeBoot(void) { + return rspbootTextStart; } -u32 SysUcode_GetUCodeBootSize(void) { - return (u32)&D_800093F0 - (u32)&D_80009320; +size_t SysUcode_GetUCodeBootSize(void) { + return (size_t)((u8*)rspbootTextEnd - (u8*)rspbootTextStart); } -u32 SysUcode_GetUCode(void) { - return D_8012DBA0; +u64* SysUcode_GetUCode(void) { + return sDefaultGSPUCodeText; } -u32 SysUcode_GetUCodeData(void) { - return D_8012DBA4; +u64* SysUcode_GetUCodeData(void) { + return sDefaultGSPUCodeData; } diff --git a/src/code/z_jpeg.c b/src/code/z_jpeg.c index fbb4dc6f6..2df2f57cc 100644 --- a/src/code/z_jpeg.c +++ b/src/code/z_jpeg.c @@ -18,47 +18,47 @@ * Configures and schedules a JPEG decoder task and waits for it to finish. */ void Jpeg_ScheduleDecoderTask(JpegContext* ctx) { - static OSTask_t sJpegTask = { - M_NJPEGTASK, // type - 0, // flags - NULL, // ucode_boot - 0, // ucode_boot_size - gJpegUCode, // ucode - 0x1000, // ucode_size - gJpegUCodeData, // ucode_data - 0x800, // ucode_data_size - NULL, // dram_stack - 0, // dram_stack_size - NULL, // output_buff - NULL, // output_buff_size - NULL, // data_ptr - sizeof(JpegTaskData), // data_size - NULL, // yield_data_ptr - 0x200, // yield_data_size + static OSTask sJpegTask = { + M_NJPEGTASK, // type + 0, // flags + NULL, // ucode_boot + 0, // ucode_boot_size + njpgdspMainTextStart, // ucode + SP_UCODE_SIZE, // ucode_size + njpgdspMainDataStart, // ucode_data + SP_UCODE_DATA_SIZE, // ucode_data_size + NULL, // dram_stack + 0, // dram_stack_size + NULL, // output_buff + NULL, // output_buff_size + NULL, // data_ptr + sizeof(JpegTaskData), // data_size + NULL, // yield_data_ptr + sizeof(ctx->workBuf->yieldData), // yield_data_size }; JpegWork* workBuf = ctx->workBuf; s32 pad[2]; - workBuf->taskData.address = PHYSICAL_TO_VIRTUAL(&workBuf->data); + workBuf->taskData.address = VIRTUAL_TO_PHYSICAL(&workBuf->data); workBuf->taskData.mode = ctx->mode; workBuf->taskData.mbCount = 4; - workBuf->taskData.qTableYPtr = PHYSICAL_TO_VIRTUAL(&workBuf->qTableY); - workBuf->taskData.qTableUPtr = PHYSICAL_TO_VIRTUAL(&workBuf->qTableU); - workBuf->taskData.qTableVPtr = PHYSICAL_TO_VIRTUAL(&workBuf->qTableV); + workBuf->taskData.qTableYPtr = VIRTUAL_TO_PHYSICAL(&workBuf->qTableY); + workBuf->taskData.qTableUPtr = VIRTUAL_TO_PHYSICAL(&workBuf->qTableU); + workBuf->taskData.qTableVPtr = VIRTUAL_TO_PHYSICAL(&workBuf->qTableV); - sJpegTask.flags = 0; - sJpegTask.ucode_boot = SysUcode_GetUCodeBoot(); - sJpegTask.ucode_boot_size = SysUcode_GetUCodeBootSize(); - sJpegTask.yield_data_ptr = (u64*)&workBuf->yieldData; - sJpegTask.data_ptr = (u64*)&workBuf->taskData; + sJpegTask.t.flags = 0; + sJpegTask.t.ucode_boot = SysUcode_GetUCodeBoot(); + sJpegTask.t.ucode_boot_size = SysUcode_GetUCodeBootSize(); + sJpegTask.t.yield_data_ptr = workBuf->yieldData; + sJpegTask.t.data_ptr = (u64*)&workBuf->taskData; ctx->scTask.next = NULL; ctx->scTask.flags = OS_SC_NEEDS_RSP; ctx->scTask.msgQueue = &ctx->mq; ctx->scTask.msg = NULL; ctx->scTask.framebuffer = NULL; - ctx->scTask.list.t = sJpegTask; + ctx->scTask.list = sJpegTask; osSendMesg(&gSchedContext.cmdQueue, (OSMesg)&ctx->scTask, OS_MESG_BLOCK); Sched_SendEntryMsg(&gSchedContext); // osScKickEntryMsg diff --git a/src/code/z_room.c b/src/code/z_room.c index e03ecfebe..d1446872f 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -336,8 +336,7 @@ void func_80096680(GlobalContext* globalCtx, Room* room, u32 flags) { } if (drawBg) { - // gSPLoadUcodeL(POLY_OPA_DISP++, rspS2DEX)? - gSPLoadUcodeEx(POLY_OPA_DISP++, OS_K0_TO_PHYSICAL(D_80113070), OS_K0_TO_PHYSICAL(D_801579A0), 0x800); + gSPLoadUcodeL(POLY_OPA_DISP++, gspS2DEX2d_fifo); { Vec3f sp60; @@ -350,8 +349,7 @@ void func_80096680(GlobalContext* globalCtx, Room* room, u32 flags) { POLY_OPA_DISP = spA8; } - // gSPLoadUcode(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData())? - gSPLoadUcodeEx(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData(), 0x800); + gSPLoadUcode(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData()); } } @@ -432,8 +430,7 @@ void func_80096B6C(GlobalContext* globalCtx, Room* room, u32 flags) { } if (drawBg) { - // gSPLoadUcodeL(POLY_OPA_DISP++, rspS2DEX)? - gSPLoadUcodeEx(POLY_OPA_DISP++, OS_K0_TO_PHYSICAL(D_80113070), OS_K0_TO_PHYSICAL(D_801579A0), 0x800); + gSPLoadUcodeL(POLY_OPA_DISP++, gspS2DEX2d_fifo); { Vec3f skyboxOffset; @@ -447,8 +444,7 @@ void func_80096B6C(GlobalContext* globalCtx, Room* room, u32 flags) { POLY_OPA_DISP = gfx; } - // gSPLoadUcode(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData())? - gSPLoadUcodeEx(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData(), 0x800); + gSPLoadUcode(POLY_OPA_DISP++, SysUcode_GetUCode(), SysUcode_GetUCodeData()); } } |
