diff options
| author | KiritoDv <kiritodev01@gmail.com> | 2024-03-24 02:01:28 -0600 |
|---|---|---|
| committer | KiritoDv <kiritodev01@gmail.com> | 2024-04-06 04:32:13 -0600 |
| commit | 641a43cbf9b4f4c4f545218e201fb58bbe15fcd7 (patch) | |
| tree | 50ecef61c66e171580ef1a09c2d3a9fc32591768 /src/sys | |
| parent | 126a55aa0eadaf8b2ed8f370cbba63368be7a964 (diff) | |
First compilation, we just need more stupid assets
Diffstat (limited to 'src/sys')
| -rw-r--r-- | src/sys/sys_fault.c | 2 | ||||
| -rw-r--r-- | src/sys/sys_joybus.c | 24 | ||||
| -rw-r--r-- | src/sys/sys_lib.c | 13 | ||||
| -rw-r--r-- | src/sys/sys_main.c | 219 | ||||
| -rw-r--r-- | src/sys/sys_matrix.c | 44 | ||||
| -rw-r--r-- | src/sys/sys_timer.c | 4 |
6 files changed, 154 insertions, 152 deletions
diff --git a/src/sys/sys_fault.c b/src/sys/sys_fault.c index 14a322e2..f73e1396 100644 --- a/src/sys/sys_fault.c +++ b/src/sys/sys_fault.c @@ -242,7 +242,7 @@ void Fault_ThreadEntry(void* arg0) { func_8000762C(300, 10, "-"); gControllerPlugged[0] = 1; while (var_s5 == 0) { - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); + osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_READ_CONTROLLER), OS_MESG_PRI_NORMAL); osRecvMesg(&gControllerMsgQueue, NULL, OS_MESG_BLOCK); Controller_UpdateInput(); switch (var_s0) { diff --git a/src/sys/sys_joybus.c b/src/sys/sys_joybus.c index fb6ad5ac..890961ce 100644 --- a/src/sys/sys_joybus.c +++ b/src/sys/sys_joybus.c @@ -63,7 +63,7 @@ void Controller_UpdateInput(void) { s32 i; for (i = 0; i < 4; i++) { - if (gControllerPlugged[i] == 1 && sNextController[i].errno == 0) { + if (gControllerPlugged[i] == 1 && sNextController[i].err_no == 0) { sPrevController[i] = gControllerHold[i]; gControllerHold[i] = sNextController[i]; gControllerPress[i].button = @@ -71,8 +71,8 @@ void Controller_UpdateInput(void) { Controller_AddDeadZone(i); } else { gControllerHold[i].button = gControllerHold[i].stick_x = gControllerHold[i].stick_y = - gControllerHold[i].errno = gControllerPress[i].button = gControllerPress[i].stick_x = - gControllerPress[i].stick_y = gControllerPress[i].errno = 0; + gControllerHold[i].err_no = gControllerPress[i].button = gControllerPress[i].stick_x = + gControllerPress[i].stick_y = gControllerPress[i].err_no = 0; } } } @@ -84,41 +84,41 @@ void Controller_ReadData(void) { gControllerLock--; for (i = 0; i < 4; i++) { sNextController[i].button = sNextController[i].stick_x = sNextController[i].stick_y = - sNextController[i].errno = 0; + sNextController[i].err_no = 0; } } else { osContStartReadData(&gSerialEventQueue); osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_BLOCK); osContGetReadData(sNextController); } - osSendMesg(&gControllerMsgQueue, (OSMesg) SI_CONT_READ_DONE, OS_MESG_PRI_NORMAL); + osSendMesg(&gControllerMsgQueue, OS_MESG_32(SI_CONT_READ_DONE), OS_MESG_PRI_NORMAL); } void Save_ReadData(void) { if ((gStartNMI == 0) && (Save_ReadEeprom(&gSaveIOBuffer) == 0)) { - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_SUCCESS, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMsgQueue, OS_MESG_32(SI_SAVE_SUCCESS), OS_MESG_PRI_NORMAL); return; } - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_FAILED, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMsgQueue, OS_MESG_32(SI_SAVE_FAILED), OS_MESG_PRI_NORMAL); } void Save_WriteData(void) { if ((gStartNMI == 0) && (Save_WriteEeprom(&gSaveIOBuffer) == 0)) { - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_SUCCESS, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMsgQueue, OS_MESG_32(SI_SAVE_SUCCESS), OS_MESG_PRI_NORMAL); return; } - osSendMesg(&gSaveMsgQueue, (OSMesg) SI_SAVE_FAILED, OS_MESG_PRI_NORMAL); + osSendMesg(&gSaveMsgQueue, OS_MESG_32(SI_SAVE_FAILED), OS_MESG_PRI_NORMAL); } void Controller_Rumble(void) { s32 i; - osContStartQuery(&gSerialEventQueue); + // osContStartQuery(&gSerialEventQueue); osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_BLOCK); - osContGetQuery(sControllerStatus); + // osContGetQuery(sControllerStatus); for (i = 0; i < 4; i++) { - if ((gControllerPlugged[i] != 0) && (sControllerStatus[i].errno == 0)) { + if ((gControllerPlugged[i] != 0) && (sControllerStatus[i].err_no == 0)) { if (sControllerStatus[i].status & 1) { if (gControllerRumble[i] == 0) { if (osMotorInit(&gSerialEventQueue, &sControllerMotor[i], i)) { diff --git a/src/sys/sys_lib.c b/src/sys/sys_lib.c index ffb3cb91..1f528aa0 100644 --- a/src/sys/sys_lib.c +++ b/src/sys/sys_lib.c @@ -120,24 +120,25 @@ void Lib_DmaRead(void* src, void* dst, ptrdiff_t size) { void Lib_FillScreen(u8 setFill) { s32 i; + // TODO: Implement fill screen gFillScreenColor |= 1; if (setFill == true) { if (gFillScreen == false) { if (gFillScreenColor == 1) { - osViBlack(1); + // osViBlack(1); } else { for (i = 0; i < 3 * SCREEN_WIDTH; i++) { gFillBuffer[i] = gFillScreenColor; } - osWritebackDCacheAll(); - osViSwapBuffer(&gFillBuffer[SCREEN_WIDTH]); - osViRepeatLine(1); + // osWritebackDCacheAll(); + // osViSwapBuffer(&gFillBuffer[SCREEN_WIDTH]); + // osViRepeatLine(1); } gFillScreen = true; } } else if (gFillScreen == true) { - osViRepeatLine(0); - osViBlack(0); + // osViRepeatLine(0); + // osViBlack(0); gFillScreen = false; } } diff --git a/src/sys/sys_main.c b/src/sys/sys_main.c index da8e19bd..4b0d0147 100644 --- a/src/sys/sys_main.c +++ b/src/sys/sys_main.c @@ -108,46 +108,46 @@ void Audio_ThreadEntry(void* arg0) { task = AudioThread_CreateTask(); if (task != NULL) { task->msgQueue = &gAudioTaskMsgQueue; - task->msg = (OSMesg) TASK_MESG_1; + task->msg = OS_MESG_32(TASK_MESG_1); osWritebackDCacheAll(); - osSendMesg(&gTaskMsgQueue, task, OS_MESG_PRI_NORMAL); + osSendMesg(&gTaskMsgQueue, OS_MESG_PTR(task), OS_MESG_PRI_NORMAL); } while (1) { task = AudioThread_CreateTask(); if (task != NULL) { task->msgQueue = &gAudioTaskMsgQueue; - task->msg = (OSMesg) TASK_MESG_1; + task->msg = OS_MESG_32(TASK_MESG_1); osWritebackDCacheAll(); } osRecvMesg(&gAudioTaskMsgQueue, NULL, OS_MESG_NOBLOCK); if (task != NULL) { - osSendMesg(&gTaskMsgQueue, task, OS_MESG_PRI_NORMAL); + osSendMesg(&gTaskMsgQueue, OS_MESG_PTR(task), OS_MESG_PRI_NORMAL); } osRecvMesg(&gAudioVImsgQueue, NULL, OS_MESG_BLOCK); } } void Graphics_SetTask(void) { - gGfxTask->msgQueue = &gGfxTaskMsgQueue; - gGfxTask->msg = (OSMesg) TASK_MESG_2; - gGfxTask->task.t.type = M_GFXTASK; - gGfxTask->task.t.flags = 0; - gGfxTask->task.t.ucode_boot = rspbootTextStart; - gGfxTask->task.t.ucode_boot_size = (uintptr_t) rspbootTextEnd - (uintptr_t) rspbootTextStart; - gGfxTask->task.t.ucode = gspF3DEX_fifoTextStart; - gGfxTask->task.t.ucode_size = SP_UCODE_SIZE; - gGfxTask->task.t.ucode_data = (u64*) &gspF3DEX_fifoDataStart; - gGfxTask->task.t.ucode_data_size = SP_UCODE_DATA_SIZE; - gGfxTask->task.t.dram_stack = gDramStack; - gGfxTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8; - gGfxTask->task.t.output_buff = (u64*) gTaskOutputBuffer; - gGfxTask->task.t.output_buff_size = (u64*) gAudioHeap; - gGfxTask->task.t.data_ptr = (u64*) gGfxPool->masterDL; - gGfxTask->task.t.data_size = (gMasterDisp - gGfxPool->masterDL) * sizeof(Gfx); - gGfxTask->task.t.yield_data_ptr = (u64*) &gOSYieldData; - gGfxTask->task.t.yield_data_size = OS_YIELD_DATA_SIZE; - osWritebackDCacheAll(); - osSendMesg(&gTaskMsgQueue, gGfxTask, OS_MESG_PRI_NORMAL); + // gGfxTask->msgQueue = &gGfxTaskMsgQueue; + // gGfxTask->msg = (OSMesg) TASK_MESG_2; + // gGfxTask->task.t.type = M_GFXTASK; + // gGfxTask->task.t.flags = 0; + // gGfxTask->task.t.ucode_boot = rspbootTextStart; + // gGfxTask->task.t.ucode_boot_size = (uintptr_t) rspbootTextEnd - (uintptr_t) rspbootTextStart; + // gGfxTask->task.t.ucode = gspF3DEX_fifoTextStart; + // gGfxTask->task.t.ucode_size = SP_UCODE_SIZE; + // gGfxTask->task.t.ucode_data = (u64*) &gspF3DEX_fifoDataStart; + // gGfxTask->task.t.ucode_data_size = SP_UCODE_DATA_SIZE; + // gGfxTask->task.t.dram_stack = gDramStack; + // gGfxTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8; + // gGfxTask->task.t.output_buff = (u64*) gTaskOutputBuffer; + // gGfxTask->task.t.output_buff_size = (u64*) gAudioHeap; + // gGfxTask->task.t.data_ptr = (u64*) gGfxPool->masterDL; + // gGfxTask->task.t.data_size = (gMasterDisp - gGfxPool->masterDL) * sizeof(Gfx); + // gGfxTask->task.t.yield_data_ptr = (u64*) &gOSYieldData; + // gGfxTask->task.t.yield_data_size = OS_YIELD_DATA_SIZE; + // osWritebackDCacheAll(); + // osSendMesg(&gTaskMsgQueue, gGfxTask, OS_MESG_PRI_NORMAL); } void Graphics_InitializeTask(u32 frameCount) { @@ -176,23 +176,23 @@ void Main_SetVIMode(void) { (gControllerHold[3].button & R_TRIG) && (gControllerHold[3].button & Z_TRIG)) { sGammaMode = 1 - sGammaMode; } - switch (osTvType) { - case OS_TV_PAL: - osViSetMode(&osViModePalLan1); - break; - case OS_TV_MPAL: - osViSetMode(&osViModeMpalLan1); - break; - default: - case OS_TV_NTSC: - osViSetMode(&osViModeNtscLan1); - break; - } - if (sGammaMode != 0) { - osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON | OS_VI_DIVOT_OFF | OS_VI_GAMMA_ON | OS_VI_GAMMA_DITHER_ON); - } else { - osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON | OS_VI_DIVOT_OFF | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF); - } + // switch (osTvType) { + // case OS_TV_PAL: + // osViSetMode(&osViModePalLan1); + // break; + // case OS_TV_MPAL: + // osViSetMode(&osViModeMpalLan1); + // break; + // default: + // case OS_TV_NTSC: + // osViSetMode(&osViModeNtscLan1); + // break; + // } + // if (sGammaMode != 0) { + // osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON | OS_VI_DIVOT_OFF | OS_VI_GAMMA_ON | OS_VI_GAMMA_DITHER_ON); + // } else { + // osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON | OS_VI_DIVOT_OFF | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF); + // } } void SerialInterface_ThreadEntry(void* arg0) { @@ -202,7 +202,7 @@ void SerialInterface_ThreadEntry(void* arg0) { while (1) { osRecvMesg(&gSerialThreadMsgQueue, &sp34, OS_MESG_BLOCK); - switch ((s32) sp34) { + switch (sp34.data32) { case SI_READ_CONTROLLER: Controller_ReadData(); break; @@ -220,11 +220,11 @@ void SerialInterface_ThreadEntry(void* arg0) { } void Timer_ThreadEntry(void* arg0) { - void* sp24; + OSMesg sp24; while (1) { osRecvMesg(&gTimerTaskMsgQueue, &sp24, OS_MESG_BLOCK); - Timer_CompleteTask(sp24); + Timer_CompleteTask(sp24.ptr); } } @@ -234,7 +234,7 @@ void Graphics_ThreadEntry(void* arg0) { u8 var_v2; Game_Initialize(); - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); + osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_READ_CONTROLLER), OS_MESG_PRI_NORMAL); Graphics_InitializeTask(gSysFrameCount); { gSPSegment(gUnkDisp1++, 0, 0); @@ -251,9 +251,9 @@ void Graphics_ThreadEntry(void* arg0) { gSysFrameCount++; Graphics_InitializeTask(gSysFrameCount); osRecvMesg(&gControllerMsgQueue, NULL, OS_MESG_BLOCK); - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_RUMBLE, OS_MESG_PRI_NORMAL); + osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_RUMBLE), OS_MESG_PRI_NORMAL); Controller_UpdateInput(); - osSendMesg(&gSerialThreadMsgQueue, (OSMesg) SI_READ_CONTROLLER, OS_MESG_PRI_NORMAL); + osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_READ_CONTROLLER), OS_MESG_PRI_NORMAL); if (gControllerPress[3].button & U_JPAD) { Main_SetVIMode(); } @@ -275,7 +275,7 @@ void Graphics_ThreadEntry(void* arg0) { if (gFillScreen == 0) { osViSwapBuffer(&gFrameBuffers[(gSysFrameCount - 1) % 3]); } - func_80007FE4(&gFrameBuffers[(gSysFrameCount - 1) % 3], SCREEN_WIDTH, 16); + // func_80007FE4(&gFrameBuffers[(gSysFrameCount - 1) % 3], SCREEN_WIDTH, 16); var_v1 = MIN(D_80137E78, 4); var_v2 = MAX(var_v1, gGfxVImsgQueue.validCount + 1); @@ -295,12 +295,12 @@ void Main_InitMesgQueues(void) { osCreateMesgQueue(&gGfxVImsgQueue, sGfxVImsgBuff, ARRAY_COUNT(sGfxVImsgBuff)); osCreateMesgQueue(&gGfxTaskMsgQueue, sGfxTaskMsgBuff, ARRAY_COUNT(sGfxTaskMsgBuff)); osCreateMesgQueue(&gSerialEventQueue, sSerialEventBuff, ARRAY_COUNT(sSerialEventBuff)); - osSetEventMesg(OS_EVENT_SI, &gSerialEventQueue, NULL); + osSetEventMesg(OS_EVENT_SI, &gSerialEventQueue, OS_MESG_PTR(NULL)); osCreateMesgQueue(&gMainThreadMsgQueue, sMainThreadMsgBuff, ARRAY_COUNT(sMainThreadMsgBuff)); - osViSetEvent(&gMainThreadMsgQueue, (OSMesg) EVENT_MESG_VI, 1); - osSetEventMesg(OS_EVENT_SP, &gMainThreadMsgQueue, (OSMesg) EVENT_MESG_SP); - osSetEventMesg(OS_EVENT_DP, &gMainThreadMsgQueue, (OSMesg) EVENT_MESG_DP); - osSetEventMesg(OS_EVENT_PRENMI, &gMainThreadMsgQueue, (OSMesg) EVENT_MESG_PRENMI); + osViSetEvent(&gMainThreadMsgQueue, OS_MESG_32(EVENT_MESG_VI), 1); + osSetEventMesg(OS_EVENT_SP, &gMainThreadMsgQueue, OS_MESG_32(EVENT_MESG_SP)); + osSetEventMesg(OS_EVENT_DP, &gMainThreadMsgQueue, OS_MESG_32(EVENT_MESG_DP)); + osSetEventMesg(OS_EVENT_PRENMI, &gMainThreadMsgQueue, OS_MESG_32(EVENT_MESG_PRENMI)); osCreateMesgQueue(&gTimerTaskMsgQueue, sTimerTaskMsgBuff, ARRAY_COUNT(sTimerTaskMsgBuff)); osCreateMesgQueue(&gTimerWaitMsgQueue, sTimerWaitMsgBuff, ARRAY_COUNT(sTimerWaitMsgBuff)); osCreateMesgQueue(&gSerialThreadMsgQueue, sSerialThreadMsgBuff, ARRAY_COUNT(sSerialThreadMsgBuff)); @@ -323,22 +323,22 @@ void Main_HandleRDP(void) { } void Main_HandleRSP(void) { - SPTask* task = gCurrentTask; - - gCurrentTask = NULL; - if (task->state == SPTASK_STATE_INTERRUPTED) { - if (osSpTaskYielded(&task->task) == 0) { - task->state = SPTASK_STATE_FINISHED; - } - } else { - task->state = SPTASK_STATE_FINISHED; - if (task->task.t.type == M_AUDTASK) { - if (task->msgQueue != NULL) { - osSendMesg(task->msgQueue, task->msg, OS_MESG_PRI_NORMAL); - } - sAudioTasks[0] = NULL; - } - } + // SPTask* task = gCurrentTask; + // + // gCurrentTask = NULL; + // if (task->state == SPTASK_STATE_INTERRUPTED) { + // if (osSpTaskYielded(&task->task) == 0) { + // task->state = SPTASK_STATE_FINISHED; + // } + // } else { + // task->state = SPTASK_STATE_FINISHED; + // if (task->task.t.type == M_AUDTASK) { + // if (task->msgQueue != NULL) { + // osSendMesg(task->msgQueue, task->msg, OS_MESG_PRI_NORMAL); + // } + // sAudioTasks[0] = NULL; + // } + // } } void Main_GetNewTasks(void) { @@ -362,7 +362,7 @@ void Main_GetNewTasks(void) { var_s0_2 = sNewAudioTasks; var_s1_2 = sNewGfxTasks; while (osRecvMesg(&gTaskMsgQueue, &sp40, OS_MESG_NOBLOCK) != MSG_QUEUE_EMPTY) { - sp3C = (SPTask*) sp40; + sp3C = (SPTask*) sp40.ptr; sp3C->state = SPTASK_STATE_NOT_STARTED; switch (sp3C->task.t.type) { @@ -403,50 +403,50 @@ void Main_StartNextTask(void) { if (gCurrentTask != NULL) { if (gCurrentTask->task.t.type == M_GFXTASK) { gCurrentTask->state = SPTASK_STATE_INTERRUPTED; - osSpTaskYield(); + // osSpTaskYield(); } } else { gCurrentTask = sAudioTasks[0]; - osSpTaskLoad(&gCurrentTask->task); - osSpTaskStartGo(&gCurrentTask->task); + // osSpTaskLoad(&gCurrentTask->task); + // osSpTaskStartGo(&gCurrentTask->task); gCurrentTask->state = SPTASK_STATE_RUNNING; } } else if ((gCurrentTask == NULL) && (sGfxTasks[0] != NULL) && (sGfxTasks[0]->state != SPTASK_STATE_FINISHED)) { gCurrentTask = sGfxTasks[0]; - osDpSetStatus(DPC_CLR_TMEM_CTR | DPC_CLR_PIPE_CTR | DPC_CLR_CMD_CTR | DPC_CLR_CLOCK_CTR); - osSpTaskLoad(&gCurrentTask->task); - osSpTaskStartGo(&gCurrentTask->task); + // osDpSetStatus(DPC_CLR_TMEM_CTR | DPC_CLR_PIPE_CTR | DPC_CLR_CMD_CTR | DPC_CLR_CLOCK_CTR); + // osSpTaskLoad(&gCurrentTask->task); + // osSpTaskStartGo(&gCurrentTask->task); gCurrentTask->state = SPTASK_STATE_RUNNING; } } void Main_ThreadEntry(void* arg0) { OSMesg ogMsg; - u8 mesg; - - osCreateThread(&gAudioThread, THREAD_ID_AUDIO, Audio_ThreadEntry, arg0, - gAudioThreadStack + sizeof(gAudioThreadStack), 80); - osStartThread(&gAudioThread); - osCreateThread(&gGraphicsThread, THREAD_ID_GRAPHICS, Graphics_ThreadEntry, arg0, - gGraphicsThreadStack + sizeof(gGraphicsThreadStack), 40); - osStartThread(&gGraphicsThread); - osCreateThread(&gTimerThread, THREAD_ID_TIMER, Timer_ThreadEntry, arg0, - gTimerThreadStack + sizeof(gTimerThreadStack), 60); - osStartThread(&gTimerThread); - osCreateThread(&gSerialThread, THREAD_ID_SERIAL, SerialInterface_ThreadEntry, arg0, - gSerialThreadStack + sizeof(gSerialThreadStack), 20); - osStartThread(&gSerialThread); + u32 mesg; + + // osCreateThread(&gAudioThread, THREAD_ID_AUDIO, Audio_ThreadEntry, arg0, + // gAudioThreadStack + sizeof(gAudioThreadStack), 80); + // osStartThread(&gAudioThread); + // osCreateThread(&gGraphicsThread, THREAD_ID_GRAPHICS, Graphics_ThreadEntry, arg0, + // gGraphicsThreadStack + sizeof(gGraphicsThreadStack), 40); + // osStartThread(&gGraphicsThread); + // osCreateThread(&gTimerThread, THREAD_ID_TIMER, Timer_ThreadEntry, arg0, + // gTimerThreadStack + sizeof(gTimerThreadStack), 60); + // osStartThread(&gTimerThread); + // osCreateThread(&gSerialThread, THREAD_ID_SERIAL, SerialInterface_ThreadEntry, arg0, + // gSerialThreadStack + sizeof(gSerialThreadStack), 20); + // osStartThread(&gSerialThread); Main_InitMesgQueues(); while (true) { osRecvMesg(&gMainThreadMsgQueue, &ogMsg, OS_MESG_BLOCK); - mesg = (u32) ogMsg; + mesg = ogMsg.data32; switch (mesg) { case EVENT_MESG_VI: - osSendMesg(&gAudioVImsgQueue, (OSMesg) EVENT_MESG_VI, OS_MESG_PRI_NORMAL); - osSendMesg(&gGfxVImsgQueue, (OSMesg) EVENT_MESG_VI, OS_MESG_PRI_NORMAL); + osSendMesg(&gAudioVImsgQueue, OS_MESG_32(EVENT_MESG_VI), OS_MESG_PRI_NORMAL); + osSendMesg(&gGfxVImsgQueue, OS_MESG_32(EVENT_MESG_VI), OS_MESG_PRI_NORMAL); Main_GetNewTasks(); break; case EVENT_MESG_SP: @@ -466,24 +466,25 @@ void Main_ThreadEntry(void* arg0) { } void Idle_ThreadEntry(void* arg0) { - osCreateViManager(OS_PRIORITY_VIMGR); - Main_SetVIMode(); - Lib_FillScreen(1); - osCreatePiManager(OS_PRIORITY_PIMGR, &gPiMgrCmdQueue, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff)); - osCreateThread(&gMainThread, THREAD_ID_MAIN, &Main_ThreadEntry, arg0, sMainThreadStack + sizeof(sMainThreadStack), - 100); - osStartThread(&gMainThread); - Fault_Init(); - osSetThreadPri(NULL, OS_PRIORITY_IDLE); -loop_1: - goto loop_1; + // TODO: Implement idle thread + // osCreateViManager(OS_PRIORITY_VIMGR); + // Main_SetVIMode(); + // Lib_FillScreen(1); + // osCreatePiManager(OS_PRIORITY_PIMGR, &gPiMgrCmdQueue, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff)); + // osCreateThread(&gMainThread, THREAD_ID_MAIN, &Main_ThreadEntry, arg0, sMainThreadStack + sizeof(sMainThreadStack), + // 100); + // osStartThread(&gMainThread); + // Fault_Init(); + // osSetThreadPri(NULL, OS_PRIORITY_IDLE); +// loop_1: +// goto loop_1; } void bootproc(void) { - RdRam_CheckIPL3(); - osInitialize(); + // RdRam_CheckIPL3(); + // osInitialize(); Main_Initialize(); - osCreateThread(&sIdleThread, THREAD_ID_IDLE, &Idle_ThreadEntry, NULL, sIdleThreadStack + sizeof(sIdleThreadStack), - 255); - osStartThread(&sIdleThread); + // osCreateThread(&sIdleThread, THREAD_ID_IDLE, &Idle_ThreadEntry, NULL, sIdleThreadStack + sizeof(sIdleThreadStack), + // 255); + // osStartThread(&sIdleThread); } diff --git a/src/sys/sys_matrix.c b/src/sys/sys_matrix.c index f50cfb64..2722bfb5 100644 --- a/src/sys/sys_matrix.c +++ b/src/sys/sys_matrix.c @@ -1,19 +1,19 @@ #include "sys.h" -Mtx gIdentityMtx = { { - { +Mtx gIdentityMtx = { + .intPart = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 }, }, - { + .fracPart = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, }, -} }; +}; Matrix gIdentityMatrix = { { { 1.0f, 0.0f, 0.0f, 0.0f }, @@ -332,8 +332,8 @@ void Matrix_RotateAxis(Matrix* mtx, f32 angle, f32 axisX, f32 axisY, f32 axisZ, // Converts the current Gfx matrix to a Mtx void Matrix_ToMtx(Mtx* dest) { s32 intVal; - u16(*iPart)[4] = dest->u.i; - u16(*fPart)[4] = dest->u.f; + u16(*iPart)[4] = dest->intPart; + u16(*fPart)[4] = dest->fracPart; Matrix* src = gGfxMatrix; intVal = src->m[0][0] * 0x10000; @@ -403,22 +403,22 @@ void Matrix_ToMtx(Mtx* dest) { // Converts the Mtx src to a Matrix, putting the result in dest void Matrix_FromMtx(Mtx* src, Matrix* dest) { - dest->m[0][0] = ((src->u.i[0][0] << 0x10) | src->u.f[0][0]) * (1.0f / 0x10000); - dest->m[0][1] = ((src->u.i[0][1] << 0x10) | src->u.f[0][1]) * (1.0f / 0x10000); - dest->m[0][2] = ((src->u.i[0][2] << 0x10) | src->u.f[0][2]) * (1.0f / 0x10000); - dest->m[0][3] = ((src->u.i[0][3] << 0x10) | src->u.f[0][3]) * (1.0f / 0x10000); - dest->m[1][0] = ((src->u.i[1][0] << 0x10) | src->u.f[1][0]) * (1.0f / 0x10000); - dest->m[1][1] = ((src->u.i[1][1] << 0x10) | src->u.f[1][1]) * (1.0f / 0x10000); - dest->m[1][2] = ((src->u.i[1][2] << 0x10) | src->u.f[1][2]) * (1.0f / 0x10000); - dest->m[1][3] = ((src->u.i[1][3] << 0x10) | src->u.f[1][3]) * (1.0f / 0x10000); - dest->m[2][0] = ((src->u.i[2][0] << 0x10) | src->u.f[2][0]) * (1.0f / 0x10000); - dest->m[2][1] = ((src->u.i[2][1] << 0x10) | src->u.f[2][1]) * (1.0f / 0x10000); - dest->m[2][2] = ((src->u.i[2][2] << 0x10) | src->u.f[2][2]) * (1.0f / 0x10000); - dest->m[2][3] = ((src->u.i[2][3] << 0x10) | src->u.f[2][3]) * (1.0f / 0x10000); - dest->m[3][0] = ((src->u.i[3][0] << 0x10) | src->u.f[3][0]) * (1.0f / 0x10000); - dest->m[3][1] = ((src->u.i[3][1] << 0x10) | src->u.f[3][1]) * (1.0f / 0x10000); - dest->m[3][2] = ((src->u.i[3][2] << 0x10) | src->u.f[3][2]) * (1.0f / 0x10000); - dest->m[3][3] = ((src->u.i[3][3] << 0x10) | src->u.f[3][3]) * (1.0f / 0x10000); + dest->m[0][0] = ((src->intPart[0][0] << 0x10) | src->fracPart[0][0]) * (1.0f / 0x10000); + dest->m[0][1] = ((src->intPart[0][1] << 0x10) | src->fracPart[0][1]) * (1.0f / 0x10000); + dest->m[0][2] = ((src->intPart[0][2] << 0x10) | src->fracPart[0][2]) * (1.0f / 0x10000); + dest->m[0][3] = ((src->intPart[0][3] << 0x10) | src->fracPart[0][3]) * (1.0f / 0x10000); + dest->m[1][0] = ((src->intPart[1][0] << 0x10) | src->fracPart[1][0]) * (1.0f / 0x10000); + dest->m[1][1] = ((src->intPart[1][1] << 0x10) | src->fracPart[1][1]) * (1.0f / 0x10000); + dest->m[1][2] = ((src->intPart[1][2] << 0x10) | src->fracPart[1][2]) * (1.0f / 0x10000); + dest->m[1][3] = ((src->intPart[1][3] << 0x10) | src->fracPart[1][3]) * (1.0f / 0x10000); + dest->m[2][0] = ((src->intPart[2][0] << 0x10) | src->fracPart[2][0]) * (1.0f / 0x10000); + dest->m[2][1] = ((src->intPart[2][1] << 0x10) | src->fracPart[2][1]) * (1.0f / 0x10000); + dest->m[2][2] = ((src->intPart[2][2] << 0x10) | src->fracPart[2][2]) * (1.0f / 0x10000); + dest->m[2][3] = ((src->intPart[2][3] << 0x10) | src->fracPart[2][3]) * (1.0f / 0x10000); + dest->m[3][0] = ((src->intPart[3][0] << 0x10) | src->fracPart[3][0]) * (1.0f / 0x10000); + dest->m[3][1] = ((src->intPart[3][1] << 0x10) | src->fracPart[3][1]) * (1.0f / 0x10000); + dest->m[3][2] = ((src->intPart[3][2] << 0x10) | src->fracPart[3][2]) * (1.0f / 0x10000); + dest->m[3][3] = ((src->intPart[3][3] << 0x10) | src->fracPart[3][3]) * (1.0f / 0x10000); } // Applies the transform matrix mtx to the vector src, putting the result in dest diff --git a/src/sys/sys_timer.c b/src/sys/sys_timer.c index 6e33932e..7b11b71d 100644 --- a/src/sys/sys_timer.c +++ b/src/sys/sys_timer.c @@ -23,7 +23,7 @@ s32 Timer_CreateTask(u64 time, TimerAction action, s32* address, s32 value) { task->action = action; task->address = address; task->value = value; - return osSetTimer(&task->timer, time, 0, &gTimerTaskMsgQueue, task); + return osSetTimer(&task->timer, time, 0, &gTimerTaskMsgQueue, OS_MESG_PTR(task)); } void Timer_Increment(s32* address, s32 value) { @@ -45,6 +45,6 @@ void Timer_Wait(u64 time) { OSTimer timer; OSMesg dummy; - osSetTimer(&timer, time, 0, &gTimerWaitMsgQueue, NULL); + osSetTimer(&timer, time, 0, &gTimerWaitMsgQueue, OS_MESG_PTR(NULL)); osRecvMesg(&gTimerWaitMsgQueue, &dummy, OS_MESG_BLOCK); } |
