Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#766 closed defect (fixed)

COMI: Saved games crash.

Reported by: SF/barneyntd Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 3

Description

I'm trying to play COMI english version 1.0 from the PC CDs (bought
recently in the UK) under MacOS X, using ScummVM 0.4.0 (2003-05-
11).

If I save a game in part 2 (The curse gets worse), when I reload, as
soon as I look at my inventory, the game crashes. It draws the "chest"
full of items, but then either "unexpectedly quits" or drops into the
debugger with an error such as:
ERROR (FOKA) Not found in 0... illegal block len -785460946
Typing "exit" immediately quits.

This doesn't happen in part 1, or in other games I have tried (Monkey
1, Monkey 2, DOTT). It happened in all the CVS versions I compiled
myself, as well as the released binary. I don't know whether it
happens in Part 3 or later, as I haven't got that far!

I will attach a saved game to this bug report.

Barney.

Ticket imported from: #737139. Ticket imported from: bugs/766.

Attachments (5)

comi.s02 (211.4 KB ) - added by SF/barneyntd 16 years ago.
Saved game which crashes on reload.
comi-garbage.png (309.0 KB ) - added by fingolfin 16 years ago.
Some garbage at botom of screen
comi-blasterror.png (48.5 KB ) - added by fingolfin 16 years ago.
Blast error
comi-shuffle.png (119.8 KB ) - added by fingolfin 16 years ago.
Shuffled screen behind inventory
comi-shuffle2.png (268.5 KB ) - added by fingolfin 16 years ago.
Shuffled screen (inventory hidden again)

Download all attachments as: .zip

Change History (19)

by SF/barneyntd, 16 years ago

Attachment: comi.s02 added

Saved game which crashes on reload.

comment:1 by SF/barneyntd, 16 years ago

Component: Engine: SCUMM
Game: Monkey Island 3

comment:2 by fingolfin, 16 years ago

I only have hte german version of Comi so I can't try this save game.
However, I never encountered this problem nor did I ever hear about it
(which doesn't mean it doesn't exist, mind you :-).

I put some saving related changes in latest CVS, you might want to try with
that (in older code versions, including 0.4.0, a few script variables could be
used incorrectly; this is fixed in latest CVS).

If you start the game like this:
./scummvm -d0 -b715 comi
and then save and load, does the problem occur?

comment:3 by SF/barneyntd, 16 years ago

I tried the latest cvs version: same problem. This time it dropped into the
console with error message:
ERROR: akos_increaseAnim: invalid code cfcf

Next I tried
./scummvm -d0 -b715 comi
(as requested) which gave an error:

Cannot find file: `comi.la2`
Insert disc 2 into drive
/Volumes/MONKEY3_1/
Hit OK to retry, Cancel to exit

and the following terminal output:

Debuglevel (from command line): 0
Looking for comi
Trying to start game 'The Curse of Monkey Island', version 8.1.0
WARNING: Illegal access to variable VAR_V6_EMSSPACE in file scumm/
scummvm.cpp, line 820!
WARNING: Illegal access to variable VAR_PERFORMANCE_1 in file scumm/
gfx.cpp, line 207!
WARNING: Illegal access to variable VAR_PERFORMANCE_2 in file scumm/
gfx.cpp, line 215!
DEBUG: room number in boot = 715
DEBUG: sputm-debug = 1
WARNING: Set userface charset to 1!
DEBUG: exit room 1
(0:71:0xAE63): Cannot find file: 'comi.la2'!

I swapped the discs, but it didn't work: it was still looking in /Volumes/
MONKEY3_1/ instead of /Volumes/MONKEY3_2/. So I can't try what you
asked.

Barney.

comment:4 by fingolfin, 16 years ago

I forgot that one can actually (with comi, and maybe also Dig/FT) load
english save games in the german version, and vice versa (they are localized
using an external file, not by modifying the scripts).
Anyway, I can't reproduce any problems with your save game. Mabye do a
"make clean && make" before trying again, sorry, can't say much more useful
right now...

Maybe your data files are the problem? Hm... Olki, you have a mac, too, can
you reproduce this?

Barney, did you try the "./scummvm -d0 -b715 comi" with CD 2 inserted
initially? BTW if you have enough disk space you can also just copy the data
files to your HD.

comment:5 by SF/barneyntd, 16 years ago

I didn't just try "make clean", I deleted the whole folder and got a new copy
from cvs. Same problem.

I tried "./scummvm -d0 -b715 comi" with the second disk installed, and got
a similar error:

Cannot find file: `comi.la0`
Insert disc 0 into drive
/Volumes/MONKEY3_1/
Hit OK to retry, Cancel to exit

Next I tried adding the game from the second disk, followed by "./scummvm
-d0 -b715 comia" (comia is the name it gave to the new game) but I just got:

Cannot find file: `comi.la1`
Insert disc 1 into drive
/Volumes/MONKEY3_2/
Hit OK to retry, Cancel to exit

Finally I copied comi.la0, comi.la1, comi.la2 and all of the contents of the
two RESOURCES folders to my hard disk and tried running it from there
(game comib). Same problem saving & reloading in Part 2. Tried
./scummvm -d0 -b715 comib
save, quit, restart, load, open inventory. It ran for a bit, then "unexpectedly
quit". Here is the terminal output:

