fix bug with IPC FIFO IRQs
This commit is contained in:
parent
8ea2aaad5a
commit
b10a0d64a2
6
NDS.cpp
6
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue