aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/agos.cpp2
-rw-r--r--engines/agos/midi.cpp8
-rw-r--r--engines/agos/midi.h2
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);