Opened 14 years ago

Closed 14 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 14 years ago.
Savegame
zak.s03 (3.6 KB ) - added by SF/sascha_silbe 14 years ago.
Savegame after buying ticket

Download all attachments as: .zip

Change History (14)

by SF/sascha_silbe, 14 years ago

Attachment: zak.s02 added

Savegame

comment:1 by fingolfin, 14 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, 14 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-, 14 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, 14 years ago

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

by SF/sascha_silbe, 14 years ago

Attachment: zak.s03 added

Savegame after buying ticket

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

What is the status of this item?

comment:7 by Kirben, 14 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, 14 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, 14 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, 14 years ago

I added work around to ScummVM CVS for now.

comment:11 by fingolfin, 14 years ago

Owner: set to Kirben
Resolution: fixed
Status: newclosed

comment:12 by fingolfin, 14 years ago

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

Note: See TracTickets for help on using tickets.