Mercurial > repos > blastem
diff m68k_core.c @ 981:902c53d9c16f
Half assed, prefetch based open bus value emulation. Gets BlastEm up to 119/122 in VDP FIFO Testing
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 24 Apr 2016 02:19:48 -0700 |
parents | 771875b5f519 |
children | 751280fb4494 |
line wrap: on
line diff
--- a/m68k_core.c Sun Apr 24 01:24:38 2016 -0700 +++ b/m68k_core.c Sun Apr 24 02:19:48 2016 -0700 @@ -796,6 +796,13 @@ { check_cycles_int(&opts->gen, inst->address); //log_address(&opts->gen, inst->address, "M68K: %X @ %d\n"); + if ( + (inst->src.addr_mode > MODE_AREG && inst->src.addr_mode < MODE_IMMEDIATE) + || (inst->dst.addr_mode > MODE_AREG && inst->dst.addr_mode < MODE_IMMEDIATE) + ) { + //Not accurate for all cases, but probably good enough for now + m68k_set_last_prefetch(opts, inst->address + inst->bytes); + } impl_info * info = m68k_impls + inst->op; if (info->itype == RAW_FUNC) { info->impl.raw(opts, inst);