VOGONS

Common searches


First post, by Enverex

User metadata
Rank Newbie
Rank
Newbie

So I have MT-32 support patched in (i.e. native MUNT) which works great. I also have a normal MIDI setup on the machine which works fine. My problem comes from the fact that some DOS games can do MT32, others are general MIDI (and others are just terrible or OPL based). Anyway, the issue is that DOSBox only allows you to specify one MIDI device at once, so I can have either MT32 OR general MIDI.

Is there any way around this? Can I tell DOSBox to have 2 MIDI devices and then configure the games themselves to use the respective one, i.e. GM or MT32 depending on which they actually support?

Reply 1 of 10, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

That's really easy. You just have different DOSBox config files for each game and configure it that way. I'm sure the readme file / manual covers this. But you can also use a GOG game as an example, every game uses its own config file.

YouTube, Facebook, Website

Reply 3 of 10, by Enverex

User metadata
Rank Newbie
Rank
Newbie
PhilsComputerLab wrote:

That's really easy. You just have different DOSBox config files for each game and configure it that way. I'm sure the readme file / manual covers this. But you can also use a GOG game as an example, every game uses its own config file.

That's easy in the literal sense, but not easy in that rather than having one general "working setup" I now need to vet every game and point it to the respective config (I'll have 2 - one for MT32, one for GM. One config per game would be crazy redundant). That said, I guess I would have had to do that when testing the game in the first place to check if it actually supports MT32...

I guess I'll just modify my wrapper and add an extra switch for "use the MT32 version of my config" then which will add -conf in to override the existing MIDI part of the global config. That seems like it would be the cleanest way of doing it doesn't it?

Reply 4 of 10, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

The way I do it is not have a config per game, but for various machines / configs. Then just load the games through the command line.

YouTube, Facebook, Website

Reply 5 of 10, by Enverex

User metadata
Rank Newbie
Rank
Newbie

Yeah, looks like that'll be what I do. Use a wrapper that loads my general config and have a switch I can pass to the wrapper for any games that need MT32 (and then expand the switches in future if I run into any other special-use cases for other "needs X instead" situations).

The only reason I asked the initial question was because ScummVM can set both general MIDI and MT32 at the same time (and it'll use the latter, but only if the game wants it) but obviously Scumm works very differently than a pure DOS emulator does so that's not all that surprising.

Ok then, thanks guys.

Reply 6 of 10, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

This is where having external software for MT-32 and GM is very useful. I run DosBox on my Linux box, and I can swap between them by redirecting MIDI output from DosBox to one or the other (or the physical output) using standard graphical patch bay tools. I would imagine Windows has similar capabilities.

All hail the Great Capacitor Brand Finder

Reply 7 of 10, by konc

User metadata
Rank l33t
Rank
l33t

...or you can have a .BAT file launching the game which would override your standard .config from the command line, like
config -set "midi midiconfig=x"

This way you can have a standard configuration for most of your games and explicitly change it for the ones that support MT-32 (or whatever is less work in your collection)

Reply 8 of 10, by Enverex

User metadata
Rank Newbie
Rank
Newbie

gdjacobs: This is Linux, but it's purely controller based so GUI tools for things like that wouldn't be much help, it all needs to be handled by scripts "under the hood". That said, many DOS games need a keyboard/mouse anyway... but I digress.

konc: That's interesting, I didn't realise you could change the DOSBox config from within DOSBox itself to that extent. We'll see which is easier in the long run I guess.

Reply 9 of 10, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
Enverex wrote:

gdjacobs: This is Linux, but it's purely controller based so GUI tools for things like that wouldn't be much help, it all needs to be handled by scripts "under the hood". That said, many DOS games need a keyboard/mouse anyway... but I digress.

Easy enough to handle. Launch each game instance with a script modifying the routing with aconnect.

All hail the Great Capacitor Brand Finder

Reply 10 of 10, by Asterisk

User metadata
Rank Newbie
Rank
Newbie

I've got a pretty simple solution for this. I start DOSBox via a shell script that launches both Munt and Timidity, then uses aconnect to determine the ALSA ports for each, and finally launches DOSBox with parameters to assign them to environment variables (e.g. dosbox -c "set munt=$munt_port" -c "set timidity=$timidity port").

Then within DOSBox, I can just launch games with batch files that include "midiconfig %munt%" or "midiconfig %timidity%", which is convenient enough, since I often use batch files to set other options particular to each game, e.g. setting cycles or turning aspect correction on or off.