diff options
| author | Tharo <17233964+Thar0@users.noreply.github.com> | 2021-11-28 12:50:35 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-28 07:50:35 -0500 |
| commit | 982e7be1f7ed06dcd8a9026b461a5908747b8087 (patch) | |
| tree | f9ed3f8e91de3d173e57328963ef8d6553d59c92 /src/libultra_boot_O2 | |
| parent | 09f0dc84b8e77cf2078442069bed5ee7db34af44 (diff) | |
Preliminary fixes for boot/libultra (#1032)
* Preliminary fixes
* Missed a NULL
Diffstat (limited to 'src/libultra_boot_O2')
| -rw-r--r-- | src/libultra_boot_O2/__osEPiRawReadIo.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/__osEPiRawStartDma.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/__osEPiRawWriteIo.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/__osPiRawStartDma.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/osCartRomInit.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/osDriveRomInit.c | 4 | ||||
| -rw-r--r-- | src/libultra_boot_O2/osViGetNextFramebuffer.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/osViSetYScale.c | 2 | ||||
| -rw-r--r-- | src/libultra_boot_O2/vimgr.c | 30 |
9 files changed, 19 insertions, 29 deletions
diff --git a/src/libultra_boot_O2/__osEPiRawReadIo.c b/src/libultra_boot_O2/__osEPiRawReadIo.c index 6aa0bf0b6..513a246ee 100644 --- a/src/libultra_boot_O2/__osEPiRawReadIo.c +++ b/src/libultra_boot_O2/__osEPiRawReadIo.c @@ -4,7 +4,7 @@ s32 __osEPiRawReadIo(OSPiHandle* handle, u32 devAddr, u32* data) { s32 status; OSPiHandle* curHandle; - while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { + while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY)) { ; } diff --git a/src/libultra_boot_O2/__osEPiRawStartDma.c b/src/libultra_boot_O2/__osEPiRawStartDma.c index 5ae4d9c30..c8f4de5fd 100644 --- a/src/libultra_boot_O2/__osEPiRawStartDma.c +++ b/src/libultra_boot_O2/__osEPiRawStartDma.c @@ -4,7 +4,7 @@ s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dr s32 status; OSPiHandle* curHandle; - while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { + while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY)) { ; } diff --git a/src/libultra_boot_O2/__osEPiRawWriteIo.c b/src/libultra_boot_O2/__osEPiRawWriteIo.c index 7c5701e0d..dc169ecf7 100644 --- a/src/libultra_boot_O2/__osEPiRawWriteIo.c +++ b/src/libultra_boot_O2/__osEPiRawWriteIo.c @@ -4,7 +4,7 @@ s32 __osEPiRawWriteIo(OSPiHandle* handle, u32 devAddr, u32 data) { s32 status; OSPiHandle* curHandle; - while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { + while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY)) { ; } diff --git a/src/libultra_boot_O2/__osPiRawStartDma.c b/src/libultra_boot_O2/__osPiRawStartDma.c index f2c0a8488..b642b508f 100644 --- a/src/libultra_boot_O2/__osPiRawStartDma.c +++ b/src/libultra_boot_O2/__osPiRawStartDma.c @@ -3,7 +3,7 @@ s32 __osPiRawStartDma(s32 dir, u32 cartAddr, void* dramAddr, size_t size) { register s32 status = HW_REG(PI_STATUS_REG, u32); - while (status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { + while (status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY)) { status = HW_REG(PI_STATUS_REG, u32); } diff --git a/src/libultra_boot_O2/osCartRomInit.c b/src/libultra_boot_O2/osCartRomInit.c index f87d3bd05..ab54c1931 100644 --- a/src/libultra_boot_O2/osCartRomInit.c +++ b/src/libultra_boot_O2/osCartRomInit.c @@ -27,7 +27,7 @@ OSPiHandle* osCartRomInit(void) { __CartRomHandle.speed = 0; bzero(&__CartRomHandle.transferInfo, sizeof(__OSTranxInfo)); - while (status = HW_REG(PI_STATUS_REG, u32), status & PI_STATUS_ERROR) { + while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY)) { ; } diff --git a/src/libultra_boot_O2/osDriveRomInit.c b/src/libultra_boot_O2/osDriveRomInit.c index a9f2ea02b..8aed46dd6 100644 --- a/src/libultra_boot_O2/osDriveRomInit.c +++ b/src/libultra_boot_O2/osDriveRomInit.c @@ -5,7 +5,7 @@ OSPiHandle __DriveRomHandle; OSPiHandle* osDriveRomInit(void) { register s32 status; register u32 a; - register s32 prevInt; + register u32 prevInt; static u32 D_8000AC70 = 1; __osPiGetAccess(); @@ -22,7 +22,7 @@ OSPiHandle* osDriveRomInit(void) { __DriveRomHandle.speed = 0; bzero(&__DriveRomHandle.transferInfo, sizeof(__OSTranxInfo)); - while (status = HW_REG(PI_STATUS_REG, u32), status & PI_STATUS_ERROR) { + while (status = HW_REG(PI_STATUS_REG, u32), status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY)) { ; } diff --git a/src/libultra_boot_O2/osViGetNextFramebuffer.c b/src/libultra_boot_O2/osViGetNextFramebuffer.c index aaf44ce4a..a15a2db21 100644 --- a/src/libultra_boot_O2/osViGetNextFramebuffer.c +++ b/src/libultra_boot_O2/osViGetNextFramebuffer.c @@ -1,7 +1,7 @@ #include "global.h" void* osViGetNextFramebuffer(void) { - s32 prevInt = __osDisableInt(); + u32 prevInt = __osDisableInt(); void* buff = __osViNext->buffer; __osRestoreInt(prevInt); diff --git a/src/libultra_boot_O2/osViSetYScale.c b/src/libultra_boot_O2/osViSetYScale.c index 29128af76..0d7a5f968 100644 --- a/src/libultra_boot_O2/osViSetYScale.c +++ b/src/libultra_boot_O2/osViSetYScale.c @@ -1,7 +1,7 @@ #include "global.h" void osViSetYScale(f32 scale) { - register s32 prevInt = __osDisableInt(); + register u32 prevInt = __osDisableInt(); __osViNext->y.factor = scale; __osViNext->state |= 4; diff --git a/src/libultra_boot_O2/vimgr.c b/src/libultra_boot_O2/vimgr.c index b57b48d3b..5be0ba2e3 100644 --- a/src/libultra_boot_O2/vimgr.c +++ b/src/libultra_boot_O2/vimgr.c @@ -1,21 +1,12 @@ #include "global.h" #include "ultra64/internal.h" -typedef struct { - u16 unk00; - u8 unk02; - u32 unk04; - u8 pad[0xC]; - u16 unk14; - u16 unk16; -} viMesgStruct; - OSThread viThread; u8 viThreadStack[0x1000]; OSMesgQueue viEventQueue; OSMesg viEventBuf[6]; -viMesgStruct viRetraceMsg; -viMesgStruct viCounterMsg; +OSIoMesg viRetraceMsg; +OSIoMesg viCounterMsg; OSMgrArgs __osViDevMgr = { 0 }; u32 __additional_scanline = 0; @@ -30,12 +21,12 @@ void osCreateViManager(OSPri pri) { __osTimerServicesInit(); __additional_scanline = 0; osCreateMesgQueue(&viEventQueue, viEventBuf, 5); - viRetraceMsg.unk00 = 13; - viRetraceMsg.unk02 = 0; - viRetraceMsg.unk04 = 0; - viCounterMsg.unk00 = 14; - viCounterMsg.unk02 = 0; - viCounterMsg.unk04 = 0; + viRetraceMsg.hdr.type = 13; + viRetraceMsg.hdr.pri = 0; + viRetraceMsg.hdr.retQueue = NULL; + viCounterMsg.hdr.type = 14; + viCounterMsg.hdr.pri = 0; + viCounterMsg.hdr.retQueue = NULL; osSetEventMesg(OS_EVENT_VI, &viEventQueue, &viRetraceMsg); osSetEventMesg(OS_EVENT_COUNTER, &viEventQueue, &viCounterMsg); newPri = -1; @@ -68,10 +59,9 @@ void viMgrMain(void* vargs) { OSMgrArgs* args; static u16 viRetrace; u32 addTime; - viMesgStruct* mesg; + OSIoMesg* mesg = NULL; u32 temp = 0; // always 0 - mesg = NULL; viRetrace = __osViGetCurrentContext()->retraceCount; if (viRetrace == 0) { viRetrace = 1; @@ -81,7 +71,7 @@ void viMgrMain(void* vargs) { while (true) { osRecvMesg(args->eventQueue, (OSMesg)&mesg, OS_MESG_BLOCK); - switch (mesg->unk00) { + switch (mesg->hdr.type) { case 13: __osViSwapContext(); viRetrace--; |
