Mercurial > repos > blastem
diff genesis.c @ 2179:9a8dd4ba2753
Implement frame advance debugger command
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 13 Aug 2022 19:37:17 -0700 |
parents | 4fbe1e7c4a73 |
children | 408fb8a7e990 |
line wrap: on
line diff
--- a/genesis.c Sat Aug 13 19:16:30 2022 -0700 +++ b/genesis.c Sat Aug 13 19:37:17 2022 -0700 @@ -460,14 +460,24 @@ } if (v_context->frame != gen->last_frame) { //printf("reached frame end %d | MCLK Cycles: %d, Target: %d, VDP cycles: %d, vcounter: %d, hslot: %d\n", gen->last_frame, mclks, gen->frame_end, v_context->cycles, v_context->vcounter, v_context->hslot); + uint32_t elapsed = v_context->frame - gen->last_frame; gen->last_frame = v_context->frame; event_flush(mclks); gen->last_flush_cycle = mclks; + if (gen->header.enter_debugger_frames) { + if (elapsed >= gen->header.enter_debugger_frames) { + gen->header.enter_debugger_frames = 0; + gen->header.enter_debugger = 1; + } else { + gen->header.enter_debugger_frames -= elapsed; + } + } if(exit_after){ - --exit_after; - if (!exit_after) { + if (elapsed >= exit_after) { exit(0); + } else { + exit_after -= elapsed; } } if (context->current_cycle > MAX_NO_ADJUST) {