Debuglevel (from command line): 0
Looking for comi
Trying to start game 'The Curse of Monkey Island', version 8.1.0
WARNING: Illegal access to variable VAR_V6_EMSSPACE in file scumm/
scummvm.cpp, line 820!
WARNING: Illegal access to variable VAR_PERFORMANCE_1 in file scumm/
gfx.cpp, line 207!
WARNING: Illegal access to variable VAR_PERFORMANCE_2 in file scumm/
gfx.cpp, line 215!
DEBUG: room number in boot = 715
DEBUG: sputm-debug = 1
WARNING: Set userface charset to 1!
DEBUG: exit room 1
DEBUG: exit room 1
WARNING: Illegal access to variable VAR_V6_EMSSPACE in file scumm/
scummvm.cpp, line 820!
WARNING: o8_startVideo(/Volumes/Apps/Scumm/comi//liftcrse.san)!
2003-05-14 12:16:22.801 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0x961ca0 of class NSCFArray autoreleased with no pool in place -
just leaking
2003-05-14 12:16:22.803 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0xf9dba0 of class NSCFArray autoreleased with no pool in place - just
leaking
2003-05-14 12:16:22.804 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0x1e972f0 of class NSCFArray autoreleased with no pool in place -
just leaking
2003-05-14 12:16:22.806 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0xf9dbc0 of class NSCFArray autoreleased with no pool in place - just
leaking
2003-05-14 12:16:22.811 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0xa30783b0 of class NSCFString autoreleased with no pool in place -
just leaking
2003-05-14 12:16:22.813 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0x1f04310 of class NSCFArray autoreleased with no pool in place -
just leaking
2003-05-14 12:16:22.815 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0x1f16150 of class NSCFArray autoreleased with no pool in place -
just leaking
2003-05-14 12:16:22.816 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0xfa5ae0 of class SDL_QuartzWindow autoreleased with no pool in
place - just leaking
2003-05-14 12:16:22.819 scummvm[3618] *** _NSAutoreleaseNoPool():
Object 0x1ef1be0 of class NSCFArray autoreleased with no pool in place -
just leaking

Barney.

comment:6 by fingolfin, 16 years ago

(forgot to assign this to olki, to make him see this and try i on his system ;-)

Barney, you don't have latest CVS, though, judging from the "invalid variable"
errors. That shouldn't be a problem, though.

To play COMI from HD, you need to put the files like this:

comi/
|-- COMI.LA0
|-- COMI.LA1
|-- COMI.LA2
`-- RESOURCE
|-- BBSAN.SAN
|-- CURSERNG.SAN
|-- FG010GP.SAN
|-- FINALE.SAN
|-- FONT0.NUT
|-- FONT1.NUT
|-- FONT2.NUT
|-- FONT3.NUT
|-- FONT4.NUT
|-- KIS030.SAN
|-- LANGUAGE.TAB
|-- LAVARIDE.SAN
|-- LIFTCRSE.SAN
|-- MORESLAW.SAN
|-- MUSDISK1.BUN
|-- MUSDISK2.BUN
|-- NEWBOOTS.SAN
|-- OPENING.SAN
|-- SB010.SAN
|-- SB020.SAN
|-- SINKSHP.SAN
|-- VOXDISK1.BUN
|-- VOXDISK1.DAT
|-- VOXDISK2.BUN
|-- WRECKSAN.SAN
`-- ZAP010.SAN

comment:7 by fingolfin, 16 years ago

Owner: set to SF/olki

comment:8 by SF/barneyntd, 16 years ago

I can't find VOXDISK1.DAT on either of my CDs.
Apart from that, that is exactly how my files are arranged.
sourceforge is refusing connections at the moment, so I can't do a cvs
update.

HOWEVER: I must have done something wrong in my last testing. It now
seems to work fine if launched from the command line with
./scummvm comib

but crashes as before (load saved game then open inventory) if launched
from the app created by "make bundle". I have tried this with several saved
games, and so far, I've had no crashes starting from the command line, but
starting from the application bundle, it almost always crashes (I have one
saved game which doesn't crash, but it does produce lots of graphics and
sound glitches).

It seems to be something to do with the application bundle, or maybe the
game selection dialog.

Barney.

comment:9 by fingolfin, 16 years ago

Owner: changed from SF/olki to fingolfin

comment:10 by fingolfin, 16 years ago

We can now reproduce the crash. It only "works" with the release binary. The
key is "stripping" the binary, this will make it crashy. I also found an
extermly hackish workaround. However, at this moment we have no clue
what is the immediate cause of the problem, nor what a proper fix would be.
Working on it.
Oh yes: the problems even occur when loading the savegame from the
command line, i.e. the GUI parts (launcher, saveload dialog) are not involved.

by fingolfin, 16 years ago

Attachment: comi-garbage.png added

Some garbage at botom of screen

by fingolfin, 16 years ago

Attachment: comi-blasterror.png added

Blast error

by fingolfin, 16 years ago

Attachment: comi-shuffle.png added

Shuffled screen behind inventory

by fingolfin, 16 years ago

Attachment: comi-shuffle2.png added

Shuffled screen (inventory hidden again)

comment:11 by fingolfin, 16 years ago

OK I think I found and fixed the bug (at least it is gone for me).

If you can test this for me, too, I'd be most grateful. You can download a
fixed build from http://dev.quendi.de/scummvm/ScummVM-0.4.0b.tar.gz.
Please tell me if that solves the problem.

comment:12 by SF/barneyntd, 16 years ago

Yes, it looks like that's fixed it. Well done!

Barney.

comment:13 by fingolfin, 16 years ago

Good. I hope we can soon do a 0.4.1 bugfix release with this and a few
other fixes.

comment:14 by fingolfin, 16 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.