Mercurial > repos > blastem
comparison genesis.c @ 1842:49f65d240299 mame_interp
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 14 Apr 2019 23:38:02 -0700 |
parents | 5358a7126b96 5278b6e44fc1 |
children | 374a5ae694e8 |
comparison
equal
deleted
inserted
replaced
1787:0c6d07f91346 | 1842:49f65d240299 |
---|---|
1366 { | 1366 { |
1367 genesis_context *gen = (genesis_context *)system; | 1367 genesis_context *gen = (genesis_context *)system; |
1368 io_keyboard_up(&gen->io, scancode); | 1368 io_keyboard_up(&gen->io, scancode); |
1369 } | 1369 } |
1370 | 1370 |
1371 static void set_audio_config(genesis_context *gen) | |
1372 { | |
1373 char *config_gain; | |
1374 config_gain = tern_find_path(config, "audio\0psg_gain\0", TVAL_PTR).ptrval; | |
1375 render_audio_source_gaindb(gen->psg->audio, config_gain ? atof(config_gain) : 0.0f); | |
1376 config_gain = tern_find_path(config, "audio\0fm_gain\0", TVAL_PTR).ptrval; | |
1377 render_audio_source_gaindb(gen->ym->audio, config_gain ? atof(config_gain) : 0.0f); | |
1378 | |
1379 char *config_dac = tern_find_path_default(config, "audio\0fm_dac\0", (tern_val){.ptrval="zero_offset"}, TVAL_PTR).ptrval; | |
1380 ym_enable_zero_offset(gen->ym, !strcmp(config_dac, "zero_offset")); | |
1381 } | |
1382 | |
1371 static void config_updated(system_header *system) | 1383 static void config_updated(system_header *system) |
1372 { | 1384 { |
1373 genesis_context *gen = (genesis_context *)system; | 1385 genesis_context *gen = (genesis_context *)system; |
1374 setup_io_devices(config, &system->info, &gen->io); | 1386 setup_io_devices(config, &system->info, &gen->io); |
1387 set_audio_config(gen); | |
1375 } | 1388 } |
1376 | 1389 |
1377 genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t system_opts, uint8_t force_region) | 1390 genesis_context *alloc_init_genesis(rom_info *rom, void *main_rom, void *lock_on, uint32_t system_opts, uint8_t force_region) |
1378 { | 1391 { |
1379 static memmap_chunk z80_map[] = { | 1392 static memmap_chunk z80_map[] = { |
1423 gen->ym = malloc(sizeof(ym2612_context)); | 1436 gen->ym = malloc(sizeof(ym2612_context)); |
1424 ym_init(gen->ym, gen->master_clock, MCLKS_PER_YM, system_opts); | 1437 ym_init(gen->ym, gen->master_clock, MCLKS_PER_YM, system_opts); |
1425 | 1438 |
1426 gen->psg = malloc(sizeof(psg_context)); | 1439 gen->psg = malloc(sizeof(psg_context)); |
1427 psg_init(gen->psg, gen->master_clock, MCLKS_PER_PSG); | 1440 psg_init(gen->psg, gen->master_clock, MCLKS_PER_PSG); |
1441 | |
1442 set_audio_config(gen); | |
1428 | 1443 |
1429 z80_map[0].buffer = gen->zram = calloc(1, Z80_RAM_BYTES); | 1444 z80_map[0].buffer = gen->zram = calloc(1, Z80_RAM_BYTES); |
1430 #ifndef NO_Z80 | 1445 #ifndef NO_Z80 |
1431 z80_options *z_opts = malloc(sizeof(z80_options)); | 1446 z80_options *z_opts = malloc(sizeof(z80_options)); |
1432 init_z80_opts(z_opts, z80_map, 5, NULL, 0, MCLKS_PER_Z80, 0xFFFF); | 1447 init_z80_opts(z_opts, z80_map, 5, NULL, 0, MCLKS_PER_Z80, 0xFFFF); |