diff genesis.c @ 1932:b387f1c5a1d0

WIP new sync mode that runs emulation on audio thread
author Michael Pavone <pavone@retrodev.com>
date Sat, 18 Apr 2020 22:36:13 -0700
parents 9fd4bedc1a31
children 2c1c88cd1a3f c3c62dbf1ceb
line wrap: on
line diff
--- a/genesis.c	Fri Apr 17 22:21:13 2020 -0700
+++ b/genesis.c	Sat Apr 18 22:36:13 2020 -0700
@@ -1241,12 +1241,12 @@
 			resume_68k(gen->m68k);
 		}
 	}
-#ifndef IS_LIB
-	bindings_release_capture();
-	vdp_release_framebuffer(gen->vdp);
-	render_pause_source(gen->ym->audio);
-	render_pause_source(gen->psg->audio);
-#endif
+	if (render_should_release_on_exit()) {
+		bindings_release_capture();
+		vdp_release_framebuffer(gen->vdp);
+		render_pause_source(gen->ym->audio);
+		render_pause_source(gen->psg->audio);
+	}
 }
 
 static void start_genesis(system_header *system, char *statefile)
@@ -1289,13 +1289,13 @@
 static void resume_genesis(system_header *system)
 {
 	genesis_context *gen = (genesis_context *)system;
-#ifndef IS_LIB
-	render_set_video_standard((gen->version_reg & HZ50) ? VID_PAL : VID_NTSC);
-	bindings_reacquire_capture();
-	vdp_reacquire_framebuffer(gen->vdp);
-	render_resume_source(gen->ym->audio);
-	render_resume_source(gen->psg->audio);
-#endif
+	if (render_should_release_on_exit()) {
+		render_set_video_standard((gen->version_reg & HZ50) ? VID_PAL : VID_NTSC);
+		bindings_reacquire_capture();
+		vdp_reacquire_framebuffer(gen->vdp);
+		render_resume_source(gen->ym->audio);
+		render_resume_source(gen->psg->audio);
+	}
 	resume_68k(gen->m68k);
 	handle_reset_requests(gen);
 }