Fixes to x86_was_reset handling. Based on patch from Greatpsycho.
This commit is contained in:
parent
4d29b1c71f
commit
2957dae2d5
2 changed files with 4 additions and 0 deletions
|
|
@ -224,6 +224,7 @@ void exec386(int cycs)
|
||||||
{
|
{
|
||||||
int cycle_period = (timer_count >> TIMER_SHIFT) + 1;
|
int cycle_period = (timer_count >> TIMER_SHIFT) + 1;
|
||||||
|
|
||||||
|
x86_was_reset = 0;
|
||||||
cycdiff=0;
|
cycdiff=0;
|
||||||
oldcyc=cycles;
|
oldcyc=cycles;
|
||||||
timer_start_period(cycles << TIMER_SHIFT);
|
timer_start_period(cycles << TIMER_SHIFT);
|
||||||
|
|
@ -260,6 +261,8 @@ dontprint=0;
|
||||||
}
|
}
|
||||||
cpu_state.pc++;
|
cpu_state.pc++;
|
||||||
x86_opcodes[(opcode | cpu_state.op32) & 0x3ff](fetchdat);
|
x86_opcodes[(opcode | cpu_state.op32) & 0x3ff](fetchdat);
|
||||||
|
if (x86_was_reset)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!use32) cpu_state.pc &= 0xffff;
|
if (!use32) cpu_state.pc &= 0xffff;
|
||||||
|
|
|
||||||
|
|
@ -543,6 +543,7 @@ void exec386_dynarec(int cycs)
|
||||||
if (!CACHE_ON()) /*Interpret block*/
|
if (!CACHE_ON()) /*Interpret block*/
|
||||||
{
|
{
|
||||||
cpu_block_end = 0;
|
cpu_block_end = 0;
|
||||||
|
x86_was_reset = 0;
|
||||||
// if (output) pclog("Interpret block at %04x:%04x %04x %04x %04x %04x %04x %04x %04x\n", CS, pc, AX, BX, CX, DX, SI, DI, SP);
|
// if (output) pclog("Interpret block at %04x:%04x %04x %04x %04x %04x %04x %04x %04x\n", CS, pc, AX, BX, CX, DX, SI, DI, SP);
|
||||||
while (!cpu_block_end)
|
while (!cpu_block_end)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue