summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blastem.c4
-rw-r--r--z80_to_x86.c1
2 files changed, 3 insertions, 2 deletions
diff --git a/blastem.c b/blastem.c
index 83c2c23..15f7932 100644
--- a/blastem.c
+++ b/blastem.c
@@ -192,11 +192,11 @@ void sync_z80(z80_context * z_context, uint32_t mclks)
}
uint32_t vint_cycle = vdp_next_vint_z80(gen->vdp) / MCLKS_PER_Z80;
while (z_context->current_cycle < z_context->sync_cycle) {
- if (z_context->iff1 && z_context->current_cycle < (vint_cycle + Z80_VINT_DURATION)) {
+ if (z_context->iff1 && z_context->int_cycle == CYCLE_NEVER && z_context->current_cycle < (vint_cycle + Z80_VINT_DURATION)) {
z_context->int_cycle = vint_cycle < z_context->int_enable_cycle ? z_context->int_enable_cycle : vint_cycle;
}
z_context->target_cycle = z_context->sync_cycle < z_context->int_cycle ? z_context->sync_cycle : z_context->int_cycle;
- dprintf("Running Z80 from cycle %d to cycle %d. Native PC: %p\n", z_context->current_cycle, z_context->sync_cycle, z_context->native_pc);
+ dprintf("Running Z80 from cycle %d to cycle %d. Int cycle: %d\n", z_context->current_cycle, z_context->sync_cycle, z_context->int_cycle);
z80_run(z_context);
dprintf("Z80 ran to cycle %d\n", z_context->current_cycle);
}
diff --git a/z80_to_x86.c b/z80_to_x86.c
index 2cab1c9..ea07214 100644
--- a/z80_to_x86.c
+++ b/z80_to_x86.c
@@ -1964,6 +1964,7 @@ void init_z80_context(z80_context * context, x86_z80_options * options)
context->banked_code_map = malloc(sizeof(native_map_slot) * (1 << 9));
memset(context->banked_code_map, 0, sizeof(native_map_slot) * (1 << 9));
context->options = options;
+ context->int_cycle = 0xFFFFFFFF;
}
void z80_reset(z80_context * context)