Mercurial > repos > blastem
changeset 2167:fe68a9ad509f
Merge
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 23 Jul 2022 10:55:44 -0700 |
parents | 3a6680e9204a (diff) 0bf077df45c3 (current diff) |
children | 42a0f6db81c3 cb9572145f8e |
files | |
diffstat | 9 files changed, 45 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Sat Jun 11 10:01:07 2022 -0700 +++ b/Makefile Sat Jul 23 10:55:44 2022 -0700 @@ -361,7 +361,7 @@ $(CC) $(CFLAGS) -c -o $@ $< %.png : %.xcf - xcf2png $< > $@ + convert -background none -flatten $< $@ %.tiles : %.spec ./img2tiles.py -s $< $@
--- a/cdd_fader.c Sat Jun 11 10:01:07 2022 -0700 +++ b/cdd_fader.c Sat Jul 23 10:55:44 2022 -0700 @@ -8,6 +8,12 @@ fader->dst_attenuation = 0x4000; fader->attenuation_step = 0; } + +void cdd_fader_deinit(cdd_fader *fader) +{ + render_free_source(fader->audio); +} + void cdd_fader_attenuation_write(cdd_fader *fader, uint16_t attenuation) { fader->dst_attenuation = attenuation & 0xFFF0;
--- a/cdd_fader.h Sat Jun 11 10:01:07 2022 -0700 +++ b/cdd_fader.h Sat Jul 23 10:55:44 2022 -0700 @@ -14,6 +14,7 @@ } cdd_fader; void cdd_fader_init(cdd_fader *fader); +void cdd_fader_deinit(cdd_fader *fader); void cdd_fader_attenuation_write(cdd_fader *fader, uint16_t attenuation); void cdd_fader_data(cdd_fader *fader, uint8_t byte); void cdd_fader_pause(cdd_fader *fader);
--- a/genesis.c Sat Jun 11 10:01:07 2022 -0700 +++ b/genesis.c Sat Jul 23 10:55:44 2022 -0700 @@ -1549,6 +1549,9 @@ static void free_genesis(system_header *system) { genesis_context *gen = (genesis_context *)system; + if (gen->expansion) { + free_segacd(gen->expansion); + } vdp_free(gen->vdp); memmap_chunk *map = (memmap_chunk *)gen->m68k->options->gen.memmap; m68k_options_free(gen->m68k->options);
--- a/rf5c164.c Sat Jun 11 10:01:07 2022 -0700 +++ b/rf5c164.c Sat Jul 23 10:55:44 2022 -0700 @@ -28,6 +28,11 @@ pcm->clock_step = divider * 4; } +void rf5c164_deinit(rf5c164* pcm) +{ + render_free_source(pcm->audio); +} + //48 cycles per channel //1 external write per 16 cycles //3 external writes per channel/sample
--- a/rf5c164.h Sat Jun 11 10:01:07 2022 -0700 +++ b/rf5c164.h Sat Jul 23 10:55:44 2022 -0700 @@ -29,6 +29,7 @@ } rf5c164; void rf5c164_init(rf5c164* pcm, uint32_t mclks, uint32_t divider); +void rf5c164_deinit(rf5c164* pcm); void rf5c164_run(rf5c164* pcm, uint32_t cycle); void rf5c164_write(rf5c164* pcm, uint16_t address, uint8_t value); uint8_t rf5c164_read(rf5c164* pcm, uint16_t address);
--- a/rom.db Sat Jun 11 10:01:07 2022 -0700 +++ b/rom.db Sat Jul 23 10:55:44 2022 -0700 @@ -1460,3 +1460,17 @@ } } } +T-49116 { + name Beast Wrestler + device_overrides { + 1 gamepad3.1 + 2 gamepad3.2 + } +} +T-49186 { + name Exile + device_overrides { + 1 gamepad3.1 + 2 gamepad3.2 + } +}
--- a/segacd.c Sat Jun 11 10:01:07 2022 -0700 +++ b/segacd.c Sat Jul 23 10:55:44 2022 -0700 @@ -1490,6 +1490,19 @@ return cd; } +void free_segacd(segacd_context *cd) +{ + cdd_fader_deinit(&cd->fader); + rf5c164_deinit(&cd->pcm); + m68k_options_free(cd->m68k->options); + free(cd->m68k); + free(cd->bram); + free(cd->pcm_ram); + free(cd->word_ram); + free(cd->prog_ram); + free(cd->rom_mut); +} + memmap_chunk *segacd_main_cpu_map(segacd_context *cd, uint8_t cart_boot, uint32_t *num_chunks) { static memmap_chunk main_cpu_map[] = {
--- a/segacd.h Sat Jun 11 10:01:07 2022 -0700 +++ b/segacd.h Sat Jul 23 10:55:44 2022 -0700 @@ -52,6 +52,7 @@ } segacd_context; segacd_context *alloc_configure_segacd(system_media *media, uint32_t opts, uint8_t force_region, rom_info *info); +void free_segacd(segacd_context *cd); memmap_chunk *segacd_main_cpu_map(segacd_context *cd, uint8_t cart_boot, uint32_t *num_chunks); uint32_t gen_cycle_to_scd(uint32_t cycle, genesis_context *gen); void scd_run(segacd_context *cd, uint32_t cycle);