aboutsummaryrefslogtreecommitdiff
path: root/engines/made
diff options
context:
space:
mode:
authorJohannes Schickel2010-09-15 22:00:20 +0000
committerJohannes Schickel2010-09-15 22:00:20 +0000
commit6588398ce6fab85e287b10c2781d3797d7639cb9 (patch)
tree68bb65c1d3363aff0d66313661822a9040090236 /engines/made
parentbb5db4aa3b67c7270b208fe43d829906f7409b63 (diff)
downloadscummvm-rg350-6588398ce6fab85e287b10c2781d3797d7639cb9.tar.gz
scummvm-rg350-6588398ce6fab85e287b10c2781d3797d7639cb9.tar.bz2
scummvm-rg350-6588398ce6fab85e287b10c2781d3797d7639cb9.zip
MIDI: Send a reset MIDI device signal on startup.
This is currently done in the engine code. I adapted AGI, AGOS, DRACI, GROOVIE, LURE, MADE, QUEEN, SAGA, SKY, TINSEL and TOUCHE to send a reset device on startup. The sound output still works fine (started up a game from every engine), so this should hopefully not introduce any regressions. As far as I can tell it seems that SCUMM does send a proper device reset, so I did not touch it. KYRA only sends a proper reset for MT-32 currently. I am not sure about SCI though. This fixes bug #3066826 "SIMON: MIDI notes off when using RTL after SCI". svn-id: r52736
Diffstat (limited to 'engines/made')
-rw-r--r--engines/made/made.cpp1
-rw-r--r--engines/made/music.cpp6
2 files changed, 6 insertions, 1 deletions
diff --git a/engines/made/made.cpp b/engines/made/made.cpp
index 94926014d3..51cdd83b2a 100644
--- a/engines/made/made.cpp
+++ b/engines/made/made.cpp
@@ -107,6 +107,7 @@ MadeEngine::MadeEngine(OSystem *syst, const MadeGameDescription *gameDesc) : Eng
_music = new MusicPlayer(driver);
_music->setNativeMT32(native_mt32);
+ _music->open();
//_music->setAdLib(adlib);
// Set default sound frequency
diff --git a/engines/made/music.cpp b/engines/made/music.cpp
index bb45367805..4e2789e5fa 100644
--- a/engines/made/music.cpp
+++ b/engines/made/music.cpp
@@ -40,7 +40,6 @@ namespace Made {
MusicPlayer::MusicPlayer(MidiDriver *driver) : _parser(0), _driver(driver), _looping(false), _isPlaying(false), _passThrough(false), _isGM(false) {
memset(_channel, 0, sizeof(_channel));
_masterVolume = 0;
- this->open();
_xmidiParser = MidiParser::createParser_XMIDI();
_smfParser = MidiParser::createParser_SMF();
}
@@ -81,6 +80,11 @@ int MusicPlayer::open() {
if (ret)
return ret;
+ if (_nativeMT32)
+ _driver->sendMT32Reset();
+ else
+ _driver->sendGMReset();
+
_driver->setTimerCallback(this, &onTimer);
return 0;
}