changeset 2488:bfd09d3367ba default tip

Fix crash when enabling VGM recording while running Pico or Copera software
author Michael Pavone <pavone@retrodev.com>
date Mon, 15 Apr 2024 23:07:18 -0700
parents 2ea2f3aa5aa8
children
files genesis.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/genesis.c	Mon Apr 15 23:00:02 2024 -0700
+++ b/genesis.c	Mon Apr 15 23:07:18 2024 -0700
@@ -2457,9 +2457,11 @@
 	vgm_writer *vgm = vgm_write_open(filename, gen->version_reg & HZ50 ? 50 : 60, gen->normal_clock, gen->m68k->current_cycle);
 	if (vgm) {
 		printf("Started logging VGM to %s\n", filename);
-		sync_sound(gen, vgm->last_cycle);
 		if (gen->header.type != SYSTEM_PICO && gen->header.type != SYSTEM_COPERA) {
+			sync_sound(gen, vgm->last_cycle);
 			ym_vgm_log(gen->ym, gen->normal_clock, vgm);
+		} else {
+			sync_sound_pico(gen, vgm->last_cycle);
 		}
 		psg_vgm_log(gen->psg, gen->normal_clock, vgm);
 		gen->header.vgm_logging = 1;
@@ -2472,7 +2474,7 @@
 {
 	puts("Stopped VGM log");
 	genesis_context *gen = (genesis_context *)system;
-	vgm_close(gen->ym->vgm);
+	vgm_close(gen->psg->vgm);
 	if (gen->header.type != SYSTEM_PICO && gen->header.type != SYSTEM_COPERA) {
 		gen->ym->vgm = NULL;
 	}