From: notaz Date: Tue, 26 Jul 2011 16:45:03 +0000 (+0300) Subject: sio: only do IRQ if it's bit has been cleared X-Git-Tag: r9~34 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa35134a834ff7e98b5a474c3db399a3d660da22;p=pcsx_rearmed.git sio: only do IRQ if it's bit has been cleared tested on the real thing. --- diff --git a/libpcsxcore/sio.c b/libpcsxcore/sio.c index 4a0a73c4..81fe0ea1 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) {