aboutsummaryrefslogtreecommitdiff
path: root/simon/midi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'simon/midi.cpp')
-rw-r--r--simon/midi.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/simon/midi.cpp b/simon/midi.cpp
index f910a8b146..aca5b72ba4 100644
--- a/simon/midi.cpp
+++ b/simon/midi.cpp
@@ -108,8 +108,9 @@ void MidiPlayer::send (uint32 b) {
if ((b & 0xFFF0) == 0x07B0) {
// Adjust volume changes by master volume.
- volume = (byte) ((b >> 16) & 0xFF) * _masterVolume / 255;
+ volume = (byte) ((b >> 16) & 0x7F);
_volumeTable [b & 0xF] = volume;
+ volume = volume * _masterVolume / 255;
b = (b & 0xFF00FFFF) | (volume << 16);
} else if ((b & 0xF0) == 0xC0 && _map_mt32_to_gm) {
b = (b & 0xFFFF00FF) | (mt32_to_gm [(b >> 8) & 0xFF] << 8);