aboutsummaryrefslogtreecommitdiff
path: root/simon
diff options
context:
space:
mode:
authorJamieson Christian2003-10-01 17:34:46 +0000
committerJamieson Christian2003-10-01 17:34:46 +0000
commit91dc619adfc2136651f6afeed5fda9926c983f23 (patch)
tree9592683e69e45e19607063ee201433ae7a7ac55e /simon
parent57eb9654b79e088a3cac406fad9b3fedccf30f29 (diff)
downloadscummvm-rg350-91dc619adfc2136651f6afeed5fda9926c983f23.tar.gz
scummvm-rg350-91dc619adfc2136651f6afeed5fda9926c983f23.tar.bz2
scummvm-rg350-91dc619adfc2136651f6afeed5fda9926c983f23.zip
Fix for Bug [812995] MT-32: wrong channel mapping
Implemented channel mask for Simon 1/2 when using --native-mt32. svn-id: r10525
Diffstat (limited to 'simon')
-rw-r--r--simon/simon.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp
index 5949e586b0..4a1e01b199 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -203,8 +203,6 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)
: Engine(detector, syst), midi (syst) {
OSystem::Property prop;
- MidiDriver *driver = detector->createMidi();
-
_vc_ptr = 0;
_game_offsets_ptr = 0;
@@ -476,8 +474,11 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst)
set_volume(detector->_sfx_volume);
// Setup midi driver
+ MidiDriver *driver = detector->createMidi();
if (!driver)
driver = MidiDriver_ADLIB_create(_mixer);
+ else if (detector->_native_mt32)
+ driver->property (MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
midi.mapMT32toGM (!(_game & GF_SIMON2) && !detector->_native_mt32);
midi.set_driver(driver);