Opened 3 years ago
Closed 3 years ago
#13392 closed defect (fixed)
Monkey Island 1 endless loop
Reported by: | Neumi7712 | Owned by: | eriktorbjorn |
---|---|---|---|
Priority: | low | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: |
Description
When starting The Secret of Monkey Island (VGA, english) and not pressing anything, the "Part One The Tree Trials" screen won't go away and the music will play in a loop.
It's a minor inconvinience, by pressing ESC the game continues as it should. Important: Don't press anything until that scene. If you press ESC at any point before, it will continue without looping.
Just in case, here's my configuration.
[monkey-vga]
filtering=true
mute=false
engineid=scumm
multi_midi=false
gui_saveload_last_pos=0
platform=pc
music_driver=windows_VirtualMIDISynth #1
vsync=true
talkspeed=85
music_volume=190
opl_driver=auto
aspect_ratio=true
guioptions=sndNoSpeech lang_English
fullscreen=false
sfx_volume=197
description=Monkey Island 1: The Secret of Monkey Island (DOS, VGA, English)
speech_volume=189
midi_gain=100
path=E:\GamesScumm\Monkey Island 1 (VGA, e)\
gameid=monkey
language=en
stretch_mode=fit_force_aspect
tested with 2.5.1 release and daily build 2022-04-04.
Change History (3)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Nice funky loop :)
@eriktorbjorn: Your diff works well with both my floppy VGA and EGA versions from the Limited Run Games set. They both had the same bug, which disappears with your diff.
comment:3 by , 3 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Thanks for confirming that the EGA version had the same bug. As far as I know, the only other game that uses this MIDI parser is Loom, and that game does not - to the best of my knowledge - ever loop music.
I've committed my proposed fix. Let me know if there's still problems with the next daily build.
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: