aboutsummaryrefslogtreecommitdiff
path: root/NDS.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'NDS.cpp')
-rw-r--r--NDS.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/NDS.cpp b/NDS.cpp
index d1189da..ba45c78 100644
--- a/NDS.cpp
+++ b/NDS.cpp
@@ -1433,8 +1433,9 @@ void ARM9IOWrite32(u32 addr, u32 val)
IPCFIFOCnt9 |= 0x4000;
else
{
+ bool wasempty = IPCFIFO9->IsEmpty();
IPCFIFO9->Write(val);
- if (IPCFIFOCnt7 & 0x0400)
+ if ((IPCFIFOCnt7 & 0x0400) && wasempty)
TriggerIRQ(1, IRQ_IPCRecv);
}
}
@@ -1736,8 +1737,9 @@ void ARM7IOWrite32(u32 addr, u32 val)
IPCFIFOCnt7 |= 0x4000;
else
{
+ bool wasempty = IPCFIFO7->IsEmpty();
IPCFIFO7->Write(val);
- if (IPCFIFOCnt9 & 0x0400)
+ if ((IPCFIFOCnt9 & 0x0400) && wasempty)
TriggerIRQ(0, IRQ_IPCRecv);
}
}