diff options
Diffstat (limited to 'queen/queen.cpp')
-rw-r--r-- | queen/queen.cpp | 10 |
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); |