X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fsio.c;h=ea96e95baae78d1d78c3af0b17dde8d744b922cb;hp=4a0a73c48af1efa77c097f01dff9358dc016f418;hb=82336ba3f94b3a4674042833ca89a3da9cbc2625;hpb=f3a770329bf0ac2d47d442eb70e8fcc25a7f8db2 diff --git a/libpcsxcore/sio.c b/libpcsxcore/sio.c index 4a0a73c4..ea96e95b 100644 --- a/libpcsxcore/sio.c +++ b/libpcsxcore/sio.c @@ -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));