diff --git a/src/386.c b/src/386.c index 10d6a79..cb78c4e 100644 --- a/src/386.c +++ b/src/386.c @@ -224,6 +224,7 @@ void exec386(int cycs) { int cycle_period = (timer_count >> TIMER_SHIFT) + 1; + x86_was_reset = 0; cycdiff=0; oldcyc=cycles; timer_start_period(cycles << TIMER_SHIFT); @@ -260,6 +261,8 @@ dontprint=0; } cpu_state.pc++; x86_opcodes[(opcode | cpu_state.op32) & 0x3ff](fetchdat); + if (x86_was_reset) + break; } if (!use32) cpu_state.pc &= 0xffff; diff --git a/src/386_dynarec.c b/src/386_dynarec.c index bd1a928..2ccc1dd 100644 --- a/src/386_dynarec.c +++ b/src/386_dynarec.c @@ -543,6 +543,7 @@ void exec386_dynarec(int cycs) if (!CACHE_ON()) /*Interpret block*/ { 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); while (!cpu_block_end) {