diff genesis.c @ 2556:6f1eebc0a90b

Add auto option for fm_dac config variable that bases zero offset on the select MD model
author Michael Pavone <pavone@retrodev.com>
date Sat, 11 Jan 2025 23:21:36 -0800
parents 3fc8a1f2eb84
children 3f58fec775df
line wrap: on
line diff
--- a/genesis.c	Sat Jan 11 23:03:24 2025 -0800
+++ b/genesis.c	Sat Jan 11 23:21:36 2025 -0800
@@ -2448,8 +2448,14 @@
 		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);
 
-		char *config_dac = tern_find_path_default(config, "audio\0fm_dac\0", (tern_val){.ptrval="zero_offset"}, TVAL_PTR).ptrval;
-		ym_enable_zero_offset(gen->ym, !strcmp(config_dac, "zero_offset"));
+		char *config_dac = tern_find_path_default(config, "audio\0fm_dac\0", (tern_val){.ptrval="auto"}, TVAL_PTR).ptrval;
+		uint8_t zero_offset = 0;
+		if (!strcmp(config_dac, "auto")) {
+			zero_offset = gen->ym->status_address_mask != 0;
+		} else if (!strcmp(config_dac, "zero_offset")) {
+			zero_offset = 1;
+		}
+		ym_enable_zero_offset(gen->ym, zero_offset);
 	}
 
 	if (gen->expansion) {