Mercurial > repos > blastem
changeset 2673:2c8f541af3c5
Get Pico games running with new 68K core
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 08 Mar 2025 21:09:54 -0800 |
parents | 6894a25ebfaa |
children | 07cc0f7109f0 |
files | genesis.c |
diffstat | 1 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/genesis.c Sat Mar 08 20:20:23 2025 -0800 +++ b/genesis.c Sat Mar 08 21:09:54 2025 -0800 @@ -397,7 +397,7 @@ }*/ if (context->status & M68K_STATUS_TRACE || context->trace_pending) { - context->target_cycle = context->cycles; + context->target_cycle = context->cycles + 1; return; } @@ -795,7 +795,7 @@ }*/ if (context->status & M68K_STATUS_TRACE || context->trace_pending) { - context->target_cycle = context->cycles; + context->target_cycle = context->cycles + 1; return; } @@ -820,6 +820,11 @@ } } +#ifdef NEW_CORE + if (context->target_cycle == context->cycles) { + context->target_cycle++; + } +#endif } static m68k_context* sync_components_pico(m68k_context * context, uint32_t address) @@ -2076,7 +2081,11 @@ } #ifdef NEW_CORE while (!gen->m68k->should_return) { - sync_components(gen->m68k, gen->m68k->pc); + if (gen->header.type == SYSTEM_PICO || gen->header.type == SYSTEM_COPERA) { + sync_components_pico(gen->m68k, gen->m68k->pc); + } else { + sync_components(gen->m68k, gen->m68k->pc); + } m68k_execute(gen->m68k, gen->m68k->target_cycle); } gen->m68k->should_return = 0; @@ -2104,7 +2113,11 @@ } #ifdef NEW_CORE while (!gen->m68k->should_return) { - sync_components(gen->m68k, gen->m68k->pc); + if (gen->header.type == SYSTEM_PICO || gen->header.type == SYSTEM_COPERA) { + sync_components_pico(gen->m68k, gen->m68k->pc); + } else { + sync_components(gen->m68k, gen->m68k->pc); + } m68k_execute(gen->m68k, gen->m68k->target_cycle); } gen->m68k->should_return = 0;