Opened 12 years ago

Closed 12 years ago

#3499 closed defect (fixed)

COMI: Speech drops out, causing crash/freeze

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

Description

In the Windows English version of COMI, shortly after Rottingham boards at the beginning of Act III, the speech drops out (immediately after Rottingham says "You know, of course, that in a swordfight, a sharp wit is much more important than a sharp blade."). When speech first drops out, I see

(52:125:0xE99): BundleMgr::decompressSampleByName() Failed finding voice 2302-R~1.IMX
(52:125:0xE9F): Opening hashed: /home/tburke/shared/SCUMM/Games/Optimal Versions/1997 - The Curse of Monkey Island/RESOURCE/VOXDISK1.BUN
Opening hashed: /home/tburke/shared/SCUMM/Games/Optimal Versions/1997 - The Curse of Monkey Island/RESOURCE/MUSDISK1.BUN
BundleMgr::decompressSampleByName() Failed finding voice 1305-D~1.IMX

I can use the period key to advance dialog (it won't progress on its own), though it will shortly either freeze in an endless loop of flushTracks() or die entirely with something like:

(52:125:0xFBE): IMuseDigital::startSound(10000)
(52:125:0xFBE): IMuseDigital::allocSlot(): All slots are full
scummvm: engines/scumm/imuse_digi/dimuse_track.cpp:61: int Scumm::IMuseDigital::allocSlot(int): Assertion `trackId != -1' failed.
Aborted (core dumped)

(exact details and timing vary). You can hit escape to bypass the cutscene, but (depending upon timing) the singing that follows may suffer from the same problem, and cannot be advanced using the period key. If done early enough, speech persists and the game is completable (presumably; will confirm tonight).

I use the uncompressed files, and was going to recopy the voxdisk2.bun and musdisk2.bun files from the CD when I checked the md5 of each file, and in both cases they matched. I suppose the CD itself may have gotten corrupted as well, but consider this a remote possibility.

Linux, x86_64 (Kubuntu)
ScummVM 0.11.0svn (Dec 9 2007 13:41:38)
Features compiled in: Vorbis FLAC MP3 ALSA zLib MPEG2 FluidSynth
Compiled with gcc 4.1.3

And

OSX, Intel MacBook Pro
ScummVM 0.11.0svn (Dec 9 2007 18:43:10)
Features compiled in: Vorbis FLAC MP3 zLib MPEG2
Universal image downloaded from http://worldsmainorganization.org/scummvm/

Same save game and data files work fine under 0.10.0 on same platforms.

Ticket imported from: #1848399. Ticket imported from: bugs/3499.

Attachments (1)

comi.s06 (81.1 KB ) - added by SF/tipabu 12 years ago.
Save Game

Download all attachments as: .zip

Change History (15)

by SF/tipabu, 12 years ago

Attachment: comi.s06 added

Save Game

comment:1 by SF/tipabu, 12 years ago

Summary: Speech drops out, causing crash/freezeCOMI: Speech drops out, causing crash/freeze

comment:2 by bluegr, 12 years ago

This does sound like a case of a bad file, but it's strange that version 0.10.0 works.

The fact that the MD5 of the file matches doesn't guarantee that the file itself is not damaged - ScummVM calculates the MD5 of each file from the first 2000 bytes of the file (if memory serves well), not its full contents.

Please, try recopying voxdisk2.bun and musdisk2.bun from the second CD of the game

comment:3 by fingolfin, 12 years ago

Owner: set to aquadran

comment:4 by SF/tipabu, 12 years ago

Actually, I had compared the md5 of the entire files. For the sake of completeness, I tried recopying them, but the problem persists. Same save file was used.

comment:5 by fingolfin, 12 years ago

Priority: normalhigh

comment:6 by fingolfin, 12 years ago

I can reproduce this issue.

comment:7 by fingolfin, 12 years ago

My patch #1839861 fixes this issue.

comment:8 by bluegr, 12 years ago

I was able to reproduce the issue too, patch #1839861 fixed it for me as well. I believe this can be closed

comment:9 by fingolfin, 12 years ago

Patch #1839861 has been commited to trunk but (not yet?) to 0.11.0, as it is a little bit risky. But if all goes well, it will be in 0.12.0, and maybe in 0.11.1, too.

comment:10 by fingolfin, 12 years ago

Owner: changed from aquadran to fingolfin
Resolution: fixed
Status: newclosed

comment:11 by bluegr, 12 years ago

Status: closednew

comment:12 by bluegr, 12 years ago

I'm reopening this, as the issue still occurs for me

If I don't skip the dialogs with ".", I get an assertion at that exact place again (where Rottingham says "You know, of course, that in a swordfight, a sharp wit is much more important than a sharp blade."). Assertion occurs at dimuse_track.cpp line 308, assert(track->soundDesc);

Strange this is that I can ignore this assertion and the scene continues normally...

comment:13 by bluegr, 12 years ago

Status: newclosed

comment:14 by bluegr, 12 years ago

This issue has been fixed for me with commit #30310 (verified with other people from the IRC channel as well, including eriktorbjorn and Raziel^). Since I reopened this, I'm closing it again :)

Do note though that the music stops at this point (but it did that with earlier versions of ScummVM too, e.g. 0.10.0) - this should be in a separate bug report though

Note: See TracTickets for help on using tickets.