Mercurial > repos > blastem
comparison genesis.c @ 1796:51417bb557b6
Configurable gain for overall output and individual components
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 23 Mar 2019 17:18:10 -0700 |
parents | 1dc718581aac |
children | 5278b6e44fc1 |
comparison
equal
deleted
inserted
replaced
1795:a02b4ed940b6 | 1796:51417bb557b6 |
---|---|
1332 { | 1332 { |
1333 genesis_context *gen = (genesis_context *)system; | 1333 genesis_context *gen = (genesis_context *)system; |
1334 io_keyboard_up(&gen->io, scancode); | 1334 io_keyboard_up(&gen->io, scancode); |
1335 } | 1335 } |
1336 | 1336 |
1337 static void set_gain_config(genesis_context *gen) | |
1338 { | |
1339 char *config_gain; | |
1340 config_gain = tern_find_path(config, "audio\0psg_gain\0", TVAL_PTR).ptrval; | |
1341 render_audio_source_gaindb(gen->psg->audio, config_gain ? atof(config_gain) : 0.0f); | |
1342 config_gain = tern_find_path(config, "audio\0fm_gain\0", TVAL_PTR).ptrval; | |
1343 render_audio_source_gaindb(gen->ym->audio, config_gain ? atof(config_gain) : 0.0f); | |
1344 } | |
1345 | |
1337 static void config_updated(system_header *system) | 1346 static void config_updated(system_header *system) |
1338 { | 1347 { |
1339 genesis_context *gen = (genesis_context *)system; | 1348 genesis_context *gen = (genesis_context *)system; |
1340 setup_io_devices(config, &system->info, &gen->io); | 1349 setup_io_devices(config, &system->info, &gen->io); |
1350 set_gain_config(gen); | |
1341 } | 1351 } |
1342 | 1352 |
1343 genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t system_opts, uint8_t force_region) | 1353 genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t system_opts, uint8_t force_region) |
1344 { | 1354 { |
1345 static memmap_chunk z80_map[] = { | 1355 static memmap_chunk z80_map[] = { |
1389 gen->ym = malloc(sizeof(ym2612_context)); | 1399 gen->ym = malloc(sizeof(ym2612_context)); |
1390 ym_init(gen->ym, gen->master_clock, MCLKS_PER_YM, system_opts); | 1400 ym_init(gen->ym, gen->master_clock, MCLKS_PER_YM, system_opts); |
1391 | 1401 |
1392 gen->psg = malloc(sizeof(psg_context)); | 1402 gen->psg = malloc(sizeof(psg_context)); |
1393 psg_init(gen->psg, gen->master_clock, MCLKS_PER_PSG); | 1403 psg_init(gen->psg, gen->master_clock, MCLKS_PER_PSG); |
1404 | |
1405 set_gain_config(gen); | |
1394 | 1406 |
1395 z80_map[0].buffer = gen->zram = calloc(1, Z80_RAM_BYTES); | 1407 z80_map[0].buffer = gen->zram = calloc(1, Z80_RAM_BYTES); |
1396 #ifndef NO_Z80 | 1408 #ifndef NO_Z80 |
1397 z80_options *z_opts = malloc(sizeof(z80_options)); | 1409 z80_options *z_opts = malloc(sizeof(z80_options)); |
1398 init_z80_opts(z_opts, z80_map, 5, NULL, 0, MCLKS_PER_Z80, 0xFFFF); | 1410 init_z80_opts(z_opts, z80_map, 5, NULL, 0, MCLKS_PER_Z80, 0xFFFF); |