mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-23 06:10:03 -06:00
some more crap emulated.
This commit is contained in:
17
ARM.cpp
17
ARM.cpp
@ -209,8 +209,6 @@ void ARM::TriggerIRQ()
|
||||
if ((CPSR & 0x80) && (!Halted))
|
||||
return;
|
||||
|
||||
Halted = 0;
|
||||
|
||||
u32 oldcpsr = CPSR;
|
||||
CPSR &= ~0xFF;
|
||||
CPSR |= 0xD2;
|
||||
@ -223,7 +221,13 @@ void ARM::TriggerIRQ()
|
||||
|
||||
s32 ARM::Execute(s32 cycles)
|
||||
{
|
||||
if (Halted) return cycles;
|
||||
if (Halted)
|
||||
{
|
||||
if (NDS::HaltInterrupted(Num))
|
||||
Halted = false;
|
||||
else
|
||||
return cycles;
|
||||
}
|
||||
|
||||
s32 cyclesrun = 0;
|
||||
|
||||
@ -269,6 +273,13 @@ s32 ARM::Execute(s32 cycles)
|
||||
cyclesrun += 1; // 1S. todo: check
|
||||
}
|
||||
}
|
||||
|
||||
// zorp
|
||||
if (NDS::HaltInterrupted(Num))
|
||||
{
|
||||
if (NDS::IME[Num]&1)
|
||||
TriggerIRQ();
|
||||
}
|
||||
}
|
||||
|
||||
return cyclesrun;
|
||||
|
Reference in New Issue
Block a user