Opened 15 years ago

Closed 15 years ago

#2110 closed defect (fixed)

ZAK: crash when trying to fly back to SF

Reported by: SF/sascha_silbe Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Zak McKracken

Description

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 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1)

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.

Attachments (2)

zak.s02 (3.7 KB ) - added by SF/sascha_silbe 15 years ago.
Savegame
zak.s03 (3.6 KB ) - added by SF/sascha_silbe 15 years ago.
Savegame after buying ticket

Download all attachments as: .zip

Change History (14)

by SF/sascha_silbe, 15 years ago

Attachment: zak.s02 added

Savegame

comment:1 by fingolfin, 15 years ago

Summary: crash when trying to fly back to SF after plane scene has been completedZAK: crash when trying to fly back to SF

comment:2 by eriktorbjorn, 15 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 sev-, 15 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 SF/sascha_silbe, 15 years ago

Yes, it does also happen if I save after buying the ticket. I've attached that savegame, too.

by SF/sascha_silbe, 15 years ago

Attachment: zak.s03 added

Savegame after buying ticket

comment:5 by Kirben, 15 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 fingolfin, 15 years ago

What is the status of this item?

comment:7 by Kirben, 15 years ago

I can reproduce the bug in the original version of Zak McKracken.

The problem occurs during script 115: [0131] (9A) Var[52] = VAR_EGO; [0134] (42) startScript(120) [0136] (ED) putActorInRoom(Var[52],Var[44]) [0139] (81) putActor(Var[52],0,60) [013D] (91) animateActor(Var[52],249) [0140] (C0) endCutscene [0141] (9E) walkActorTo(Var[52],8,60) [0145] (62) stopScript(0)

The value of Var[52] is changed during endCutscene, as room 8 is loaded. The entry script of room 8 starts script 40, which changes the value of Var[52] to 249. So walkActorTo(() is called with an invalid actor number by script 115, after the room is loaded.

comment:8 by fingolfin, 15 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 SF/joachimeberhard, 15 years ago

This crash does not happen in DOS.

Thats the only help I can give here I'm afraid.

Regards.

Joachim Eberhard

comment:10 by Kirben, 15 years ago

I added work around to ScummVM CVS for now.

comment:11 by fingolfin, 15 years ago

Owner: set to Kirben
Resolution: fixed
Status: newclosed

comment:12 by fingolfin, 15 years ago

A workaround is the best we can do for this script bug.

Note: See TracTickets for help on using tickets.