From aa35134a834ff7e98b5a474c3db399a3d660da22 Mon Sep 17 00:00:00 2001 From: notaz Date: Tue, 26 Jul 2011 19:45:03 +0300 Subject: [PATCH] sio: only do IRQ if it's bit has been cleared tested on the real thing. --- libpcsxcore/sio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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) { -- 2.39.5