summaryrefslogtreecommitdiff
path: root/src/sys
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-03-24 02:01:28 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-04-06 04:32:13 -0600
commit641a43cbf9b4f4c4f545218e201fb58bbe15fcd7 (patch)
tree50ecef61c66e171580ef1a09c2d3a9fc32591768 /src/sys
parent126a55aa0eadaf8b2ed8f370cbba63368be7a964 (diff)
First compilation, we just need more stupid assets
Diffstat (limited to 'src/sys')
-rw-r--r--src/sys/sys_fault.c2
-rw-r--r--src/sys/sys_joybus.c24
-rw-r--r--src/sys/sys_lib.c13
-rw-r--r--src/sys/sys_main.c219
-rw-r--r--src/sys/sys_matrix.c44
-rw-r--r--src/sys/sys_timer.c4
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);
}