[ scummvm-Patches-591172 ] SIMON2: Lockup workaround

noreply at sourceforge.net noreply at sourceforge.net
Mon Aug 5 18:30:04 CEST 2002


Patches item #591172, was opened at 2002-08-05 18:30
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=418822&aid=591172&group_id=37116

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Torbjörn Andersson (eriktorbjorn)
Assigned to: Nobody/Anonymous (nobody)
Summary: SIMON2: Lockup workaround

Initial Comment:
I've been trying to play simon2win, but it would always
lock up on the city overhead view.I think I've found a
workaround for that now.

First, here's how to trigger the lockup:

Go to the city overhead view. (Since this can be
reached from the very beginning of the game I'm not
including a saved game.) Move the mouse cursor over a
recognized building, e.g. the Town Square. The name of
the building will be displayed. Before this text is
removed, move the mouse cursor to over another
recognized building.

The game no longer responds to any mouse events. In
effect, it has locked up.

The problem appears to be that although timer_proc1()
is getting called (i.e. ScummVM itself has not hung),
_lock_word is 0x0040 so it never gets past the first
lock test which means, among other things, that
handle_mouse_moved() is never called.

As far as I can see, there's only one place where this
can happen, and that is in start_vga_code(). However,
if has_vga_struct_with_id() returns true, the function
will return without clearing the lock.

The patch switches places between setting the lock and
calling has_vga_struct_with_id(). I can't promise this
won't break anything else, but it looks promising to
me. (Anyway it's much easier to test for bugs if the
game is playable in the first place. :-)


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=418822&aid=591172&group_id=37116




More information about the Scummvm-tracker mailing list