Opened 13 years ago

Closed 13 years ago

Last modified 12 months ago

#3073 closed defect (fixed)

SCUMM: MIDI music is broken

Reported by: sev- Owned by: eriktorbjorn
Priority: high Component: Engine: SCUMM
Keywords: Cc:
Game: Monkey Island 2

Description

Revision 25630 commit broke MIDI-based music in SCUMM engine.

Symptoms:

with Adlib emulator there is no music heard at all, and during the playback following messages are produced:

[00] No instrument specified
[01] No instrument specified
[04] No instrument specified
[07] No instrument specified
[06] No instrument specified

Additionally in monkeys freese in MI2 intro.

With MT-32 emu music is heard, but monkey get frozen as well, and following messages are produced:

[00] No instrument specified
[00] No instrument specified
[00] No instrument specified

No other engines are affected. I checked queen, agos, sky, saga, cine, kyra1, gob, i.e. all of our engines which use MIDI playback.

Ticket imported from: #1662549. Ticket imported from: bugs/3073.

Attachments (1)

imuse_fix.diff (3.0 KB ) - added by eriktorbjorn 13 years ago.
Patch against current SVN

Download all attachments as: .zip

Change History (6)

by eriktorbjorn, 13 years ago

Attachment: imuse_fix.diff added

Patch against current SVN

comment:1 by eriktorbjorn, 13 years ago

I think I see the problem. In sysexHandler_Scumm(), we frequently refer to the length of the SysEx message, and that's apparently now one less than it used to be. Most obviously, the SysEx messages to set Adlib instrument were all rejected for having the wrong length, but I guess the other cases have to be adjusted as well.

I'm attaching a possible fix that at least makes the MI2 intro run again.
File Added: imuse_fix.diff

comment:2 by fingolfin, 13 years ago

Looks good to me. Too tired to test it myself now, but Eugene, if it solves your problem, feel free to commit it :)

comment:3 by eriktorbjorn, 13 years ago

Committed, since sev says it's working for him. I still have this nagging fear that I may have forgotten something, but on the other hand it *is* an improvement. :-)

comment:4 by eriktorbjorn, 13 years ago

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

comment:5 by digitall, 12 months ago

Component: --Unset--Engine: SCUMM
Game: Monkey Island 2
Note: See TracTickets for help on using tickets.