[Scummvm-cvs-logs] SF.net SVN: scummvm: [30203] scummvm/branches/branch-0-11-0/engines/scumm/ midiparser_ro.cpp

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Thu Jan 3 20:55:21 CET 2008


Revision: 30203
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30203&view=rev
Author:   eriktorbjorn
Date:     2008-01-03 11:55:21 -0800 (Thu, 03 Jan 2008)

Log Message:
-----------
Backported fix for bug #1498785 ("LOOM: Unknown Roland MIDI music events").

Modified Paths:
--------------
    scummvm/branches/branch-0-11-0/engines/scumm/midiparser_ro.cpp

Modified: scummvm/branches/branch-0-11-0/engines/scumm/midiparser_ro.cpp
===================================================================
--- scummvm/branches/branch-0-11-0/engines/scumm/midiparser_ro.cpp	2008-01-03 19:43:43 UTC (rev 30202)
+++ scummvm/branches/branch-0-11-0/engines/scumm/midiparser_ro.cpp	2008-01-03 19:55:21 UTC (rev 30203)
@@ -69,9 +69,17 @@
 		if (info.command() == 0xA) {
 			++_lastMarkerCount;
 			info.event = 0xF0;
-		} else if (info.event == 0xF0) {
+		} else if (info.event == 0xF0 || info.event == 0xF1) {
 			byte delay = *(_position._play_pos++);
 			info.delta += delay;
+			if (info.event == 0xF1) {
+				// This event is, as far as we have been able
+				// to determine, only used in one single song
+				// in EGA Loom. It seems to be meant for adding
+				// values greater than 255 to info.delta. See
+				// bug #1498785.
+				info.delta += 256;
+			}
 			continue;
 		}
 		break;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list