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.

This commit is contained in:
rozlette
2020-03-15 01:13:53 -05:00
parent 0c35be2381
commit ff958ad932
42 changed files with 7946 additions and 7911 deletions
-14
View File
@@ -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);
}
-61
View File
@@ -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);
}
}
+14
View File
@@ -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);
}
+19 -19
View File
@@ -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);
+36 -36
View File
@@ -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;
+61
View File
@@ -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);
}
}
+26 -26
View File
@@ -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++);