#14500 closed defect (wontfix)

SCUMM: Corrupted DISK03.LEC resource in LRG MONKEY1-EGA

Reported by: Bartman3010 Owned by: dwatteau
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 1

Description

This is from the copy that was installed from the floppy disk images of the EGA version found in the Limited Run Games. This uses the fixed fourth disk image and can be played normally up until the fourth part. Where after Guybrush asks "Who is that in the wedding dress" after Governor Marley appears. The figure turns around, then corrupted graphics appear in the bottom right of the screen then ScummVM crashes to desktop without any error messages. The log also does not show anything to indicate an error.

Attachments (1)

monkey-ega-1.s00 (13.5 KB ) - added by Bartman3010 11 months ago.

Download all attachments as: .zip

Change History (6)

by Bartman3010, 11 months ago

Attachment: monkey-ega-1.s00 added

comment:1 by antoniou79, 11 months ago

Could you clarify which version of ScummVM are you testing with and on which platform?

Are you sure the disk image is not (still) corrupted?

comment:2 by Bartman3010, 11 months ago

The version is 2.7.0 (Feb 14 2023 14:26:43) on Windows 10.

So far as I know, the fourth disk was the only known corrupted image and it pertained to the Melee Island "room" (room 85) It could very likely be another corrupted disk image but I'm not sure as to which one. I can try to source another copy or see if I can recreate image files of all disks with what they left on the USB drive.

comment:3 by dwatteau, 10 months ago

Thank you for reporting this. I also own the LRG set (and wrote the guide about recovering the corrupted 4th disk) and I can reproduce the issue both with your save and with boot param 8989.

It's indeed possible that Limited Run Games provided another corrupted image (sigh), I'll need a bit more time to look into this, though.

comment:4 by dwatteau, 10 months ago

So yes, it's not only 903.LFL and DISK04.LEC, but Limited Run Games provided a faulty DISK03.LEC file too.

Costume 11 (the monkeys under the wedding dress) in room 78 appears to be corrupted in this dump, comparing it with the one from my original French EGA CD:

Full SHA-1 sum                           | Resource
-----------------------------------------|------------------------------------
34faaa40f4e445029b1cb3c3ecfa50ff1d2652ea | MONKEY1_EGA_FR/LF_0078-CO_0011
6400546f3a1f2d2ff3b1fe2d24e73fc6c732a232 | MONKEY1_EGA_EN_LRG/LF_0078-CO_0011

The faulty resource triggers a heap buffer-overflow in Scumm::BaseCostumeRenderer::skipCelLines (as triggered by AddressSanitizer) otherwise, since this costume has invalid data. Other resources embedded inside DISK03.LEC could be impacted as well.

Fortunately, you can still recover what appears to be a valid DISK03.LEC file from the KryoFlux dumps, if you run a similar dtc command from the mi1_dos_525_disk3 resources:

cd mi1_dos_525_disk3
dtc -ftrack00.0.raw -i0 -k2 -fnewdisk3.img -i4 -m1 -l1

and then mount or extract the resulting newdisk3.img image, in order to grab its DISK03.LEC resource. The game appears to run fine once you do that.

I'll update the detection code in ScummVM so that people will know that this DISK03.LEC file from this release needs to be recreated from the KryoFlux dumps as well.

I'll amend my guide at <https://dwatteau.github.io/scummfixes/corrupted-monkey1-ega-files-limitedrungames.html> for this. Thank you very much for reporting this, and sorry for not checking this copy of the game until the very end!

comment:5 by dwatteau, 10 months ago

Owner: set to dwatteau
Resolution: wontfix
Status: newclosed
Summary: Secret of Monkey Island EGA LRG CrashSCUMM: Corrupted DISK03.LEC resource in LRG MONKEY1-EGA

Pushed commit b263c3f31f7d40fad65e3d5dd10b6aa5511e6f4f so that the next ScummVM release will detect this corrupted file as well.

Thanks again for testing and reporting this! Please don't hesitate reporting any other issue that you could find with this release (I hope that's the last one, though!).

Note: See TracTickets for help on using tickets.