Opened 18 years ago
Closed 17 years ago
#2110 closed defect (fixed)
ZAK: crash when trying to fly back to SF
|Reported by:||SF/sascha_silbe||Owned by:||Kirben|
ScummVM version: ScummVM 0.7.1 (Jul 2 2005 21:25:50) Features compiled in: Vorbis FLAC MP3 ALSA zLib MPEG2 CVS snapshot 20050731
Game: Zak McKracken Game language: english Game version: PC, EGA?
OS: Linux Distro: Gentoo CC: gcc version 3.3.5-20050130 (Gentoo Linux 184.108.40.20650130-r1, ssp-220.127.116.1150130-1, pie-18.104.22.168)
Reproduction: Summary: pick up everything needed to enter the plane, pick up everything in plane, try to fly back to SF Steps: pick up wallpaper open door walk to fridge open fridge pick up egg open cabinet pick up crayon use yellow crayon on torn wallpaper pick up butter knife walk to desk pick up plastic card use butter knife with plastic card open desk drawer pick up kazoo walk to bus use kazoo use CashCard in CashCard reader walk to gate open toilet door pick up toilet paper use toilet paper in sink turn on sink wait for overflow use call button walk to microwave open microwave use egg in microwave close microwave turn on microwave pick up cushion pick up lighter open all bins pick up oxygen tank [at this point the game has been saved] <ESC> use terminal buy ticket to SF walk to gate [crash]
scummvm output: sascha@caravan:~$ scummvm zak Looking for zak Trying to start game 'Zak McKracken and the Alien Mindbenders' Classic V1 game detected (8:115:0x147): Invalid actor 249 in o2_walkActorTo (8:115:0x147): Invalid actor 249 in o2_walkActorTo! sascha@caravan:~$
Ticket imported from: #1252606. Ticket imported from: bugs/2110.
Change History (14)
by , 18 years ago
comment:1 by , 18 years ago
|Summary:||crash when trying to fly back to SF after plane scene has been completed → ZAK: crash when trying to fly back to SF|
comment:2 by , 18 years ago
I wonder if this only happens with the "Classic V1" version because I wasn't able to reproduce it with the "Enhanced V2" version. (I only have the V2 version myself.)
It did crash once at a different spot, but that was not reproducable (time to dig out Valgrind, i guess...), and when I reloaded a savegame I made on the plane the screen wasn't fully redrawn, but those are different bugs.
comment:3 by , 18 years ago
Is complete sequence really required, or it will crash if you
(a) save game right after buying ticket (b) load it (c) walk to gate
comment:4 by , 18 years ago
Yes, it does also happen if I save after buying the ticket. I've attached that savegame, too.
by , 18 years ago
Savegame after buying ticket
comment:5 by , 18 years ago
Might be worth looking at the Valgrind log I just attached to the other recent Zak McKracken bug report (#1252714).
comment:6 by , 17 years ago
What is the status of this item?
comment:7 by , 17 years ago
I can reproduce the bug in the original version of Zak McKracken.
The problem occurs during script 115:  (9A) Var = VAR_EGO;  (42) startScript(120)  (ED) putActorInRoom(Var,Var)  (81) putActor(Var,0,60) [013D] (91) animateActor(Var,249)  (C0) endCutscene  (9E) walkActorTo(Var,8,60)  (62) stopScript(0)
The value of Var is changed during endCutscene, as room 8 is loaded. The entry script of room 8 starts script 40, which changes the value of Var to 249. So walkActorTo(() is called with an invalid actor number by script 115, after the room is loaded.
comment:8 by , 17 years ago
I assume the original doesn't crash in this situation, but just silently ignores the error? In that case, we could add a workaround to o2_walkActorTo in the source, as for other similar script bugs...
I.e. add a WORKAROUND comment pointing to this bug report, explaining the situation, and which allows actor 249 in this script and game...
comment:9 by , 17 years ago
This crash does not happen in DOS.
Thats the only help I can give here I'm afraid.
comment:10 by , 17 years ago
I added work around to ScummVM CVS for now.
comment:11 by , 17 years ago
|Status:||new → closed|
comment:12 by , 17 years ago
A workaround is the best we can do for this script bug.