[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