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
This commit is contained in:
Johannes Schickel 2010-09-15 22:00:20 +00:00
parent bb5db4aa3b
commit 6588398ce6
19 changed files with 97 additions and 20 deletions

View file

@ -77,10 +77,10 @@ int MidiPlayer::open() {
return ret;
_driver->setTimerCallback(this, &onTimer);
// General MIDI System On message
// Resets all GM devices to default settings
_driver->sysEx((const byte *)"\x7E\x7F\x09\x01", 4);
g_system->delayMillis(20);
if (_nativeMT32)
_driver->sendMT32Reset();
else
_driver->sendGMReset();
return 0;
}