Mercurial > repos > blastem
diff blastem.c @ 548:a3afee2271ce
Initial work on the x86-32 target
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 18 Feb 2014 21:37:31 -0800 |
parents | c641006da28e |
children | dc9f178085a0 |
line wrap: on
line diff
--- a/blastem.c Tue Feb 18 20:32:10 2014 -0800 +++ b/blastem.c Tue Feb 18 21:37:31 2014 -0800 @@ -182,6 +182,7 @@ void sync_z80(z80_context * z_context, uint32_t mclks) { +#ifdef X86_64 if (z80_enabled && !reset && !busreq) { genesis_context * gen = z_context->system; z_context->sync_cycle = mclks / MCLKS_PER_Z80; @@ -201,7 +202,9 @@ dprintf("Z80 ran to cycle %d\n", z_context->current_cycle); } } - } else { + } else +#endif + { z_context->current_cycle = mclks / MCLKS_PER_Z80; } } @@ -469,7 +472,9 @@ location &= 0x7FFF; if (location < 0x4000) { z80_ram[location & 0x1FFF] = value; +#ifdef X86_64 z80_handle_code_write(location & 0x1FFF, gen->z80); +#endif } else if (location < 0x6000) { sync_sound(gen, context->current_cycle * MCLKS_PER_68K); if (location & 1) { @@ -986,7 +991,9 @@ insert_breakpoint(&context, pc, debugger); } adjust_int_cycle(gen->m68k, gen->vdp); +#ifdef X86_64 gen->z80->native_pc = z80_get_native_address_trans(gen->z80, gen->z80->pc); +#endif start_68k_context(&context, pc); } else { if (debugger) { @@ -1231,8 +1238,10 @@ z80_context z_context; x86_z80_options z_opts; +#ifdef X86_64 init_x86_z80_opts(&z_opts); init_z80_context(&z_context, &z_opts); +#endif z_context.system = &gen; z_context.mem_pointers[0] = z80_ram;