[Scummvm-cvs-logs] SF.net SVN: scummvm: [30132] scummvm/trunk/engines/scumm/midiparser_ro.cpp
eriktorbjorn at users.sourceforge.net
eriktorbjorn at users.sourceforge.net
Wed Jan 2 00:30:30 CET 2008
Revision: 30132
http://scummvm.svn.sourceforge.net/scummvm/?rev=30132&view=rev
Author: eriktorbjorn
Date: 2008-01-01 15:30:29 -0800 (Tue, 01 Jan 2008)
Log Message:
-----------
Added what I hope is the proper fix for bug #1498785 ("LOOM: Unknown Roland
MIDI music events"). It would probably be safe to commit to the 0.11 branch,
but I don't know for sure which games would be affected other than EGA Loom.
Modified Paths:
--------------
scummvm/trunk/engines/scumm/midiparser_ro.cpp
Modified: scummvm/trunk/engines/scumm/midiparser_ro.cpp
===================================================================
--- scummvm/trunk/engines/scumm/midiparser_ro.cpp 2008-01-01 22:55:54 UTC (rev 30131)
+++ scummvm/trunk/engines/scumm/midiparser_ro.cpp 2008-01-01 23:30:29 UTC (rev 30132)
@@ -69,9 +69,20 @@
if (info.command() == 0xA) {
++_lastMarkerCount;
info.event = 0xF0;
- } else if (info.event == 0xF0) {
+ } else if (info.command() == 0xF) {
byte delay = *(_position._play_pos++);
info.delta += delay;
+ if (info.event != 0xF0) {
+ // The event is usually 0xF0 but there are a
+ // few cases in EGA Loom where it's 0xF1. I'm
+ // speculating that this is for adding values
+ // greater than 255 to info.delta. See bug
+ // #1498785.
+ //
+ // The actual calculation is pure guesswork,
+ // but the result sounds good enough to me.
+ 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