diff options
author | Torbjörn Andersson | 2008-01-03 19:43:43 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2008-01-03 19:43:43 +0000 |
commit | 11efbda297e9ed762fba6829cbfbf5a5032f5f1e (patch) | |
tree | 0364331448ecf9ce2d2ea0da940f5b4deaa98625 | |
parent | 9b4fc2f70b7c35d8df5a9e70fb5ea8a118e5628b (diff) | |
download | scummvm-rg350-11efbda297e9ed762fba6829cbfbf5a5032f5f1e.tar.gz scummvm-rg350-11efbda297e9ed762fba6829cbfbf5a5032f5f1e.tar.bz2 scummvm-rg350-11efbda297e9ed762fba6829cbfbf5a5032f5f1e.zip |
Made the Loom Roland music fix a bit more specific. Only one song in EGA Loom
is affected and, according to Kirben, none in Monkey Island 1 VGA. I don't know
about Monkey Island 1 EGA, but I've assumed it uses the same music as the VGA
versions.
svn-id: r30202
-rw-r--r-- | engines/scumm/midiparser_ro.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/engines/scumm/midiparser_ro.cpp b/engines/scumm/midiparser_ro.cpp index 2d4d5acfad..2ef4cecfac 100644 --- a/engines/scumm/midiparser_ro.cpp +++ b/engines/scumm/midiparser_ro.cpp @@ -69,18 +69,15 @@ void MidiParser_RO::parseNextEvent (EventInfo &info) { if (info.command() == 0xA) { ++_lastMarkerCount; info.event = 0xF0; - } else if (info.command() == 0xF && info.event != 0xFF) { + } else if (info.event == 0xF0 || info.event == 0xF1) { 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. + 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; |