Opened 17 years ago

Closed 17 years ago

Last modified 17 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 17 years ago.
Saved game which crashes on reload.
comi-garbage.png (309.0 KB ) - added by fingolfin 17 years ago.
Some garbage at botom of screen
comi-blasterror.png (48.5 KB ) - added by fingolfin 17 years ago.
Blast error
comi-shuffle.png (119.8 KB ) - added by fingolfin 17 years ago.
Shuffled screen behind inventory
comi-shuffle2.png (268.5 KB ) - added by fingolfin 17 years ago.
Shuffled screen (inventory hidden again)

Download all attachments as: .zip

Change History (19)

by SF/barneyntd, 17 years ago

Attachment: comi.s02 added

Saved game which crashes on reload.

comment:1 by SF/barneyntd, 17 years ago

Component: Engine: SCUMM
Game: Monkey Island 3

comment:2 by fingolfin, 17 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, 17 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, 17 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, 17 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, 17 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, 17 years ago

Owner: set to SF/olki

comment:8 by SF/barneyntd, 17 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, 17 years ago

Owner: changed from SF/olki to fingolfin

comment:10 by fingolfin, 17 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, 17 years ago

Attachment: comi-garbage.png added

Some garbage at botom of screen

by fingolfin, 17 years ago

Attachment: comi-blasterror.png added

Blast error

by fingolfin, 17 years ago

Attachment: comi-shuffle.png added

Shuffled screen behind inventory

by fingolfin, 17 years ago

Attachment: comi-shuffle2.png added

Shuffled screen (inventory hidden again)

comment:11 by fingolfin, 17 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, 17 years ago

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

Barney.

comment:13 by fingolfin, 17 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, 17 years ago

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