aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/sound/drivers/midi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/sound/drivers/midi.cpp')
-rw-r--r--engines/sci/sound/drivers/midi.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/engines/sci/sound/drivers/midi.cpp b/engines/sci/sound/drivers/midi.cpp
index 2627f0728c..05d88e5436 100644
--- a/engines/sci/sound/drivers/midi.cpp
+++ b/engines/sci/sound/drivers/midi.cpp
@@ -385,10 +385,11 @@ int MidiPlayer_Midi::getVolume() {
void MidiPlayer_Midi::setReverb(int8 reverb) {
assert(reverb < kReverbConfigNr);
- _reverb = reverb;
+
+ if (_hasReverb && (_reverb != reverb))
+ sendMt32SysEx(0x100001, _reverbConfig[reverb], 3, true);
- if (_hasReverb)
- sendMt32SysEx(0x100001, _reverbConfig[_reverb], 3, true);
+ _reverb = reverb;
}
void MidiPlayer_Midi::playSwitch(bool play) {
@@ -477,7 +478,10 @@ void MidiPlayer_Midi::readMt32Patch(const byte *data, int size) {
setMt32Volume(volume);
// Reverb default only used in (roughly) SCI0/SCI01
- _reverb = str->readByte();
+ byte reverb = str->readByte();
+ if (_version <= SCI_VERSION_0_LATE)
+ setReverb(reverb);
+
_hasReverb = true;
// Skip reverb SysEx message