diff options
author | Michael Pavone <pavone@retrodev.com> | 2019-03-23 17:18:10 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2019-03-23 17:18:10 -0700 |
commit | 1e9fd28a1ee92dce1bd9e6e7cdeb8fed880948d9 (patch) | |
tree | 154c06b129874b3a08d2b044ac5ac7f25b38f4a1 /genesis.c | |
parent | a2eed4d72417b2d2831310c93c142bc45beece39 (diff) |
Configurable gain for overall output and individual components
Diffstat (limited to 'genesis.c')
-rw-r--r-- | genesis.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -1334,10 +1334,20 @@ static void keyboard_up(system_header *system, uint8_t scancode) io_keyboard_up(&gen->io, scancode); } +static void set_gain_config(genesis_context *gen) +{ + char *config_gain; + config_gain = tern_find_path(config, "audio\0psg_gain\0", TVAL_PTR).ptrval; + render_audio_source_gaindb(gen->psg->audio, config_gain ? atof(config_gain) : 0.0f); + config_gain = tern_find_path(config, "audio\0fm_gain\0", TVAL_PTR).ptrval; + render_audio_source_gaindb(gen->ym->audio, config_gain ? atof(config_gain) : 0.0f); +} + static void config_updated(system_header *system) { genesis_context *gen = (genesis_context *)system; setup_io_devices(config, &system->info, &gen->io); + set_gain_config(gen); } genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t system_opts, uint8_t force_region) @@ -1391,6 +1401,8 @@ genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on gen->psg = malloc(sizeof(psg_context)); psg_init(gen->psg, gen->master_clock, MCLKS_PER_PSG); + + set_gain_config(gen); z80_map[0].buffer = gen->zram = calloc(1, Z80_RAM_BYTES); #ifndef NO_Z80 |