diff options
| author | rozlette <uberpanzermensch@gmail.com> | 2020-03-15 01:13:53 -0500 |
|---|---|---|
| committer | rozlette <uberpanzermensch@gmail.com> | 2020-03-15 01:13:53 -0500 |
| commit | ff958ad932b29c830afa8d2bfd6dd6a0616c93a8 (patch) | |
| tree | 916cf38da1595716bcb37651b75f7ff22a93399a /src/boot_O2_g3 | |
| parent | 0c35be2381ba8b46b0a1a2d9b625cf02d04cdb68 (diff) | |
Rename many functions, structs, and variables to match the oot decomp. Some things have not been renamed as their respective files have not been decompiled yet.
Diffstat (limited to 'src/boot_O2_g3')
| -rw-r--r-- | src/boot_O2_g3/boot_0x80080060.c | 14 | ||||
| -rw-r--r-- | src/boot_O2_g3/boot_0x800805E0.c | 61 | ||||
| -rw-r--r-- | src/boot_O2_g3/boot_main.c | 14 | ||||
| -rw-r--r-- | src/boot_O2_g3/idle.c | 38 | ||||
| -rw-r--r-- | src/boot_O2_g3/irqmgr.c | 72 | ||||
| -rw-r--r-- | src/boot_O2_g3/viconfig.c | 61 | ||||
| -rw-r--r-- | src/boot_O2_g3/z_std_dma.c | 52 |
7 files changed, 156 insertions, 156 deletions
diff --git a/src/boot_O2_g3/boot_0x80080060.c b/src/boot_O2_g3/boot_0x80080060.c deleted file mode 100644 index 6989e3258..000000000 --- a/src/boot_O2_g3/boot_0x80080060.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <ultra64.h> -#include <global.h> - -void start(void) { - StackCheck_Init(&bootStackEntry, (u32)bootStack, (u32)&bootStack[1024], 0, -1, "boot"); - osMemSize = osGetMemSize(); - func_800818F4(); - osInitialize(); - osUnmapTLBAll(); - D_80096B40 = osCartRomInit(); - StackCheck_Init(&idleStackEntry, (u32)idleStack, (u32)&idleStack[1024], 0, 256, "idle"); - osCreateThread(&idleOSThread, 1, (osCreateThread_func)Idle_ThreadEntry, 0, &idleStack[1024], 12); - osStartThread(&idleOSThread); -} diff --git a/src/boot_O2_g3/boot_0x800805E0.c b/src/boot_O2_g3/boot_0x800805E0.c deleted file mode 100644 index 06d9036f0..000000000 --- a/src/boot_O2_g3/boot_0x800805E0.c +++ /dev/null @@ -1,61 +0,0 @@ -#include <ultra64.h> -#include <global.h> - -#ifdef NON_MATCHING -UNK_RET func_800805E0(UNK_TYPE a0) { - if (a0 != 0) { - switch (osTvType) { - case 2: - osViSetMode(&osViModeMpalLan1); - break; - case 0: - osViSetMode(&osViModePalLan1); - break; - case 1: - default: - osViSetMode(&osViModeNtscLan1); - break; - } - - // TODO v0 is used here instead of a0. Is this a 7.1 optimization? - if (viEnabledSpecialFeatures != 0) { - osViSetSpecialFeatures(viEnabledSpecialFeatures); - } - - if (screenYScale != 1) { - osViSetYScale(1); - } - } else { - osViSetMode(&D_8009B240); - - if (D_80096B28 != 0) { - func_80087E00(D_80096B28); - } - - // TODO v0 is used here instead of a0. Is this a 7.1 optimization? - if (viEnabledSpecialFeatures != 0) { - osViSetSpecialFeatures(viEnabledSpecialFeatures); - } - - if (screenXScale != 1) { - osViSetXScale(screenXScale); - } - - if (screenYScale != 1) { - osViSetYScale(screenYScale); - } - } - - D_80096B24 = a0; -} -#else -GLOBAL_ASM("./asm/non_matchings/boot_0x800805E0/func_800805E0.asm") -#endif - -UNK_RET func_80080748(void) { - if (D_80096B24 != 0) { - osViRepeatLine(1); - } else { - osViRepeatLine(0); - } -} diff --git a/src/boot_O2_g3/boot_main.c b/src/boot_O2_g3/boot_main.c new file mode 100644 index 000000000..9bcdcca0c --- /dev/null +++ b/src/boot_O2_g3/boot_main.c @@ -0,0 +1,14 @@ +#include <ultra64.h> +#include <global.h> + +void bootproc(void) { + StackCheck_Init(&sBootThreadInfo, (u32)sBootThreadStack, (u32)&sBootThreadStack[1024], 0, -1, "boot"); + osMemSize = osGetMemSize(); + func_800818F4(); + osInitialize(); + osUnmapTLBAll(); + gCartHandle = osCartRomInit(); + StackCheck_Init(&sIdleThreadInfo, (u32)sIdleThreadStack, (u32)&sIdleThreadStack[1024], 0, 256, "idle"); + osCreateThread(&sIdleThread, 1, (osCreateThread_func)Idle_ThreadEntry, 0, &sIdleThreadStack[1024], 12); + osStartThread(&sIdleThread); +} diff --git a/src/boot_O2_g3/idle.c b/src/boot_O2_g3/idle.c index fac5a2fa3..6202df871 100644 --- a/src/boot_O2_g3/idle.c +++ b/src/boot_O2_g3/idle.c @@ -2,11 +2,11 @@ #include <global.h> u8 D_80096B20 = 1; -vu8 D_80096B24 = 1; -u8 D_80096B28 = 0; -u32 viEnabledSpecialFeatures = 0x42; -f32 screenXScale = 1.0f; -f32 screenYScale = 1.0f; +vu8 gViConfigUseDefault = 1; +u8 gViConfigAdditionalScanLines = 0; +u32 gViConfigFeatures = 0x42; +f32 gViConfigXScale = 1.0f; +f32 gViConfigYScale = 1.0f; void Idle_ClearMemory(void* begin, void* end){ if (begin < end) { @@ -28,9 +28,9 @@ GLOBAL_ASM("./asm/non_matchings/idle/Idle_InitFramebuffer.asm") void Idle_InitScreen(void) { Idle_InitFramebuffer((u32*)&D_80000500, 0x25800, 0x00010001); - func_800805E0(0); + ViConfig_UpdateVi(0); osViSwapBuffer(&D_80000500); - osViRepeatLine(0); + osViBlack(0); } void Idle_InitMemory(void) { @@ -43,7 +43,7 @@ void Idle_InitMemory(void) { } #ifdef NON_MATCHING -// regalloc around Dmamgr_SendRequest +// regalloc around DmaMgr_SendRequestImpl void Idle_InitCodeAndMemory(void) { DmaRequest dmaReq; OSMesgQueue queue; @@ -52,15 +52,15 @@ void Idle_InitCodeAndMemory(void) { osCreateMesgQueue(&queue, &mesg, 1); - oldSize = dmamgrChunkSize; - dmamgrChunkSize = 0; + oldSize = sDmaMgrDmaBuffSize; + sDmaMgrDmaBuffSize = 0; - Dmamgr_SendRequest(&dmaReq, (u32)&code_text_start, (u32)&code_vrom_start, (u32)&code_vrom_end - (u32)&code_vrom_start, 0, &queue, 0); + DmaMgr_SendRequestImpl(&dmaReq, (u32)&code_text_start, (u32)&code_vrom_start, (u32)&code_vrom_end - (u32)&code_vrom_start, 0, &queue, 0); Idle_InitScreen(); Idle_InitMemory(); osRecvMesg(&queue, 0, 1); - dmamgrChunkSize = oldSize; + sDmaMgrDmaBuffSize = oldSize; Idle_ClearMemory(&code_bss_start, &code_bss_end); } @@ -68,9 +68,9 @@ void Idle_InitCodeAndMemory(void) { GLOBAL_ASM("./asm/non_matchings/idle/Idle_InitCodeAndMemory.asm") #endif -void Idle_MainThreadEntry(void* arg) { +void Main_ThreadEntry(void* arg) { StackCheck_Init(&irqmgrStackEntry, (u32)&irqmgrStack, (u32)&irqmgrStack[1280], 0, 256, "irqmgr"); - IrqMgr_Start(&irqmgrContext, &irqmgrStackEntry, 18, 1); + IrqMgr_Create(&irqmgrContext, &irqmgrStackEntry, 18, 1); Dmamgr_Start(); Idle_InitCodeAndMemory(); main(arg); @@ -80,9 +80,9 @@ void Idle_MainThreadEntry(void* arg) { void func_8008038C(void) { osCreateViManager(254); - viEnabledSpecialFeatures = 66; - screenXScale = 1.0; - screenYScale = 1.0; + gViConfigFeatures = 66; + gViConfigXScale = 1.0; + gViConfigYScale = 1.0; switch (osTvType) { case 1: @@ -96,7 +96,7 @@ void func_8008038C(void) { case 0: D_8009B290 = 44; D_8009B240 = D_800980E0; - screenYScale = 0.833f; + gViConfigYScale = 0.833f; break; } @@ -107,7 +107,7 @@ void Idle_ThreadEntry(void* arg) { func_8008038C(); osCreatePiManager(150, &D_8009B228, D_8009B160, 50); StackCheck_Init(&mainStackEntry, (u32)&mainStack, (u32)&mainStack[2304], 0, 1024, "main"); - osCreateThread(&mainOSThread, 3, (osCreateThread_func)Idle_MainThreadEntry, arg, &mainStack[2304], 12); + osCreateThread(&mainOSThread, 3, (osCreateThread_func)Main_ThreadEntry, arg, &mainStack[2304], 12); osStartThread(&mainOSThread); osSetThreadPri(NULL, 0); diff --git a/src/boot_O2_g3/irqmgr.c b/src/boot_O2_g3/irqmgr.c index 2558aacfe..14c3e9bd6 100644 --- a/src/boot_O2_g3/irqmgr.c +++ b/src/boot_O2_g3/irqmgr.c @@ -6,12 +6,12 @@ #define OS_CPU_COUNTER (OS_CLOCK_RATE*3/4) #define OS_USEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625LL))/(1000000LL/15625LL)) -vs32 gPrenmiStage = 0; -volatile OSTime sLastPrenmiTime = 0; -vu64 gLastFrameDuration = 0; -s32 sFrameCount = 0; +vs32 gIrqMgrResetStatus = 0; +volatile OSTime sIrqMgrResetTime = 0; +volatile OSTime sIrqMgrRetraceTime = 0; +s32 sIrqMgrRetraceCount = 0; -void IrqMgr_AddCallback(IrqMgr* irqmgr, OSMesgQueueListNode* param_2, OSMesgQueue* param_3) { +void IrqMgr_AddClient(IrqMgr* irqmgr, OSMesgQueueListNode* param_2, OSMesgQueue* param_3) { u32 saveMask; saveMask = osSetIntMask(1); @@ -23,14 +23,14 @@ void IrqMgr_AddCallback(IrqMgr* irqmgr, OSMesgQueueListNode* param_2, OSMesgQueu osSetIntMask(saveMask); if (irqmgr->prenmiStage > 0) { - osSendMesg(param_2->queue, &irqmgr->prenmi1Msg, 0); + osSendMesg(param_2->queue, &irqmgr->prenmiMsg.type, 0); } if (irqmgr->prenmiStage > 1) { - osSendMesg(param_2->queue, &irqmgr->prenmi2Msg, 0); + osSendMesg(param_2->queue, &irqmgr->nmiMsg.type, 0); } } -void IrqMgr_RemoveCallback(IrqMgr* irqmgr, OSMesgQueueListNode* remove) { +void IrqMgr_RemoveClient(IrqMgr* irqmgr, OSMesgQueueListNode* remove) { OSMesgQueueListNode* iter; OSMesgQueueListNode* last; u32 saveMask; @@ -56,7 +56,7 @@ void IrqMgr_RemoveCallback(IrqMgr* irqmgr, OSMesgQueueListNode* remove) { osSetIntMask(saveMask); } -void IrqMgr_NotifyAllCallbacks(IrqMgr* irqmgr, OSMesg msg) { +void IrqMgr_SendMesgForClient(IrqMgr* irqmgr, OSMesg msg) { OSMesgQueueListNode* iter = irqmgr->callbacks; while (iter != NULL) { @@ -65,7 +65,7 @@ void IrqMgr_NotifyAllCallbacks(IrqMgr* irqmgr, OSMesg msg) { } } -void IrqMgr_NotifyAllCallbacksWithCapacity(IrqMgr* irqmgr, OSMesg msg) { +void IrqMgr_JamMesgForClient(IrqMgr* irqmgr, OSMesg msg) { OSMesgQueueListNode* iter = irqmgr->callbacks; while (iter != NULL) { @@ -76,53 +76,53 @@ void IrqMgr_NotifyAllCallbacksWithCapacity(IrqMgr* irqmgr, OSMesg msg) { } } -void IrqMgr_HandlePrenmi1(IrqMgr* irqmgr) { - gPrenmiStage = 1; +void IrqMgr_HandlePreNMI(IrqMgr* irqmgr) { + gIrqMgrResetStatus = 1; irqmgr->prenmiStage = 1; - sLastPrenmiTime = irqmgr->lastPrenmiTime = osGetTime(); + sIrqMgrResetTime = irqmgr->lastPrenmiTime = osGetTime(); // Wait .45 seconds then generate a stage 2 prenmi interrupt osSetTimer(&irqmgr->prenmiTimer, OS_USEC_TO_CYCLES(450000), 0, &irqmgr->irqQueue, (OSMesg)0x29F); - IrqMgr_NotifyAllCallbacksWithCapacity(irqmgr, &irqmgr->prenmi1Msg); + IrqMgr_JamMesgForClient(irqmgr, &irqmgr->prenmiMsg.type); } -void IrqMgr_CheckThreadStatusImpl(void) { +void IrqMgr_CheckStack(void) { StackCheck_Check(NULL); } -void IrqMgr_HandlePrenmi2(IrqMgr* irqmgr) { - gPrenmiStage = 2; +void IrqMgr_HandlePRENMI450(IrqMgr* irqmgr) { + gIrqMgrResetStatus = 2; irqmgr->prenmiStage = 2; // Wait .03 seconds then generate a stage 3 prenmi interrupt osSetTimer(&irqmgr->prenmiTimer, OS_USEC_TO_CYCLES(30000), 0, &irqmgr->irqQueue, (OSMesg)0x2A0); - IrqMgr_NotifyAllCallbacks(irqmgr, &irqmgr->prenmi2Msg); + IrqMgr_SendMesgForClient(irqmgr, &irqmgr->nmiMsg.type); } -void IrqMgr_HandlePrenmi3(IrqMgr* irqmgr) { +void IrqMgr_HandlePRENMI480(IrqMgr* irqmgr) { // Wait .52 seconds. After this we will have waited an entire second osSetTimer(&irqmgr->prenmiTimer, OS_USEC_TO_CYCLES(520000), 0, &irqmgr->irqQueue, (OSMesg)0x2A1); - func_8008D710(); + osAfterPreNMI(); } -void IrqMgr_CheckThreadStatus(IrqMgr* irqmgr) { - IrqMgr_CheckThreadStatusImpl(); +void IrqMgr_HandlePRENMI500(IrqMgr* irqmgr) { + IrqMgr_CheckStack(); } -void IrqMgr_HandleFrame(IrqMgr* irqmgr) { - if (gLastFrameDuration == 0) { +void IrqMgr_HandleRetrace(IrqMgr* irqmgr) { + if (sIrqMgrRetraceTime == 0) { if (irqmgr->lastFrameTime == 0) { irqmgr->lastFrameTime = osGetTime(); } else { - gLastFrameDuration = osGetTime() - irqmgr->lastFrameTime; + sIrqMgrRetraceTime = osGetTime() - irqmgr->lastFrameTime; } } - sFrameCount += 1; - IrqMgr_NotifyAllCallbacks(irqmgr,irqmgr); + sIrqMgrRetraceCount += 1; + IrqMgr_SendMesgForClient(irqmgr,irqmgr); } void IrqMgr_ThreadEntry(IrqMgr* irqmgr) { @@ -137,29 +137,29 @@ void IrqMgr_ThreadEntry(IrqMgr* irqmgr) { osRecvMesg(&irqmgr->irqQueue, (OSMesg*)&interrupt, 1); switch (interrupt) { case 0x29A: - IrqMgr_HandleFrame(irqmgr); + IrqMgr_HandleRetrace(irqmgr); break; case 0x29D: - IrqMgr_HandlePrenmi1(irqmgr); + IrqMgr_HandlePreNMI(irqmgr); break; case 0x29F: - IrqMgr_HandlePrenmi2(irqmgr); + IrqMgr_HandlePRENMI450(irqmgr); break; case 0x2A0: - IrqMgr_HandlePrenmi3(irqmgr); + IrqMgr_HandlePRENMI480(irqmgr); break; case 0x2A1: - IrqMgr_CheckThreadStatus(irqmgr); + IrqMgr_HandlePRENMI500(irqmgr); break; } } } -void IrqMgr_Start(IrqMgr* irqmgr, void* stack, OSPri pri, u8 retraceCount) { +void IrqMgr_Create(IrqMgr* irqmgr, void* stack, OSPri pri, u8 retraceCount) { irqmgr->callbacks = NULL; - irqmgr->verticalRetraceMesg = 1; - irqmgr->prenmi1Msg = 4; - irqmgr->prenmi2Msg = 3; + irqmgr->verticalRetraceMesg.type = 1; + irqmgr->prenmiMsg.type = 4; + irqmgr->nmiMsg.type = 3; irqmgr->prenmiStage = 0; irqmgr->lastPrenmiTime = 0; diff --git a/src/boot_O2_g3/viconfig.c b/src/boot_O2_g3/viconfig.c new file mode 100644 index 000000000..b28362947 --- /dev/null +++ b/src/boot_O2_g3/viconfig.c @@ -0,0 +1,61 @@ +#include <ultra64.h> +#include <global.h> + +#ifdef NON_MATCHING +void ViConfig_UpdateVi(u32 arg0) { + if (arg0 != 0) { + switch (osTvType) { + case 2: + osViSetMode(&osViModeMpalLan1); + break; + case 0: + osViSetMode(&osViModePalLan1); + break; + case 1: + default: + osViSetMode(&osViModeNtscLan1); + break; + } + + // TODO v0 is used here instead of a0. Is this a 7.1 optimization? + if (gViConfigFeatures != 0) { + osViSetSpecialFeatures(gViConfigFeatures); + } + + if (gViConfigYScale != 1) { + osViSetYScale(1); + } + } else { + osViSetMode(&D_8009B240); + + if (gViConfigAdditionalScanLines != 0) { + func_80087E00(gViConfigAdditionalScanLines); + } + + // TODO v0 is used here instead of a0. Is this a 7.1 optimization? + if (gViConfigFeatures != 0) { + osViSetSpecialFeatures(gViConfigFeatures); + } + + if (gViConfigXScale != 1) { + osViSetXScale(gViConfigXScale); + } + + if (gViConfigYScale != 1) { + osViSetYScale(gViConfigYScale); + } + } + + gViConfigUseDefault = arg0; +} +#else +GLOBAL_ASM("./asm/non_matchings/viconfig/ViConfig_UpdateVi.asm") +#endif + +void ViConfig_UpdateBlack(void) { + if (gViConfigUseDefault != 0) { + osViBlack(1); + } else { + osViBlack(0); + } +} diff --git a/src/boot_O2_g3/z_std_dma.c b/src/boot_O2_g3/z_std_dma.c index a606c7586..56dcefc40 100644 --- a/src/boot_O2_g3/z_std_dma.c +++ b/src/boot_O2_g3/z_std_dma.c @@ -1,14 +1,14 @@ #include <ultra64.h> #include <global.h> -UNK_TYPE4 dmamgrChunkSize = 0x2000; +UNK_TYPE4 sDmaMgrDmaBuffSize = 0x2000; -s32 Dmamgr_DoDmaTransfer(u32 a0, void* a1, u32 a2) { +s32 DmaMgr_DMARomToRam(u32 a0, void* a1, u32 a2) { OSIoMesg sp60; OSMesgQueue sp48; OSMesg sp44; s32 ret; - u32 s0 = dmamgrChunkSize; + u32 s0 = sDmaMgrDmaBuffSize; osInvalDCache(a1, a2); osCreateMesgQueue(&sp48, &sp44, 1); @@ -20,7 +20,7 @@ s32 Dmamgr_DoDmaTransfer(u32 a0, void* a1, u32 a2) { sp60.devAddr = (u32)a0; sp60.dramAddr = a1; sp60.size = s0; - ret = osEPiStartDma(D_80096B40, &sp60, 0); + ret = osEPiStartDma(gCartHandle, &sp60, 0); if (ret) goto END; osRecvMesg(&sp48, NULL, 1); @@ -34,7 +34,7 @@ s32 Dmamgr_DoDmaTransfer(u32 a0, void* a1, u32 a2) { sp60.devAddr = (u32)a0; sp60.dramAddr = a1; sp60.size = (u32)a2; - ret = osEPiStartDma(D_80096B40, &sp60, 0); + ret = osEPiStartDma(gCartHandle, &sp60, 0); if (ret) goto END; osRecvMesg(&sp48, NULL, 1); @@ -45,12 +45,12 @@ END: return ret; } -void Dmamgr_osEPiStartDmaWrapper(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) { +void DmaMgr_DmaCallback0(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction) { osEPiStartDma(pihandle, mb, direction); } -DmadataEntry* Dmamgr_FindDmaEntry(u32 a0) { - DmadataEntry* curr; +DmaEntry* Dmamgr_FindDmaEntry(u32 a0) { + DmaEntry* curr; for (curr = dmadata; curr->vromEnd != 0; curr++) { if (a0 < curr->vromStart) continue; @@ -63,7 +63,7 @@ DmadataEntry* Dmamgr_FindDmaEntry(u32 a0) { } u32 Dmamgr_TranslateVromToRom(u32 a0) { - DmadataEntry* v0 = Dmamgr_FindDmaEntry(a0); + DmaEntry* v0 = Dmamgr_FindDmaEntry(a0); if (v0 != NULL) { if (v0->romEnd == 0) { @@ -81,7 +81,7 @@ u32 Dmamgr_TranslateVromToRom(u32 a0) { } s32 Dmamgr_FindDmaIndex(u32 a0) { - DmadataEntry* v0 = Dmamgr_FindDmaEntry(a0); + DmaEntry* v0 = Dmamgr_FindDmaEntry(a0); if (v0 != NULL) { return v0 - dmadata; @@ -96,7 +96,7 @@ char* func_800809F4(u32 a0) { } #ifdef NON_MATCHING -void Dmamgr_HandleRequest(DmaRequest* a0) { +void DmaMgr_ProcessMsg(DmaRequest* a0) { u32 sp34; u32 sp30; UNK_TYPE sp2C; @@ -107,7 +107,7 @@ void Dmamgr_HandleRequest(DmaRequest* a0) { UNK_TYPE sp18; sp34 = a0->vromStart; - sp30 = a0->vramStart; + sp30 = a0->dramAddr; sp2C = a0->size; sp1C = Dmamgr_FindDmaIndex(sp34); @@ -117,7 +117,7 @@ void Dmamgr_HandleRequest(DmaRequest* a0) { if (dmadata[sp1C].vromEnd < (sp2C + sp34)) { Fault_AddHungupAndCrash(dmamgrString800981C4, 499); } - Dmamgr_DoDmaTransfer((dmadata[sp1C].romStart + sp34) - dmadata[sp1C].vromStart, (u8*)sp30, sp2C); + DmaMgr_DMARomToRam((dmadata[sp1C].romStart + sp34) - dmadata[sp1C].vromStart, (u8*)sp30, sp2C); return; } @@ -141,7 +141,7 @@ void Dmamgr_HandleRequest(DmaRequest* a0) { } } #else -GLOBAL_ASM("./asm/non_matchings/z_std_dma/Dmamgr_HandleRequest.asm") +GLOBAL_ASM("./asm/non_matchings/z_std_dma/DmaMgr_ProcessMsg.asm") #endif void Dmamgr_ThreadEntry(void* a0) { @@ -153,30 +153,30 @@ void Dmamgr_ThreadEntry(void* a0) { osRecvMesg(&dmamgrMsq, &sp34, 1); if (sp34 == NULL) return; s0 = (DmaRequest*)sp34; - Dmamgr_HandleRequest(s0); - if (s0->callback == NULL) continue; - osSendMesg(s0->callback, s0->callbackMesg, 0); + DmaMgr_ProcessMsg(s0); + if (s0->notifyQueue == NULL) continue; + osSendMesg(s0->notifyQueue, s0->notifyMsg, 0); } } -s32 Dmamgr_SendRequest(DmaRequest* request, u32 vramStart, u32 vromStart, u32 size, UNK_TYPE4 unused, OSMesgQueue* callback, void* callbackMesg) { - if (gPrenmiStage >= 2) { +s32 DmaMgr_SendRequestImpl(DmaRequest* request, u32 vramStart, u32 vromStart, u32 size, UNK_TYPE4 unused, OSMesgQueue* callback, void* callbackMesg) { + if (gIrqMgrResetStatus >= 2) { return -2; } request->vromStart = vromStart; - request->vramStart = vramStart; + request->dramAddr = vramStart; request->size = size; request->unk14 = 0; - request->callback = callback; - request->callbackMesg = callbackMesg; + request->notifyQueue = callback; + request->notifyMsg = callbackMesg; osSendMesg(&dmamgrMsq, request, 1); return 0; } -s32 Dmamgr_SendRequestAndWait(u32 a0, u32 a1, u32 a2) { +s32 DmaMgr_SendRequest0(u32 a0, u32 a1, u32 a2) { DmaRequest sp48; OSMesgQueue sp30; OSMesg sp2C; @@ -184,7 +184,7 @@ s32 Dmamgr_SendRequestAndWait(u32 a0, u32 a1, u32 a2) { osCreateMesgQueue(&sp30, &sp2C, 1); - ret = Dmamgr_SendRequest(&sp48, a0, a1, a2, 0, &sp30, 0); + ret = DmaMgr_SendRequestImpl(&sp48, a0, a1, a2, 0, &sp30, 0); if (ret == -1) { return ret; @@ -198,9 +198,9 @@ s32 Dmamgr_SendRequestAndWait(u32 a0, u32 a1, u32 a2) { #ifdef NON_MATCHING // TODO missing a useless move initializing v0, and some reorderings void Dmamgr_Start() { - DmadataEntry* v0; + DmaEntry* v0; u32 v1; - Dmamgr_DoDmaTransfer((u32)&dmadata_vrom_start, dmadata, (u32)&dmadata_vrom_end - (u32)&dmadata_vrom_start); + DmaMgr_DMARomToRam((u32)&dmadata_vrom_start, dmadata, (u32)&dmadata_vrom_end - (u32)&dmadata_vrom_start); for (v0 = dmadata, v1 = 0; v0->vromEnd != 0; v0++, v1++); |
