aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NDS.cpp6
-rw-r--r--melonDS.depend2
2 files changed, 5 insertions, 3 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);
}
}
diff --git a/melonDS.depend b/melonDS.depend
index 3e315d8..32c870b 100644
--- a/melonDS.depend
+++ b/melonDS.depend
@@ -67,7 +67,7 @@
1481037554 c:\documents\sources\melonds\cp15.h
-1484524458 source:c:\documents\sources\melonds\cp15.cpp
+1484616493 source:c:\documents\sources\melonds\cp15.cpp
<stdio.h>
"NDS.h"
"ARM.h"