drc: fix bugs in armv4 codepath
[pcsx_rearmed.git] / libpcsxcore / sio.c
index 4a0a73c..ea96e95 100644 (file)
@@ -386,8 +386,10 @@ void sioInterrupt() {
        PAD_LOG("Sio Interrupt (CP0.Status = %x)\n", psxRegs.CP0.n.Status);
 #endif
 //     SysPrintf("Sio Interrupt\n");
-       StatReg |= IRQ;
-       psxHu32ref(0x1070) |= SWAPu32(0x80);
+       if (!(StatReg & IRQ)) {
+               StatReg |= IRQ;
+               psxHu32ref(0x1070) |= SWAPu32(0x80);
+       }
 }
 
 void LoadMcd(int mcd, char *str) {
@@ -804,7 +806,7 @@ void GetMcdBlockInfo(int mcd, int block, McdBlock *Info) {
        strncpy(Info->Name, ptr, 16);
 }
 
-int sioFreeze(gzFile f, int Mode) {
+int sioFreeze(void *f, int Mode) {
        gzfreeze(buf, sizeof(buf));
        gzfreeze(&StatReg, sizeof(StatReg));
        gzfreeze(&ModeReg, sizeof(ModeReg));