aboutsummaryrefslogtreecommitdiff
path: root/queen/queen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'queen/queen.cpp')
-rw-r--r--queen/queen.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/queen/queen.cpp b/queen/queen.cpp
index 79b63ed241..038755043e 100644
--- a/queen/queen.cpp
+++ b/queen/queen.cpp
@@ -347,14 +347,18 @@ void QueenEngine::initialise(void) {
_logic = new LogicGame(this);
}
- MidiDriver *driver = GameDetector::createMidi(GameDetector::detectMusicDriver(MDT_NATIVE | MDT_ADLIB | MDT_PREFER_NATIVE));
+ int midiDriver = GameDetector::detectMusicDriver(MDT_NATIVE | MDT_ADLIB | MDT_PREFER_NATIVE);
+ MidiDriver *driver = GameDetector::createMidi(midiDriver);
if (!driver)
driver = MidiDriver_ADLIB_create(_mixer);
- else if (ConfMan.getBool("native_mt32"))
+ else if (ConfMan.getBool("native_mt32") || (midiDriver == MD_MT32))
driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
_music = new Music(driver, this);
- _music->hasNativeMT32(ConfMan.getBool("native_mt32"));
+ _music->hasNativeMT32(ConfMan.getBool("native_mt32") || (midiDriver == MD_MT32));
+
+ if (midiDriver == MD_MT32)
+ _music->setPassThrough(true);
_sound = Sound::giveSound(_mixer, this, _resource->compression());
_walk = new Walk(this);