[Scummvm-cvs-logs] scummvm master -> 7c3574ed52f8cb88eec25b26d6a1fe2750fc8e77

m-kiewitz m_kiewitz at users.sourceforge.net
Tue Jun 30 16:50:05 CEST 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
7c3574ed52 AUDIO: Miles Audio MT32: adjust sysex target address


Commit: 7c3574ed52f8cb88eec25b26d6a1fe2750fc8e77
    https://github.com/scummvm/scummvm/commit/7c3574ed52f8cb88eec25b26d6a1fe2750fc8e77
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-06-30T16:49:47+02:00

Commit Message:
AUDIO: Miles Audio MT32: adjust sysex target address

sysex may not contain bytes above or equal 0x80, so we adjust
the address accordingly. fixes weird sound getting played
during 7th guest MT32 setup screen

Changed paths:
    audio/miles_mt32.cpp



diff --git a/audio/miles_mt32.cpp b/audio/miles_mt32.cpp
index d28006e..3acd2a9 100644
--- a/audio/miles_mt32.cpp
+++ b/audio/miles_mt32.cpp
@@ -301,6 +301,17 @@ void MidiDriver_Miles_MT32::MT32SysEx(const uint32 targetAddress, const byte *da
 	sysExMessage[5] = (targetAddress >> 8) & 0xFF;
 	sysExMessage[6] = targetAddress & 0xFF;
 
+	// Adjust address in case it's needed
+	if (sysExMessage[6] >= 0x80) {
+		sysExMessage[5]++;
+		sysExMessage[6] -= 0x80;
+	}
+	if (sysExMessage[5] >= 0x80) {
+		sysExMessage[4]++;
+		sysExMessage[5] -= 0x80;
+	}
+	assert(sysExMessage[4] < 0x80); // security check
+
 	sysExChecksum -= sysExMessage[4];
 	sysExChecksum -= sysExMessage[5];
 	sysExChecksum -= sysExMessage[6];
@@ -312,6 +323,7 @@ void MidiDriver_Miles_MT32::MT32SysEx(const uint32 targetAddress, const byte *da
 			break; // Message done
 
 		assert(sysExPos < sizeof(sysExMessage));
+		assert(sysExByte < 0x80); // security check
 		sysExMessage[sysExPos++] = sysExByte;
 		sysExChecksum -= sysExByte;
 	}






More information about the Scummvm-git-logs mailing list