comparison genesis.c @ 2488:bfd09d3367ba

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 e8eba0cd5444
children
comparison
equal deleted inserted replaced
2487:2ea2f3aa5aa8 2488:bfd09d3367ba
2455 { 2455 {
2456 genesis_context *gen = (genesis_context *)system; 2456 genesis_context *gen = (genesis_context *)system;
2457 vgm_writer *vgm = vgm_write_open(filename, gen->version_reg & HZ50 ? 50 : 60, gen->normal_clock, gen->m68k->current_cycle); 2457 vgm_writer *vgm = vgm_write_open(filename, gen->version_reg & HZ50 ? 50 : 60, gen->normal_clock, gen->m68k->current_cycle);
2458 if (vgm) { 2458 if (vgm) {
2459 printf("Started logging VGM to %s\n", filename); 2459 printf("Started logging VGM to %s\n", filename);
2460 sync_sound(gen, vgm->last_cycle);
2461 if (gen->header.type != SYSTEM_PICO && gen->header.type != SYSTEM_COPERA) { 2460 if (gen->header.type != SYSTEM_PICO && gen->header.type != SYSTEM_COPERA) {
2461 sync_sound(gen, vgm->last_cycle);
2462 ym_vgm_log(gen->ym, gen->normal_clock, vgm); 2462 ym_vgm_log(gen->ym, gen->normal_clock, vgm);
2463 } else {
2464 sync_sound_pico(gen, vgm->last_cycle);
2463 } 2465 }
2464 psg_vgm_log(gen->psg, gen->normal_clock, vgm); 2466 psg_vgm_log(gen->psg, gen->normal_clock, vgm);
2465 gen->header.vgm_logging = 1; 2467 gen->header.vgm_logging = 1;
2466 } else { 2468 } else {
2467 printf("Failed to start logging to %s\n", filename); 2469 printf("Failed to start logging to %s\n", filename);
2470 2472
2471 static void stop_vgm_log(system_header *system) 2473 static void stop_vgm_log(system_header *system)
2472 { 2474 {
2473 puts("Stopped VGM log"); 2475 puts("Stopped VGM log");
2474 genesis_context *gen = (genesis_context *)system; 2476 genesis_context *gen = (genesis_context *)system;
2475 vgm_close(gen->ym->vgm); 2477 vgm_close(gen->psg->vgm);
2476 if (gen->header.type != SYSTEM_PICO && gen->header.type != SYSTEM_COPERA) { 2478 if (gen->header.type != SYSTEM_PICO && gen->header.type != SYSTEM_COPERA) {
2477 gen->ym->vgm = NULL; 2479 gen->ym->vgm = NULL;
2478 } 2480 }
2479 gen->psg->vgm = NULL; 2481 gen->psg->vgm = NULL;
2480 gen->header.vgm_logging = 0; 2482 gen->header.vgm_logging = 0;