Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#6010 closed defect (duplicate)

LOOM: Switching between MT-32 and AdLib crashes ScummVM

Reported by: SF/kurufinwe Owned by: sev-
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Loom


Using ScummVM 1.5.0git2684-g5ae2543 on Win 7 64 bit. Playing Loom (EGA, DOS, English).

When using the MT-32 emulator with the floppy version of Loom, the notes for the drafts do not play. Every time a note should be played, a warning appears on the console: "WARNING: Bad command or running status 7F!"

I guess this would make the game unplayable in expert mode (which doesn't have the visual cues for drafts).

The rest of the music (intro etc.) plays fine. Also, the AdLib emulator is not affected (the notes play and there are no warnings).

I'm attaching a savegame in Hetchel's tent. Activate the flask or the cauldron to reproduce the bug.

Ticket imported from: #3506546. Ticket imported from: bugs/6010.

Attachments (1)

loom-ega.s02 (16.3 KB ) - added by SF/kurufinwe 12 years ago.
Save in Hetchel's tent

Download all attachments as: .zip

Change History (8)

by SF/kurufinwe, 12 years ago

Attachment: loom-ega.s02 added

Save in Hetchel's tent

comment:1 by digitall, 12 years ago

kurufinwe: Thank you for this bug report. To help investigate this, could you confirm the following: 1. Does this occur with the current stable version i.e. v1.4.1 ? 2. If so, could you try previous versions to at least 0.9.1 to see if this worked in a previous version? 3. Could you try playing this with the original interpreter under DOSBox with an attached MT-32 and confirm that this bug is not present in the original?

comment:2 by digitall, 12 years ago

Also, attaching a text file containing a file listing with file MD5sums of your LOOM Floppy datafiles to this bug would be useful to check your exact version and eliminate corruption in datafiles as a cause. The output of a tool such as would be optimal.

comment:3 by SF/kurufinwe, 12 years ago

OK, please disregard my original report. I had completely misunderstood what was going on. Here's a more accurate report. (I've updated the summary accordingly.)

The problem lies with switching music devices. If the game is started in AdLib mode, a save is made, and then restored in MT-32 mode, then *all* music (not just the drafts) fails to play. Conversely, if the game is started in MT-32 mode, a save is made, and then restored in AdLib mode, ScummVM crashes when trying to load the save, with the message: "Assertion failed: track_ctr < 3, file engines/scumm/sound.cpp, line 1856".

The behaviour was the same in previous versions.

The original interpreter fares pretty much the same. When doing AdLib -> MT-32, the music also won't play. And when doing MT-32 -> AdLib, it loads the save but gets stuck when visiting certain locations, complaining about missing data.

I don't know if the problem can be fully fixed. At least, I think it'd be nice if ScummVM could refuse to load the saves made with the other audio device and display an error message rather than crashing or leaving the game without music.

comment:4 by SF/kurufinwe, 12 years ago

Summary: LOOM: Drafts not playing with MT32LOOM: Switching between MT-32 and AdLib crashes ScummVM

comment:5 by lordhoto, 12 years ago

This looks like a duplicate of #1508095 "SCUMM: Potential savegame incompatibility". In this case the problem is not that one time iMUSE is initialized and in the other instance it isn't, though. The problem here is probably that the data saved for iMUSE differs for the MT-32 and AdLib outputs.

And before someone feels the need to point out Loom didn't use iMUSE yet, we still pass all the sound data for AdLib and MT-32 through our iMUSE implementation.

comment:6 by sev-, 12 years ago

It is definitely a duplicate of that bug. Thus closing

comment:7 by sev-, 12 years ago

Owner: set to sev-
Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.