diff sms.c @ 2179:9a8dd4ba2753

Implement frame advance debugger command
author Michael Pavone <pavone@retrodev.com>
date Sat, 13 Aug 2022 19:37:17 -0700
parents 9caebcfeac72
children 01ff005b08f6
line wrap: on
line diff
--- a/sms.c	Sat Aug 13 19:16:30 2022 -0700
+++ b/sms.c	Sat Aug 13 19:37:17 2022 -0700
@@ -386,6 +386,26 @@
 			system->delayed_load_slot = 0;
 
 		}
+		if (sms->vdp->frame != sms->last_frame) {
+			uint32_t elapsed = sms->vdp->frame - sms->last_frame;
+			sms->last_frame = sms->vdp->frame;
+			if (system->enter_debugger_frames) {
+				if (elapsed >= system->enter_debugger_frames) {
+					system->enter_debugger_frames = 0;
+					system->enter_debugger = 1;
+				} else {
+					system->enter_debugger_frames -= elapsed;
+				}
+			}
+			
+			if(exit_after){
+				if (elapsed >= exit_after) {
+					exit(0);
+				} else {
+					exit_after -= elapsed;
+				}
+			}
+		}
 		if (system->enter_debugger && sms->z80->pc) {
 			system->enter_debugger = 0;
 			zdebugger(sms->z80, sms->z80->pc);