Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#6017 closed defect (fixed)

SQ1SCI: kMemory crash

Reported by: misterhands Owned by: bluegr
Priority: normal Component: Engine: SCI
Keywords: script Cc:
Game: Space Quest 1

Description

SCUMMVM 1.4.1 win32
SQ1 SCI DOS English

While testing for the previous kGetAngle crash (ID: 3513207), I've just discovered a new bug.
It's a bit harder to reproduce as it appears to be somewhat random.

My best instructions for reproducing :
Load the provided savegame, and just walk Roger around in the same room.
Also the crash likes to happen when trying to leave the room by the right side of the screen.
So alternate walking in the room 40, leaving to the right screen, come back and so on.
Keep clicking everywhere and it should crash. Usually it doesn't take long at all.
Watch for those force fields though ! :-)

Output :
parameter 0: 0000:0005 (integer), should be null, integer
parameter 1: 005d:000c (reference, invalid), may be any (optional) (more may follow)
[VM] kMemory[72]: signature mismatch via method ::export 6 (room 40, script 999, localCall 0xffffffff)!

So it looks similar to the kGetAngle crash. Possibly some missing parameters in a script again ?

Ticket imported from: #3513765. Ticket imported from: bugs/6017.

Attachments (1)

sq1sci.052 (47.5 KB ) - added by misterhands 8 years ago.

Download all attachments as: .zip

Change History (11)

by misterhands, 8 years ago

Attachment: sq1sci.052 added

comment:1 by lordhoto, 8 years ago

Summary: SQ1SCI : kMemory crashSQ1SCI: kMemory crash

comment:2 by digitall, 8 years ago

Owner: set to bluegr

comment:3 by digitall, 8 years ago

Replicated on Linux x86_32 with the latest Git master and the attached savegame.

I got this by walking to the very bottom right hand corner of the screen, though my engine abort differs slightly as I get:
parameter 1: 005a:000c (reference, invalid), may be any (optional) (more may follow)
not 5d, otherwise identical.

comment:4 by digitall, 8 years ago

I think this occurs when Roger hits the forcefields and should die, but the pilot droid is still moving... The engine abort occurs prior to the death animation.

I also get a number of "WARNING: AvoidPath: start point is contained in multiple polygons!" in these screens, but they don't seem to be directly related..

comment:5 by digitall, 8 years ago

Have added a workaround for this in commit:
639c54a306f985a6ae5715312075722e818b14ec

This is based on a previous workaround for Laura Bow 2 : The Dagger of Amon Ra.

thebluegr: If you could check this workaround for "correctness" and the relevant script, I would be grateful. Thanks.

comment:6 by digitall, 8 years ago

Resolution: fixed

comment:7 by misterhands, 8 years ago

Yes I have noticed these AvoidPath warnings as well.
They seem to occur when Roger is stuck because of the droid, and has trouble finding a path to the required spot. At least there is no crash because of this ! (AFAIK)

I have noticed many warnings while playing games with scummvm, especially with SCI games. Should we bother reporting them ?

comment:8 by digitall, 8 years ago

misterhands: Generally no.. Unless they are connected with a observed graphics, sound or other bug in the game or crash.
They are warnings so indicate something a bit wrong, but not critical errors.

Though if you have been keeping notes of these, savegames, replication sequence in SCI games and want to run them past one of our SCI devs, I would suggest you do this informally via the IRC channel. If any are critical, then the dev will advise you to file those as a bug.

comment:9 by bluegr, 7 years ago

Should be fixed now, closing

comment:10 by bluegr, 7 years ago

Keywords: script added
Status: newclosed
Note: See TracTickets for help on using tickets.