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 | |
| 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
| -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) {  | 
