aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sfx/iterator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/sfx/iterator.cpp')
-rw-r--r--engines/sci/sfx/iterator.cpp8
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? */
}
}