Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#2491 closed defect (fixed)

KYRA: Assertion at final scene

Reported by: SF/weine Owned by: vinterstum
Priority: normal Component: Engine: Kyra
Version: Keywords:
Cc: Game: Kyrandia 1


At the very end of Legend of Kyrandia, in the room with the kyragem (the Kyravault), the game crashes with the following assert() when Malcolm fires his magic at you.

Error message:

scummvm: kyra/screen.cpp:286: void Kyra::Screen::copyRegion(int, int, int, int, int, int, int, int, int): Assertion `x1 + w <= SCREEN_W && y1 + h <= SCREEN_H' failed.

Commenting out the mentioned assertion makes things work (well, at least you get to complete the game...).

This is with the very latest cvs version (checked out a few hours after the announcement on scummvm-devel that the CVS repo has been frozen);

Linux build, compiled with ScummVM 0.9.0cvs (Feb 6 2006 13:25:00) Features compiled in: Vorbis FLAC MP3 ALSA zLib MPEG2 FluidSynth

The game version is the Floppy/English version.

Save game attached. Things to do to trigger: Click on exit (left side of screen). Malcolm enters. Wait...

Ticket imported from: #1425622. Ticket imported from: bugs/2491.

Attachments (1)

kyra1.006 (2.0 KB ) - added by SF/weine 18 years ago.
A way to trigger the assert()

Download all attachments as: .zip

Change History (10)

by SF/weine, 18 years ago

Attachment: kyra1.006 added

A way to trigger the assert()

comment:1 by fingolfin, 18 years ago

Owner: set to lordhoto
Summary: Assertion at final sceneKYRA: Assertion at final scene

comment:2 by vinterstum, 18 years ago

Having some problems reproducing this bug, even with the attached savegame.

What version number is your copy of Kyra? Should be listed if you start it in DOSBox.

comment:3 by vinterstum, 18 years ago

Also, in that copyRegion() function, could you remove the first parameter of the debug() call right at the start of the function (the '9, '), trigger the assert again, and then post what values were printed out as the last call :)


comment:4 by SF/weine, 18 years ago

It says Version 1.0 on startup.

Screen::copyRegion(259, 47, 259, 47, 53, 54, 2, 0, 2) Screen::copyRegion(60, 25, 60, 25, 16, 9, 2, 0, 0) Screen::copyRegion(28325, 25, 28325, 25, 16, 9, 2, 0, 0)

Are the last three before the crash (even I can see that those coordinates are probably not too healthy...)

comment:5 by lordhoto, 18 years ago

Could you provide us output when running scummvm with -d9? Should be something like: "scummvm -d9 kyra1 > logfile.txt" in your terminal and then give us only the last ~50 rows (at the VERY bottom).

comment:6 by vinterstum, 18 years ago

Ok, I just committed a possible fix for this. Please let us know if it works :)


comment:7 by SF/weine, 18 years ago

That fix indeed seems to work. Thanks a lot!

comment:8 by vinterstum, 18 years ago

Owner: changed from lordhoto to vinterstum
Resolution: fixed
Status: newclosed

comment:9 by vinterstum, 18 years ago

Excellent, thanks for the help :)

Note: See TracTickets for help on using tickets.