Fixed save-files and rumble

This commit is contained in:
KiritoDv 2024-04-03 02:19:17 -06:00
parent 59dc1cf083
commit 648e173a3c
3 changed files with 14 additions and 38 deletions

View File

@ -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)) {

View File

@ -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) {

View File

@ -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);