aboutsummaryrefslogtreecommitdiff
path: root/audio/fmopl.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2015-05-30 19:18:29 +0200
committerTorbjörn Andersson2015-05-30 19:18:29 +0200
commita3008e8f010704207f39a857641be3d4c564ccb1 (patch)
tree62a9558e29bbd05aace9c2f08169b9964499f7dd /audio/fmopl.cpp
parent1f7555c2ca753c4b68c3a53c651dead981e7b81d (diff)
downloadscummvm-rg350-a3008e8f010704207f39a857641be3d4c564ccb1.tar.gz
scummvm-rg350-a3008e8f010704207f39a857641be3d4c564ccb1.tar.bz2
scummvm-rg350-a3008e8f010704207f39a857641be3d4c564ccb1.zip
FMOPL: Fix confusing "opl_driver" behavior
The way I've configured ScummVM, the default is to use FluidSynth for MIDI, and any game where I want AdLib overrides that setting. I have set the DOSBox OPL emulator as the default. However, this causes the game's "opl_driver" setting to be "auto", which overrides the default setting, and usually picks the MAME OPL emulator. To counter this, if it sees that "opl_driver" is "auto", it will check the default setting. In other words, only use "auto" if "opl_driver" isn't set on any level. I think this is the behaviour that should cause the least amount of astonishment.
Diffstat (limited to 'audio/fmopl.cpp')
-rw-r--r--audio/fmopl.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/audio/fmopl.cpp b/audio/fmopl.cpp
index c18e544410..30229ea6bf 100644
--- a/audio/fmopl.cpp
+++ b/audio/fmopl.cpp
@@ -80,6 +80,12 @@ Config::DriverId Config::detect(OplType type) {
}
DriverId drv = parse(ConfMan.get("opl_driver"));
+ if (drv == kAuto) {
+ // Since the "auto" can be explicitly set for a game, and this
+ // driver shows up in the GUI as "<default>", check if there is
+ // a global setting for it before resorting to auto-detection.
+ drv = parse(ConfMan.get("opl_driver", Common::ConfigManager::kApplicationDomain));
+ }
// When a valid driver is selected, check whether it supports
// the requested OPL chip.