sys_initial_check OK, documented, error message files debinarised (#437)

* OK

* Symbols and other documentation

* Remove externs

* spec

* More documentation, decompile the texture files,
some uintptr_t and size_t

* Top-of-file comment

* Move symbols back into right order

* Use some defines

* Missed an osTvType and a size_t

* Add missing header to os.h

* Use segment symbol macros

* Remove duplicate header

* Address review suggestions
This commit is contained in:
EllipticEllipsis
2021-11-15 19:57:16 -03:00
committed by GitHub
parent 20f3a190f4
commit 7134e81898
19 changed files with 199 additions and 76 deletions
-1
View File
@@ -1,6 +1,5 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "prevent_bss_reordering.h"
UNK_TYPE4 D_8009BE30;
UNK_TYPE4 D_8009BE34;
+1 -1
View File
@@ -714,7 +714,7 @@ void Fault_CommitFB() {
osViSetYScale(1.0f);
osViSetMode(&osViModeNtscLan1);
osViSetSpecialFeatures(0x42); // gama_disable|dither_fliter_enable_aa_mode3_disable
osViBlack(0);
osViBlack(false);
if (sFaultContext->fb) {
fb = sFaultContext->fb;
+1 -1
View File
@@ -5,7 +5,7 @@ extern const u32 sFaultDrawerFont[];
FaultDrawer* sFaultDrawContext = &sFaultDrawerStruct;
FaultDrawer sFaultDrawerDefault = {
(u16*)0x803DA800, // fb - TODO map out buffers in this region and avoid hard-coded pointer
(u16*)FAULT_FB_ADDRESS, // fb
SCREEN_WIDTH, // w
SCREEN_HEIGHT, // h
16, // yStart
+9 -9
View File
@@ -19,11 +19,11 @@ OSMesgQueue gPiMgrCmdQ;
void Idle_ClearMemory(void* begin, void* end) {
if (begin < end) {
bzero(begin, (u32)end - (u32)begin);
bzero(begin, (uintptr_t)end - (uintptr_t)begin);
}
}
void Idle_InitFramebuffer(u32* ptr, u32 numBytes, u32 value) {
void Idle_InitFramebuffer(u32* ptr, size_t numBytes, u32 value) {
s32 temp = sizeof(u32);
while (numBytes) {
@@ -36,7 +36,7 @@ void Idle_InitScreen(void) {
Idle_InitFramebuffer((u32*)gFramebuffer1, 0x25800, 0x00010001);
ViConfig_UpdateVi(0);
osViSwapBuffer(gFramebuffer1);
osViBlack(0);
osViBlack(false);
}
void Idle_InitMemory(void) {
@@ -52,7 +52,7 @@ void Idle_InitCodeAndMemory(void) {
DmaRequest dmaReq;
OSMesgQueue queue;
OSMesg mesg;
u32 oldSize;
size_t oldSize;
osCreateMesgQueue(&queue, &mesg, 1);
@@ -71,7 +71,7 @@ void Idle_InitCodeAndMemory(void) {
}
void Main_ThreadEntry(void* arg) {
StackCheck_Init(&sIrqMgrStackInfo, sIrqMgrStack, sIrqMgrStack + sizeof(sIrqMgrStack), 0, 256, "irqmgr");
StackCheck_Init(&sIrqMgrStackInfo, sIrqMgrStack, sIrqMgrStack + sizeof(sIrqMgrStack), 0, 0x100, "irqmgr");
IrqMgr_Init(&gIrqMgr, &sIrqMgrStackInfo, Z_PRIORITY_IRQMGR, 1);
DmaMgr_Start();
Idle_InitCodeAndMemory();
@@ -87,15 +87,15 @@ void Idle_InitVideo(void) {
gViConfigYScale = 1.0;
switch (osTvType) {
case 1:
case OS_TV_NTSC:
D_8009B290 = 2;
gViConfigMode = osViModeNtscLan1;
break;
case 2:
case OS_TV_MPAL:
D_8009B290 = 30;
gViConfigMode = osViModeMpalLan1;
break;
case 0:
case OS_TV_PAL:
D_8009B290 = 44;
gViConfigMode = osViModeFpalLan1;
gViConfigYScale = 0.833f;
@@ -108,7 +108,7 @@ void Idle_InitVideo(void) {
void Idle_ThreadEntry(void* arg) {
Idle_InitVideo();
osCreatePiManager(150, &gPiMgrCmdQ, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff));
StackCheck_Init(&sMainStackInfo, sMainStack, sMainStack + sizeof(sMainStack), 0, 1024, "main");
StackCheck_Init(&sMainStackInfo, sMainStack, sMainStack + sizeof(sMainStack), 0, 0x400, "main");
osCreateThread(&gMainThread, Z_THREAD_ID_MAIN, Main_ThreadEntry, arg, sMainStack + sizeof(sMainStack),
Z_PRIORITY_MAIN);
osStartThread(&gMainThread);
+5 -5
View File
@@ -3,13 +3,13 @@
void ViConfig_UpdateVi(u32 mode) {
if (mode != 0) {
switch (osTvType) {
case 2:
case OS_TV_MPAL:
osViSetMode(&osViModeMpalLan1);
break;
case 0:
case OS_TV_PAL:
osViSetMode(&osViModePalLan1);
break;
case 1:
case OS_TV_NTSC:
default:
osViSetMode(&osViModeNtscLan1);
break;
@@ -47,8 +47,8 @@ void ViConfig_UpdateVi(u32 mode) {
void ViConfig_UpdateBlack(void) {
if (gViConfigUseDefault != 0) {
osViBlack(1);
osViBlack(true);
} else {
osViBlack(0);
osViBlack(false);
}
}
+10 -10
View File
@@ -9,12 +9,12 @@ OSMesg sDmaMgrMsgs[32];
OSThread sDmaMgrThread;
u8 sDmaMgrStack[0x500];
s32 DmaMgr_DMARomToRam(u32 rom, void* ram, size_t size) {
s32 DmaMgr_DMARomToRam(uintptr_t rom, void* ram, size_t size) {
OSIoMesg ioMsg;
OSMesgQueue queue;
OSMesg msg[1];
s32 ret;
u32 buffSize = sDmaMgrDmaBuffSize;
size_t buffSize = sDmaMgrDmaBuffSize;
osInvalDCache(ram, size);
osCreateMesgQueue(&queue, msg, ARRAY_COUNT(msg));
@@ -23,7 +23,7 @@ s32 DmaMgr_DMARomToRam(u32 rom, void* ram, size_t size) {
while (buffSize < size) {
ioMsg.hdr.pri = 0;
ioMsg.hdr.retQueue = &queue;
ioMsg.devAddr = (u32)rom;
ioMsg.devAddr = rom;
ioMsg.dramAddr = ram;
ioMsg.size = buffSize;
ret = osEPiStartDma(gCartHandle, &ioMsg, 0);
@@ -39,9 +39,9 @@ s32 DmaMgr_DMARomToRam(u32 rom, void* ram, size_t size) {
}
ioMsg.hdr.pri = 0;
ioMsg.hdr.retQueue = &queue;
ioMsg.devAddr = (u32)rom;
ioMsg.devAddr = rom;
ioMsg.dramAddr = ram;
ioMsg.size = (u32)size;
ioMsg.size = size;
ret = osEPiStartDma(gCartHandle, &ioMsg, 0);
if (ret) {
goto END;
@@ -109,11 +109,11 @@ const char* func_800809F4(u32 a0) {
}
void DmaMgr_ProcessMsg(DmaRequest* req) {
u32 vrom;
uintptr_t vrom;
void* ram;
size_t size;
u32 romStart;
u32 romSize;
uintptr_t romStart;
size_t romSize;
DmaEntry* dmaEntry;
s32 index;
@@ -172,7 +172,7 @@ void DmaMgr_ThreadEntry(void* a0) {
}
}
s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, u32 vromStart, size_t size, UNK_TYPE4 unused,
s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, uintptr_t vromStart, size_t size, UNK_TYPE4 unused,
OSMesgQueue* queue, OSMesg msg) {
if (gIrqMgrResetStatus >= 2) {
return -2;
@@ -190,7 +190,7 @@ s32 DmaMgr_SendRequestImpl(DmaRequest* request, void* vramStart, u32 vromStart,
return 0;
}
s32 DmaMgr_SendRequest0(void* vramStart, u32 vromStart, size_t size) {
s32 DmaMgr_SendRequest0(void* vramStart, uintptr_t vromStart, size_t size) {
DmaRequest req;
OSMesgQueue queue;
OSMesg msg[1];