Opened 17 years ago

Closed 16 years ago

Last modified 11 months ago

#7228 closed enhancement

MT-32 sysex messages

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

Description

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, 17 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, 17 years ago

Owner: set to SF/jamieson630
Priority: normallow

comment:3 by SF/zorbid, 17 years ago

http://vogons.zetafleet.com/showthread.php?s=&threadid=793

Keep an eye on this :-)

comment:4 by (none), 17 years ago

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

comment:5 by SF/jamieson630, 17 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, 17 years ago

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

comment:7 by (none), 17 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, 17 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), 17 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, 17 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), 17 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, 16 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, 16 years ago

http://www.artworxinn.com/alex/
CanadaCow's emulator start to produce decent music :-)

comment:14 by SF/khalek, 16 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, 16 years ago

Status: newclosed

comment:16 by SF/jamieson630, 16 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, 11 months ago

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