diff options
author | Michael Pavone <pavone@retrodev.com> | 2016-04-24 02:19:48 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2016-04-24 02:19:48 -0700 |
commit | 508a9aedf03d887dcc00a8c53caf8cef1ada2937 (patch) | |
tree | 8d0eae4e522d3ac51a09bd477624ec4155836368 /m68k_core.c | |
parent | 6c2b3708efcbd900c29422510cfdc62787d3c32d (diff) |
Half assed, prefetch based open bus value emulation. Gets BlastEm up to 119/122 in VDP FIFO Testing
Diffstat (limited to 'm68k_core.c')
-rw-r--r-- | m68k_core.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/m68k_core.c b/m68k_core.c index a39830b..c920768 100644 --- a/m68k_core.c +++ b/m68k_core.c @@ -796,6 +796,13 @@ void translate_m68k(m68k_options * opts, m68kinst * inst) { 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); |