diff options
author | Johannes Schickel | 2010-09-15 22:00:20 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-09-15 22:00:20 +0000 |
commit | 6588398ce6fab85e287b10c2781d3797d7639cb9 (patch) | |
tree | 68bb65c1d3363aff0d66313661822a9040090236 /engines/made | |
parent | bb5db4aa3b67c7270b208fe43d829906f7409b63 (diff) | |
download | scummvm-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.cpp | 1 | ||||
-rw-r--r-- | engines/made/music.cpp | 6 |
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; } |