diff options
author | Jamieson Christian | 2003-10-07 15:13:39 +0000 |
---|---|---|
committer | Jamieson Christian | 2003-10-07 15:13:39 +0000 |
commit | 69964cda56f6570158197def169564a2aa1776ac (patch) | |
tree | 2f19e2e771dd500ca859d9590cd28f013f8f5e3d /sky/music | |
parent | 537ee7166fc50701845fd2ad73c5124e0f9be0db (diff) | |
download | scummvm-rg350-69964cda56f6570158197def169564a2aa1776ac.tar.gz scummvm-rg350-69964cda56f6570158197def169564a2aa1776ac.tar.bz2 scummvm-rg350-69964cda56f6570158197def169564a2aa1776ac.zip |
Corrected MT-32 master volume SysEx
svn-id: r10671
Diffstat (limited to 'sky/music')
-rw-r--r-- | sky/music/mt32music.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sky/music/mt32music.cpp b/sky/music/mt32music.cpp index d5bf335422..81637f4754 100644 --- a/sky/music/mt32music.cpp +++ b/sky/music/mt32music.cpp @@ -62,12 +62,14 @@ void SkyMT32Music::timerCall(void) { } void SkyMT32Music::setVolume(uint8 volume) { - - uint8 sysEx[6]; + uint8 sysEx[10] = "\x41\x10\x16\x12\x10\x00\x16\x00\x00"; _musicVolume = volume; - sysEx[0] = 0x7F; sysEx[1] = 0x7F; sysEx[2] = 0x04; sysEx[3] = 0x01; - sysEx[4] = 0; sysEx[5] = volume & 0x7F; - _midiDrv->sysEx(sysEx, 6); + sysEx[7] = (volume > 100) ? 100 : volume; + sysEx[8] = 0x00; + for (uint8 cnt = 4; cnt < 8; cnt++) + sysEx[8] -= sysEx[cnt]; + sysEx[8] &= 0x7F; + _midiDrv->sysEx(sysEx, 9); } void SkyMT32Music::setupPointers(void) { |