Opened 13 years ago

Closed 10 years ago

#3099 closed defect (fixed)

ZAK FM-TOWNS: Crash when entering Hostel from outside

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

Description

ScummVM version 0.91
Bug details, including instructions on reproducing : (27:205:0x12944):Value 0 is out of bounds (1,32) (Class 0 out of range in getClass).
Language of game: English
Version of game: FM Towns
Platform and Compiler: Windows XP Compiler: none
Saved game attached

Ticket imported from: #1668393. Ticket imported from: bugs/3099.

Attachments (1)

zak-fm.s09 (11.9 KB ) - added by Kirben 10 years ago.
Open and close the door

Download all attachments as: .zip

Change History (13)

comment:1 by fingolfin, 13 years ago

Summary: Zak McKracken crash when entering the Hostel buildingZAK FM-TOWNS: crash when entering the Hostel building

comment:2 by bluegr, 13 years ago

This is very strange
I get the same error with the attached savegame when I try to open the door or push the button next to it. This happens with both 0.9.1 and the latest SVN

Must be something that this user did that caused this game to crash, as I have successfully finished ZAK FM-TOWNS in the past... I'll have to dig through my savegames and see if I still have any

comment:3 by fingolfin, 13 years ago

The save seems to be broken. It executes a script at a wrong offset. A typical problem that would occur when using a savestate made by a different version of a game. Not sure how this could have happened here, unless maybe the save was at some point used in a fan made translation of Zak FM-TOWNS?

comment:4 by fingolfin, 13 years ago

Status: newpending

comment:5 by SF/sf-robot, 13 years ago

Status: pendingclosed

comment:6 by SF/sf-robot, 13 years ago

This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).

comment:7 by SF/coeins, 12 years ago

I have noticed the same bug. With an unmodified Zak/Town Version (no Fan-Translation or so) under Windows, latest ScummVM 0.11 Daily Snapshot.

To reproduce do the following: Start new game, get blue crystal, talk to Annie, switch to one of the girls on Mars. (Or load any given savegame where you can play on Mars) Go inside the hostel an replace the fuse. Leave the hostel and close the door from outside. Now try to reopen it.

I also tried that with an EGA version, that one worked fine. The problem occured only under the FM-Town version.

comment:8 by Kirben, 10 years ago

Status: closednew

by Kirben, 10 years ago

Attachment: zak-fm.s09 added

Open and close the door

comment:9 by Kirben, 10 years ago

Priority: normalblocker

comment:10 by Kirben, 10 years ago

I can reproduce the issue in a fresh game, under current ScummVM SVN, a critical issue for the next release.

I attached an updated saved game. Load the saved game, then close and open the door.

comment:11 by Kirben, 10 years ago

There was previously an unexplained FIXME comment for ZAK256, which I removed in revision 20967, which must have been specifically for this script.

There is a script bug (in room 27 script 205), caused by the wrong opcode (classOfIs) been used to check the state of the inside door of the Hostel on Mars, when opening the Hostel door from the outside. Specifically this segment of the script:
[001A] (1D) if (classOfIs(465,[0]) {

The original code for the classOfIs opcode, would subtract one from the class value (class - 1), and select the real class value via a bit array (class & 7). So I expect the class value overflowed in the original version, and the highest bit array value was used in this case.

Fixed in ScummVM SVN, by adding a workaround for this script bug.

comment:12 by Kirben, 10 years ago

Owner: set to Kirben
Resolution: fixed
Status: newclosed
Summary: ZAK FM-TOWNS: crash when entering the Hostel buildingZAK FM-TOWNS: Crash when entering Hostel from outside
Note: See TracTickets for help on using tickets.