diff --git a/src/engine/fox_save.c b/src/engine/fox_save.c index d7925868..3895c4c5 100644 --- a/src/engine/fox_save.c +++ b/src/engine/fox_save.c @@ -44,26 +44,15 @@ s32 Save_Write(void) { gSaveFile.save.checksum = Save_Checksum(&gSaveFile.save); gSaveFile.backup = gSaveFile.save; gSaveIOBuffer = gSaveFile; - osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_WRITE_SAVE), OS_MESG_PRI_NORMAL); - osRecvMesg(&gSaveMsgQueue, &sp1C, OS_MESG_BLOCK); - if (sp1C.data32 != SI_SAVE_SUCCESS) { - return -1; - } + Save_WriteData(); return 0; } s32 Save_Read(void) { - - return 0; OSMesg* sp24; s32 i; - osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_READ_SAVE), OS_MESG_PRI_NORMAL); - osRecvMesg(&gSaveMsgQueue, &sp24, OS_MESG_BLOCK); - if (sp24->data32 != SI_SAVE_SUCCESS) { - return -1; - } - + Save_ReadData(); gSaveFile = gSaveIOBuffer; if (gSaveFile.save.checksum == Save_Checksum(&gSaveFile.save)) { diff --git a/src/sys/sys_joybus.c b/src/sys/sys_joybus.c index 890961ce..720f5b9e 100644 --- a/src/sys/sys_joybus.c +++ b/src/sys/sys_joybus.c @@ -88,7 +88,7 @@ void Controller_ReadData(void) { } } else { osContStartReadData(&gSerialEventQueue); - osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_BLOCK); + osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_NOBLOCK); osContGetReadData(sNextController); } osSendMesg(&gControllerMsgQueue, OS_MESG_32(SI_CONT_READ_DONE), OS_MESG_PRI_NORMAL); @@ -113,10 +113,6 @@ void Save_WriteData(void) { void Controller_Rumble(void) { s32 i; - // osContStartQuery(&gSerialEventQueue); - osRecvMesg(&gSerialEventQueue, NULL, OS_MESG_BLOCK); - // osContGetQuery(sControllerStatus); - for (i = 0; i < 4; i++) { if ((gControllerPlugged[i] != 0) && (sControllerStatus[i].err_no == 0)) { if (sControllerStatus[i].status & 1) { diff --git a/src/sys/sys_main.c b/src/sys/sys_main.c index 2883d712..3913e198 100644 --- a/src/sys/sys_main.c +++ b/src/sys/sys_main.c @@ -195,27 +195,17 @@ void Main_SetVIMode(void) { // } } -void SerialInterface_ThreadEntry(void* arg0) { +void SerialInterface_ThreadUpdate() { OSMesg sp34; - Controller_Init(); - while (1) { - osRecvMesg(&gSerialThreadMsgQueue, &sp34, OS_MESG_BLOCK); - switch (sp34.data32) { - case SI_READ_CONTROLLER: - Controller_ReadData(); - break; - case SI_READ_SAVE: - Save_ReadData(); - break; - case SI_WRITE_SAVE: - Save_WriteData(); - break; - case SI_RUMBLE: - Controller_Rumble(); - break; - } + switch (sp34.data32) { + case SI_READ_SAVE: + Save_ReadData(); + break; + case SI_WRITE_SAVE: + Save_WriteData(); + break; } } @@ -263,10 +253,11 @@ void Graphics_ThreadUpdate(){ gSysFrameCount++; Graphics_InitializeTask(gSysFrameCount); - osRecvMesg(&gControllerMsgQueue, NULL, OS_MESG_BLOCK); + osRecvMesg(&gControllerMsgQueue, NULL, OS_MESG_NOBLOCK); osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_RUMBLE), OS_MESG_PRI_NORMAL); Controller_UpdateInput(); Controller_ReadData(); + Controller_Rumble(); osSendMesg(&gSerialThreadMsgQueue, OS_MESG_32(SI_READ_CONTROLLER), OS_MESG_PRI_NORMAL); if (gControllerPress[3].button & U_JPAD) { Main_SetVIMode(); @@ -297,7 +288,7 @@ void Graphics_ThreadUpdate(){ osViSwapBuffer(&gFrameBuffers[(gSysFrameCount - 1) % 3]); } - + // LTODO: FAULT_CRASH // func_80007FE4(&gFrameBuffers[(gSysFrameCount - 1) % 3], SCREEN_WIDTH, 16);