diff options
-rw-r--r-- | engines/agos/agos.cpp | 2 | ||||
-rw-r--r-- | engines/agos/midi.cpp | 8 | ||||
-rw-r--r-- | engines/agos/midi.h | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp index 9604894190..874bed1e11 100644 --- a/engines/agos/agos.cpp +++ b/engines/agos/agos.cpp @@ -73,7 +73,7 @@ static const GameSpecificSettings puzzlepack_settings = { #endif AGOSEngine::AGOSEngine(OSystem *syst) - : Engine(syst), midi(syst) { + : Engine(syst), midi() { _vcPtr = 0; _vc_get_out_of_code = 0; _gameOffsetsPtr = 0; diff --git a/engines/agos/midi.cpp b/engines/agos/midi.cpp index 8f85730fb5..07dea2bb08 100644 --- a/engines/agos/midi.cpp +++ b/engines/agos/midi.cpp @@ -36,7 +36,7 @@ namespace AGOS { // and just provide a factory function. extern MidiParser *MidiParser_createS1D(); -MidiPlayer::MidiPlayer(OSystem *system) { +MidiPlayer::MidiPlayer() { // Since initialize() is called every time the music changes, // this is where we'll initialize stuff that must persist // between songs. @@ -72,6 +72,12 @@ int MidiPlayer::open() { if (ret) 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(200); + return 0; } diff --git a/engines/agos/midi.h b/engines/agos/midi.h index b10460bf3a..a28847a343 100644 --- a/engines/agos/midi.h +++ b/engines/agos/midi.h @@ -84,7 +84,7 @@ public: bool _enable_sfx; public: - MidiPlayer(OSystem *system); + MidiPlayer(); virtual ~MidiPlayer(); void loadSMF(Common::File *in, int song, bool sfx = false); |