diff options
Diffstat (limited to 'engines/sci/sfx/iterator.cpp')
-rw-r--r-- | engines/sci/sfx/iterator.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/sci/sfx/iterator.cpp b/engines/sci/sfx/iterator.cpp index de362a79b7..96bdee84b5 100644 --- a/engines/sci/sfx/iterator.cpp +++ b/engines/sci/sfx/iterator.cpp @@ -131,12 +131,18 @@ void SongIteratorChannel::resetSynthChannels() { tell_synth_func *tell = sfx_get_player_tell_func(); for (int i = 0; i < MIDI_CHANNELS; i++) { - if (saw_notes & (1 << i)) { + if (playmask & (1 << i)) { buf[0] = 0xe0 | i; /* Pitch bend */ buf[1] = 0x80; /* Wheel center */ buf[2] = 0x40; if (tell) tell(3, buf); + + buf[0] = 0xb0 | i; // Set control + buf[1] = 0x40; // Hold pedal + buf[2] = 0x00; // Off + if (tell) + tell(3, buf); /* TODO: Reset other controls? */ } } |