comparison segacd.c @ 2164:4fbe1e7c4a73

Don't leak all Sega CD resources when freeing a Genesis instance
author Michael Pavone <pavone@retrodev.com>
date Tue, 12 Jul 2022 09:22:57 -0700
parents 3f09312685e3
children 54cd40fc0da5
comparison
equal deleted inserted replaced
2162:1270fe86eb89 2164:4fbe1e7c4a73
1488 cdd_fader_init(&cd->fader); 1488 cdd_fader_init(&cd->fader);
1489 rf5c164_init(&cd->pcm, SCD_MCLKS, 4); 1489 rf5c164_init(&cd->pcm, SCD_MCLKS, 4);
1490 return cd; 1490 return cd;
1491 } 1491 }
1492 1492
1493 void free_segacd(segacd_context *cd)
1494 {
1495 cdd_fader_deinit(&cd->fader);
1496 rf5c164_deinit(&cd->pcm);
1497 m68k_options_free(cd->m68k->options);
1498 free(cd->m68k);
1499 free(cd->bram);
1500 free(cd->pcm_ram);
1501 free(cd->word_ram);
1502 free(cd->prog_ram);
1503 free(cd->rom_mut);
1504 }
1505
1493 memmap_chunk *segacd_main_cpu_map(segacd_context *cd, uint8_t cart_boot, uint32_t *num_chunks) 1506 memmap_chunk *segacd_main_cpu_map(segacd_context *cd, uint8_t cart_boot, uint32_t *num_chunks)
1494 { 1507 {
1495 static memmap_chunk main_cpu_map[] = { 1508 static memmap_chunk main_cpu_map[] = {
1496 {0x000000, 0x020000, 0x01FFFF, .flags=MMAP_READ}, 1509 {0x000000, 0x020000, 0x01FFFF, .flags=MMAP_READ},
1497 {0x020000, 0x040000, 0x01FFFF, .flags=MMAP_READ|MMAP_WRITE|MMAP_PTR_IDX|MMAP_FUNC_NULL|MMAP_CODE, .ptr_index = 0, 1510 {0x020000, 0x040000, 0x01FFFF, .flags=MMAP_READ|MMAP_WRITE|MMAP_PTR_IDX|MMAP_FUNC_NULL|MMAP_CODE, .ptr_index = 0,