Ensure that any cycles spent when entering IRQ/NMI in dynarec are accounted
for in the TSC, and by extension the timer system. Fixes slowdown and stuttering music in Museum Madness.
This commit is contained in:
parent
6b96f56632
commit
8053c8a523
1 changed files with 3 additions and 2 deletions
|
|
@ -591,8 +591,6 @@ void exec386_dynarec(int cycs)
|
||||||
exec_interpreter();
|
exec_interpreter();
|
||||||
else
|
else
|
||||||
exec_recompiler();
|
exec_recompiler();
|
||||||
cycdiff=oldcyc-cycles;
|
|
||||||
tsc += cycdiff;
|
|
||||||
|
|
||||||
if (cpu_state.abrt)
|
if (cpu_state.abrt)
|
||||||
{
|
{
|
||||||
|
|
@ -643,6 +641,9 @@ void exec386_dynarec(int cycs)
|
||||||
// pclog("IRQ %02X %04X:%04X %04X:%04X\n", temp, SS, SP, CS, pc);
|
// pclog("IRQ %02X %04X:%04X %04X:%04X\n", temp, SS, SP, CS, pc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cycdiff=oldcyc-cycles;
|
||||||
|
tsc += cycdiff;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc))
|
if (TIMER_VAL_LESS_THAN_VAL(timer_target, (uint32_t)tsc))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue