MT-32 Support

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
Falshire Knight
Posts: 3
Joined: Sat Oct 23, 2021 5:39 pm

MT-32 Support

Post by Falshire Knight »

Can someone help me understand what I'm doing wrong

I dropped MT32_PCM.ROM and MT32_CONTROL.ROM in my ScummVM directory

https://i.imgur.com/J6EgQG8.png

The thingy is pointing at the ScummVM directory

https://i.imgur.com/IKmkIir.png

But this other thingy just has a grayed out box and I don't know why or what it means and the documentation really sucks and there's no YouTube videos that have been made within like the last five years

https://i.imgur.com/jCagyNt.png
Falshire Knight
Posts: 3
Joined: Sat Oct 23, 2021 5:39 pm

Re: MT-32 Support

Post by Falshire Knight »

This thingy has a setting for override global audio settings but MT-32 doesn't appear in the list???

https://i.imgur.com/REBOmBN.png

idk if it's supposed to? Like maybe MT-32 appears in the list if it detects the rom files but it disappears if it doesn't detect the ROM files???? I don't know how this works, maybe I'm just really really dumb

Like I want MT-32 sound so I definitely don't want General MIDI, also Wikipedia says Fluidsynth is a free open source synthesizer that converts audio using a soundfont and that doesn't seem right either????

So like none of the options under Audio seem relevant to setting up MT-32 emulation?

I don't get it
User avatar
Praetorian
ScummVM Developer
Posts: 883
Joined: Tue May 08, 2007 8:54 am
Location: Greece
Contact:

Re: MT-32 Support

Post by Praetorian »

MT-32 emulation is set up from the "Audio" tab. I believe the "MT-32" tab refers to configuring the sound for an actual physical MT-32 device. (Although, again on my Windows ScummVM, there's a setting for "MT-32 emulation" in the dropdown for "Global Options" -> "MT-32" tab -> "MT-32 Device", and I have set it to that also).

I don't think it's connected to ScummVM detecting the ROMs for emulation though.
On Windows, the dropdown for Audio -> "Preferred device" includes "MT-32 emulator", in addition to FluidSynth and GS Wavetable and a few others.
You can set this from Global Options -> Audio tab, or override the global behavior per game from Game Options -> Audio tab.

(And, note, the sound volume for MT-32 is controlled from the MIDI tab, from the MIDI gain setting).

Maybe this MacOS(?) version does not support MT-32 emulation? The ScummVM porters for that platform would know more.
You could also ask on the ScummVM Discord.
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Re: MT-32 Support

Post by eriktorbjorn »

Praetorian wrote: Wed May 29, 2024 8:52 am On Windows, the dropdown for Audio -> "Preferred device" includes "MT-32 emulator", in addition to FluidSynth and GS Wavetable and a few others.
I think that depends on if the game explicitly says which music drivers it supports or not. E.g. I get this if I look at the game settings for Maniac Mansion with the current development version of ScummVM, I see this:
settings-maniac.png
settings-maniac.png (28.59 KiB) Viewed 2461 times
Which seems wrong, because surely it should have PC speaker and PCjr, but not AdLib? If I look at Fate of Atlantis, which apparently doesn't specify which music drivers it supports, I get the full list:
settings-atlantis.png
settings-atlantis.png (40.44 KiB) Viewed 2461 times
Which also seems like a less than ideal situation.

(I haven't experimented with the GM Device and MT-32 Device settings, because they confuse me too.)
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Re: MT-32 Support

Post by eriktorbjorn »

eriktorbjorn wrote: Wed May 29, 2024 9:38 am Which seems wrong, because surely it should have PC speaker and PCjr, but not AdLib? If I look at Fate of Atlantis, which apparently doesn't specify which music drivers it supports, I get the full list:
Well, there seems to be a bug all right, at least in the development version. This is going to get a bit technical, so feel free to skip it.

Maniac Mansion does specify PC Speaker and PCjr:

Code: Select all

	{"maniac", "V1",      "v1", GID_MANIAC, 1, 0, MDT_PCSPK | MDT_PCJR, 0, Common::kPlatformDOS, GUIO9(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGABW, GUIO_RENDERCGACOMP, GUIO_RENDERCGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
	{"maniac", "V2",      "v2", GID_MANIAC, 2, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO8(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDERAMIGA, GUIO_ENHANCEMENTS, GUIO_ORIGINALGUI)},
(Fate of Atlantis specifies what it supports too, but let's leave that aside and concentrate on Maniac Mansion)

MDT_PCSPK and MDT_PCJR are defined like this:

Code: Select all

	MDT_PCSPK       = 1 << 0,		// PC Speaker: Maps to MT_PCSPK and MT_PCJR
	MDT_PCJR        = 1 << 2,		// Tandy/PC Junior driver
Which means that MDT_PCSPK | MDT_PCJR has the numerical value 5.

The SCUMM engine calls MidiDriver::musicType2GUIO() to convert this value to a string. But rather than comparing it against the MDT_PCSPK and MDT_PCJR bits to see which ones match, it compares it against a completely different set of numerical constants until it finds one that is 5. And in that case, that's apparently MT_ADLIB, which I guess is where it gets the idea?
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Re: MT-32 Support

Post by eriktorbjorn »

The SCUMM engine issue has its own bug report now:

https://bugs.scummvm.org/ticket/15143

If there are issues with other game engines, they will have to be reported separately.
Post Reply