aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2013-01-06 19:59:20 +0200
committernotaz2013-01-06 20:01:16 +0200
commit9705788a21dc36515ba498d45ba2f197f7bcd628 (patch)
tree3df2f2509331de9344d9b2d0a0e9dbf2068367e4
parent92879b62c06f6c1d363a138f77f7727d0fc7721e (diff)
downloadpcsx_rearmed-9705788a21dc36515ba498d45ba2f197f7bcd628.tar.gz
pcsx_rearmed-9705788a21dc36515ba498d45ba2f197f7bcd628.tar.bz2
pcsx_rearmed-9705788a21dc36515ba498d45ba2f197f7bcd628.zip
fix irq status
tested on real hardware
-rw-r--r--libpcsxcore/new_dynarec/pcsxmem.c8
-rw-r--r--libpcsxcore/psxhw.c4
2 files changed, 6 insertions, 6 deletions
diff --git a/libpcsxcore/new_dynarec/pcsxmem.c b/libpcsxcore/new_dynarec/pcsxmem.c
index 4d83452..a42852a 100644
--- a/libpcsxcore/new_dynarec/pcsxmem.c
+++ b/libpcsxcore/new_dynarec/pcsxmem.c
@@ -147,9 +147,9 @@ make_rcnt_funcs(2)
static void io_write_ireg16(u32 value)
{
- if (Config.Sio) psxHu16ref(0x1070) |= 0x80;
+ //if (Config.Sio) psxHu16ref(0x1070) |= 0x80;
if (Config.SpuIrq) psxHu16ref(0x1070) |= 0x200;
- psxHu16ref(0x1070) &= psxHu16(0x1074) & value;
+ psxHu16ref(0x1070) &= value;
}
static void io_write_imask16(u32 value)
@@ -161,9 +161,9 @@ static void io_write_imask16(u32 value)
static void io_write_ireg32(u32 value)
{
- if (Config.Sio) psxHu32ref(0x1070) |= 0x80;
+ //if (Config.Sio) psxHu32ref(0x1070) |= 0x80;
if (Config.SpuIrq) psxHu32ref(0x1070) |= 0x200;
- psxHu32ref(0x1070) &= psxHu32(0x1074) & value;
+ psxHu32ref(0x1070) &= value;
}
static void io_write_imask32(u32 value)
diff --git a/libpcsxcore/psxhw.c b/libpcsxcore/psxhw.c
index 1f85278..6b9125d 100644
--- a/libpcsxcore/psxhw.c
+++ b/libpcsxcore/psxhw.c
@@ -431,7 +431,7 @@ void psxHwWrite16(u32 add, u16 value) {
#endif
if (Config.Sio) psxHu16ref(0x1070) |= SWAPu16(0x80);
if (Config.SpuIrq) psxHu16ref(0x1070) |= SWAPu16(0x200);
- psxHu16ref(0x1070) &= SWAPu16((psxHu16(0x1074) & value));
+ psxHu16ref(0x1070) &= SWAPu16(value);
return;
case 0x1f801074:
@@ -546,7 +546,7 @@ void psxHwWrite32(u32 add, u32 value) {
#endif
if (Config.Sio) psxHu32ref(0x1070) |= SWAPu32(0x80);
if (Config.SpuIrq) psxHu32ref(0x1070) |= SWAPu32(0x200);
- psxHu32ref(0x1070) &= SWAPu32((psxHu32(0x1074) & value));
+ psxHu32ref(0x1070) &= SWAPu32(value);
return;
case 0x1f801074:
#ifdef PSXHW_LOG