[Scummvm-tracker] [ScummVM :: Bugs] #13392: Monkey Island 1 endless loop
ScummVM :: Bugs
trac at scummvm.org
Tue Apr 12 07:27:51 UTC 2022
#13392: Monkey Island 1 endless loop
----------------------+----------------------------
Reporter: Neumi7712 | Owner: (none)
Type: defect | Status: new
Priority: low | Component: Engine: SCUMM
Version: | Resolution:
Keywords: | Game:
----------------------+----------------------------
Comment (by eriktorbjorn):
I can reproduce this with the VGA floppy version (the one with text
inventory, rather than icons), so I guess that's what we're talking about
here.
The script loops until the music ends. But with MIDI / MT-32 music, it
keeps looping so it never stops. (AdLib works fine.)
But it ''also'' only seems to happen if the tune before it is allowed to
loop. If you press "." to skip the lines, you can get through the scene
before that happens, and then the chapter screen will work as expected.
The "music should loop" property is set by a MIDI message. But it's not
cleared when a new tune is loaded, so any looping track will cause all
subsequent tracks to loop. That seems wrong, and I think that's the
problem here.
As far as I can tell, every song in MI1 VGA sets the auto loop flag at the
end. But the player is also used by at the very least MI1 EGA. I don't own
that version, so I can't test that. Either way, I'd like to discuss with
someone before committing this fix:
{{{
diff --git a/engines/scumm/midiparser_ro.cpp
b/engines/scumm/midiparser_ro.cpp
index bfc748f984b..2b8452f03f3 100644
--- a/engines/scumm/midiparser_ro.cpp
+++ b/engines/scumm/midiparser_ro.cpp
@@ -134,6 +134,7 @@ bool MidiParser_RO::loadMusic (byte *data, uint32
size) {
}
_numTracks = 1;
+ _autoLoop = false;
_ppqn = 120;
_tracks[0] = pos + 2;
_markerCount = _lastMarkerCount = 0;
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/13392#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list