Mercurial > repos > blastem
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, |