Opened 19 years ago

Closed 18 years ago

Last modified 3 years ago

#7228 closed feature request

MT-32 sysex messages

Reported by: (none) Owned by: SF/jamieson630
Priority: low Component: Audio: MT32
Version: Keywords:
Cc: Game:


It'd be nice if scummvm could transmit these when using the MIDI option on the games that have them (Monkey Island 2 and Indy:FOA). That way, users with a roland mt32, would still be able to get correct midi music. Well.. it'd make me happy at least :-)

Ticket imported from: #563688. Ticket imported from: feature-requests/44.

Change History (17)

comment:1 by SF/jamieson630, 19 years ago

I'm picking this up. Enhanced MT-32 support is in development, and this will come with the bargain. In the meantime, who is this? We could always use people with an MT-32 to test our code. It's tough to find an MT-32 owner these days. :)

comment:2 by SF/jamieson630, 19 years ago

Owner: set to SF/jamieson630
Priority: normallow

comment:3 by SF/zorbid, 19 years ago

Keep an eye on this :-)

comment:4 by (none), 19 years ago

I'll gladly help with testing the code, I have an MT-32.

comment:5 by SF/jamieson630, 19 years ago

I guess an update is in order. MT-32 SysEx output is currently available in first-revision under the -eseq music driver (hence only Unix/Linux -- and Mac too?). In order to drive a native MT-32 device, make sure to set "#define NATIVE_MT32 true" at the top of scummvm/scumm/instrument.h. (It is defined to be "false" by default. Someday we'll make it a command-line option.)

I think the SysEx implementation itself is working fine, and any problems we're having with instruments have been plaguing us since the emulated MT-32 days.

If anyone is using the -ewindows music driver and has an MT- 32 they would like to test with ScummVM, post here and I will see about putting in Windows MMSYSTEM SysEx capability. Otherwise, I won't be touching this for a couple months until other projects are put to bed.

comment:6 by fingolfin, 19 years ago

The SEQ driver is not usable under MacOS,if you wanted to know that, Jamieson :-)

comment:7 by (none), 19 years ago

I'd like the support for the sysex stuff in Windows. I don't have Linux installed on my PC anymore and was going to test it under Windows after I'd reinstalled my Windows compiler. I don't think my USB midi output works under Linux. I'm dying to try this as I've wanted MT32 support in ScummVM for a long time.

comment:8 by SF/jamieson630, 19 years ago

Okay,. I've thrown together a first-revision SysEx capability for -ewindows. I tested it with Sam & Max (no ROL tracks, so no SysEx), MI2 and FOA (both having ROL tracks and sending SysEx messages).

When testing this, remember to set NATIVE_MT32 to "true". It's now located in instrument.cpp instead of instrument.h, since instrument.cpp is the only thing that uses it. It is defined to "false" by default. If you leave it that way, ScummVM will do MT-32 emulation in GM.

Simonquinn and Khalek (congrats on your Windows install victory), if you get a chance to test it out, post results here. Remember that odd-sounding instrumentation is more likely to be problems at a higher level; SysEx-related warning output in the console is a sign of problems in the -ewindows SysEx implementation.

comment:9 by (none), 19 years ago

Got it compiled and working on Windows. I've tried MI2 and Atlantis but the sysex messages don't seem to be being sent to the MT32, i.e. none of the IMuse programmed voices appear on the MT32 only the standard voices. The standard voices sound correct when the music is played though, so the NATIVE_MT32 is working. Also when you first started the original game the sysex messages were sent to the MT32 before the game actually starts (i.e. "Lucasfilm Games" appears on the MT32 display) this is not being done with ScummVM. What debug level should I use to see useful IMuse messages?

comment:10 by SF/jamieson630, 19 years ago

Regarding the startup SysEx sent to the MT-32: That is an LEC hard-coded thing, not something in the music. And since it's just a cutsie feature, we aren't going to do it. (It might exacerbate our legal friction with LEC, anyway. But maybe a "ScummVM" message on the LCD panel would be cool, eventually!)

Regarding the rest of the SysEx behavior, I can check a couple things, but I'm essentially running blind here. Khalek, perhaps you could compare MT-32 behavior under -ewindows and -eseq, and tell me if the MT-32 seems to be "aware" of SysEx messages coming from -eseq but not from -ewindows?

Hell, somebody just send me an MT-32 in the mail. I'll return it; I promise. ;)

comment:11 by (none), 19 years ago

I thought the startup sysex was programming the various voices on the MT32 not just for displaying the fancy message. I would have lent you my MT32 but I use it for Exult programming. There are a number for sale on Ebay for decent prices.

comment:12 by SF/fancia, 18 years ago

As an MT-32 owner, I can respond belatedly that SysEx *does* change the instruments; LCD messages are a very small part of their functions and music won't sound right without the SysEx.

comment:13 by SF/zorbid, 18 years ago CanadaCow's emulator start to produce decent music :-)

comment:14 by SF/khalek, 18 years ago

a bit late... but seq and alsa both don't work with sysex, I think jamieson wanted me to see if seq did at one point

comment:15 by SF/jamieson630, 18 years ago

Status: newclosed

comment:16 by SF/jamieson630, 18 years ago

After our last battery of changes and experimentation, khalek, our esteemed MT-32 tester, has verified SysEx transmissions under -eseq, -ealsa, and -ewindows. Thanks also to khalek for finishing the -ealsa code. I'm going to close this, however I will work with users of the other drivers to make sure we have SysEx transmissions working under those drivers too.

comment:17 by digitall, 3 years ago

Component: Audio: MT32
Note: See TracTickets for help on using tickets.