Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No MT32 support #5

Closed
boomercore opened this issue Dec 22, 2020 · 33 comments
Closed

No MT32 support #5

boomercore opened this issue Dec 22, 2020 · 33 comments

Comments

@boomercore
Copy link

Another feature that would be nice to have from the main core. Thanks in advance. If I'm just overlooking this somehow, feel free to close, but I can't find it.

@schellingb
Copy link
Owner

Call me back when someone makes a clean-room implementation of the copyrighted MT-32 ROMs or the copyright on them lapses (or Roland puts them into the public domain, haha).
The need to have external files, that require an expensive software subscription or means to extract it from real 30 year old hardware, in a specific location, is not appealing to me. On the other hand Munt itself looks reasonable (10k lines of code, no dependencies) so maybe I or someone will add it to this fork in an optional, non-intrusive manner.

@boomercore
Copy link
Author

You need external files to run just about anything in emulators, and needing BIOSes isn't novel to emulation or RA. Could the code simply not be cribbed from the other core? Just seems like the work's done, but it's your fork and I won't beg.

@Darknior
Copy link

I'm agree with @n1ghttrap. For sure it's your fork you do like you want.
But using external files is normal in emulation world.
And MT32 is one of the best sound library ever, when i was young i have dream a long time to use it on my 486 DX2 66 :(
But it never happent ... i've stay with my old sound card ....
And now i can play my favorites games on ScummVM, Day of Tentacle for exemple, with MT32 the sound is so gorgeous <3

@mrmatteastwood
Copy link

Allow me to add one more vote for MT32 support. After having been spoiled with MT32 music in e.g. Colonization or Monkey Island 2 using the ScummVM and dosbox-core cores, it's painful to have to trade in this kind of musical quality for the amazing features your core offers, like save states and an on-screen keyboard.

I really love what you're doing with DOSBox-Pure, it's nothing short of amazing. It makes it so much harder for me to have to choose between high-quality MIDI music and save states. I hope that you will consider offering both in your core.

@mrmatteastwood
Copy link

mrmatteastwood commented Dec 22, 2020

Update for @Darknior, @n1ghttrap or anybody who came here with the same wish: I just discovered FatBoy, a free GM/GS sound font for MIDI in old video games. It's entirely legal, you can download it here: https://fatboy.site/

Extract the .sf2 file, put it in your RetroArch system directory, then pick it in the DOSBox-Pure options > Audio > MIDI SoundFont. I think it sounds great.

@Darknior
Copy link

Yes @mrmatteastwood for sure, there are some MIDI fantastic libraries. I use some on ScummVM too because some time it's better than MT32.
Thanks for this free library, it's really cool because we will can use it for free project without any legal problem :)

@Tasosgemah
Copy link

Update for @Darknior, @n1ghttrap or anybody who came here with the same wish: I just discovered FatBoy, a free GM/GS sound font for MIDI in old video games. It's entirely legal, you can download it here: https://fatboy.site/

Extract the .sf2 file, put it in your RetroArch system directory, then pick it in the DOSBox-Pure options > Audio > MIDI SoundFont. I think it sounds great.

Thanks but how do you enable this in a game? I'm trying Duke Nukem with it and the music sounds the same as before.

@taneofpain
Copy link

Would be super if you would integrate munt. Nice job!

@mrmatteastwood
Copy link

Thanks but how do you enable this in a game? I'm trying Duke Nukem with it and the music sounds the same as before.

Depends on the game. If a game supports MIDI, you can usually enable it running the game's setup program (look for e.g. setup.exe or install.exe). There may also be games where you can configure the sound device using in-game menus.

For Duke Nukem 3D, run setup.exe. Duke Nukem II doesn't support MIDI.

Here's a list of MT-32 compatible games:
https://en.wikipedia.org/wiki/List_of_MT-32-compatible_computer_games

@Banjo-Oz
Copy link

Would like to add my vote for MT-32 support too. I use DOSBox mostly for old adventure games, such as Sierra, and MT-32 was the gold standard. Soundfonts are fine for some games, but I've yet to find one that perfectly replicates the MT-32, not to mention that many games that supported it did not support general midi so sfs are not an option.

@mrmatteastwood
Copy link

Would like to add my vote for MT-32 support too. I use DOSBox mostly for old adventure games, such as Sierra, and MT-32 was the gold standard. Soundfonts are fine for some games, but I've yet to find one that perfectly replicates the MT-32, not to mention that many games that supported it did not support general midi so sfs are not an option.

Can you give an example of a game that won't work? I'm sure I'm missing something, but don't SFs work for both games that offer General MIDI support and ones that offer Roland support? For instance, Colonization supports 2 types of Roland as well as MIDI and I'm getting music using all 3 options. I may not be hearing what I'm supposed to hear though - I admit I'm not an expert.

@Mal752
Copy link

Mal752 commented Dec 24, 2020

The first thing I looked for when the article came up in Google News on my phone about this fork, I looked for the MT-32 support. But sadly there's none. This is a deal breaker to me.

Yes, this "fork" does NOT need to include the aforementioned PCM and CONTROL rom files of the MT-32. The core of the MUNT should be able to be integrated into this fork, which will only work when rhe MT-32 ROM files are found. These roms are available easily online, but the author doesn't need to worry about the legality of integrating the MUNT into the fork since these rom files will not be included. It's then up to users to find the roms and place it in the directory where the program can find them and use them.

@Mal752
Copy link

Mal752 commented Dec 24, 2020

Would like to add my vote for MT-32 support too. I use DOSBox mostly for old adventure games, such as Sierra, and MT-32 was the gold standard. Soundfonts are fine for some games, but I've yet to find one that perfectly replicates the MT-32, not to mention that many games that supported it did not support general midi so sfs are not an option.

Can you give an example of a game that won't work? I'm sure I'm missing something, but don't SFs work for both games that offer General MIDI support and ones that offer Roland support? For instance, Colonization supports 2 types of Roland as well as MIDI and I'm getting music using all 3 options. I may not be hearing what I'm supposed to hear though - I admit I'm not an expert.

The Roland MT-32 uses what is called LA synthesis. It allows developers to upload custom sounds into the module and can only be reproduced with the real MT-32 and now, the excellent software MT-32 emulator called MUNT.

The games that support MT-32 can be played using General MIDI or Sound Canvas option but the sounds won't sound right on these two latter standards. Especially the uploaded sounds by the developers.

Many Dosbox forks support MUNT integration. All the users need to do is find the ROM files called PCM and CONTROL and place them in the emulator's directory or wherever the emulator can find them. Of course, methods are available to extract these roms from a real MT-32 or simply search online which are easily available. Of course, these ROMs are still in the grey area about legality but it's there and Roland doesn't seem to be asking the sites that host them to take them down.

I saw the author's reply above, but to correct the reply, I would suggest to just integrate the MUNT codes into this fork. MUNT is also available in github and since it does not come with the required roms it's perfectly okay to use the codes. It's up to the users to find or extract the required ROM files to use them.

And yes, no Dosbox project is complete without MIDI output to a real MT-32 or MT-32 emulation via MUNT.

The MT-32 is a special module and it's a classic. Have to listen to be awed in older games.

Newer games started supporting General MIDI and Sound Canvas standards.

These actual modules can be remapped to resemble the MT-32 instrument mapping, but these can't play any custom sounds uploaded by the developers specifically to the MT-32. Anyway, this is beyond the scope of this emulator or discussion.

@Mal752
Copy link

Mal752 commented Dec 24, 2020

As an example, SCUMMVM already has integrated MT-32 emulation via MUNT. It's still legal since SCUMMVM doesn't come with the MT-32 ROM files and will only produce the MT-32 sounds when the program finds them and the option is selected in the games.

And other Dosbox forks already has implemented MUNT.

@Tasosgemah
Copy link

Thanks but how do you enable this in a game? I'm trying Duke Nukem with it and the music sounds the same as before.

Depends on the game. If a game supports MIDI, you can usually enable it running the game's setup program (look for e.g. setup.exe or install.exe). There may also be games where you can configure the sound device using in-game menus.

For Duke Nukem 3D, run setup.exe. Duke Nukem II doesn't support MIDI.

Here's a list of MT-32 compatible games:
https://en.wikipedia.org/wiki/List_of_MT-32-compatible_computer_games

Thanks. I got it working. However, it sounds weird, like there's something off. Like some instruments are more loud/silent than they should be. I found a general midi fond and that sounds off too. I ended up using the Gravis Ultrasound option in this game and that's a good trade off. It sounds much better than regular soundblaster and it's balanced enough.

@Mal752
Copy link

Mal752 commented Dec 25, 2020

Update for @Darknior, @n1ghttrap or anybody who came here with the same wish: I just discovered FatBoy, a free GM/GS sound font for MIDI in old video games. It's entirely legal, you can download it here: https://fatboy.site/

Extract the .sf2 file, put it in your RetroArch system directory, then pick it in the DOSBox-Pure options > Audio > MIDI SoundFont. I think it sounds great.

Unfortunately, no. You still need the MT-32 ROM files to actually hear MT-32 sounds how it should play.

The above link is just for the soundfont which is not compatible with MT-32, as mentioned on the website itself.

There are many good soundfonts specifically catered for classic DOS games. All these try to sound best as close to the original GM or GS standard MIDI.

I use another soundfont which sounds almost as close to my actual Roland SC-55 MKII module. Here it is: https://archive.org/details/SC55EmperorGrieferus

Again, these soundfonts are only good if the game supports General MIDI or Sound Canvas options. For MT-32 option all these SoundFonts will sound wrong. Unless if the game that only supports MT-32 but uses the default GM/GS instrument sets without any uploaded samples. One game that comes to mind is The Secret of Monkey Island 1. It will sound okay without problems even if the output is chosen via SoundFont options.

Classic vanilla 0.74 already supports mapping MIDI option to available MIDI drivers on the PC - like choosing which MIDI port - MUNT for MT-32 or TiMidity/Fluidsynth for GM/GS, etc.

In the end, you still need MUNT code integrated into this fork to hear actual MT-32 sound. Of course, you need to find the roms for yourself.

@Tasosgemah
Copy link

Update for @Darknior, @n1ghttrap or anybody who came here with the same wish: I just discovered FatBoy, a free GM/GS sound font for MIDI in old video games. It's entirely legal, you can download it here: https://fatboy.site/
Extract the .sf2 file, put it in your RetroArch system directory, then pick it in the DOSBox-Pure options > Audio > MIDI SoundFont. I think it sounds great.

Unfortunately, no. You still need the MT-32 ROM files to actually hear MT-32 sounds how it should play.

The above link is just for the soundfont which is not compatible with MT-32, as mentioned on the website itself.

There are many good soundfonts specifically catered for classic DOS games. All these try to sound best as close to the original GM or GS standard MIDI.

I use another soundfont which sounds almost as close to my actual Roland SC-55 MKII module. Here it is: https://archive.org/details/SC55EmperorGrieferus

Again, these soundfonts are only good if the game supports General MIDI or Sound Canvas options. For MT-32 option all these SoundFonts will sound wrong. Unless if the game that only supports MT-32 but uses the default GM/GS instrument sets without any uploaded samples. One game that comes to mind is The Secret of Monkey Island 1. It will sound okay without problems even if the output is chosen via SoundFont options.

Classic vanilla 0.74 already supports mapping MIDI option to available MIDI drivers on the PC - like choosing which MIDI port - MUNT for MT-32 or TiMidity/Fluidsynth for GM/GS, etc.

In the end, you still need MUNT code integrated into this fork to hear actual MT-32 sound. Of course, you need to find the roms for yourself.

The soundfont you linked sounds the best from all the ones i tried so far.

@TarkinMX
Copy link

TarkinMX commented Dec 25, 2020

I'm throwing in my vote for MUNT support. As previously mentioned, Sierra had a soft spot for MT-32 and it's honestly a completely different experience when playing their games using MT-32. Space Quest III is a great example of this, MT-32 is the ultimate experience for the game. Another example is a modded version of King's Quest IV that plays music through MT-32 and has environmental sounds from the amiga version being played through adlib. The installer comes with a version of dosbox that supports all this, just got to add the rom files. I mention this game in particular because I felt it was a prime example as to why it should be considered that MUNT is added to this project.

@schellingb
Copy link
Owner

I added support for mt32emu (Munt) in the newest 0.8 version. When appropriately named ROM files exist somewhere in the frontends system directory, it should become selectable in the Audio > MIDI Output core option. If somebody could test it I'd be grateful.

schellingb referenced this issue in libretro/dosbox-pure Jan 11, 2021
Also known as Munt
Fixes #5
@Tasosgemah
Copy link

I would like to test this but i don't know what roms/files i need to search

@KainXVIII
Copy link

KainXVIII commented Jan 11, 2021

I added support for mt32emu (Munt) in the newest 0.8 version. When appropriately named ROM files exist somewhere in the frontends system directory, it should become selectable in the Audio > MIDI Output core option. If somebody could test it I'd be grateful.

Why placing roms into system directory and enabling mt32 emu in core options is not enough? And which roms (names, hashes)?

@boomercore
Copy link
Author

Works. Tested in Space Quest 3 and worked fine. Can't speak for the granular accuracy or anything like that but it sounded fine messing with it for a bit.

@Tasosgemah
Copy link

Works. Tested in Space Quest 3 and worked fine. Can't speak for the granular accuracy or anything like that but it sounded fine messing with it for a bit.

Can you post how to make MT-32 work? What core options must we use?

@mrmatteastwood
Copy link

I would like to test this but i don't know what roms/files i need to search

Hey @Tasosgemah @KainXVIII, the SCUMMVM documentation on Libretro Docs contains the file names and hashes. @KainXVIII, placing the roms in the system directory and enabling mt32 emu in core options is exactly what you need to do.

midi

@schellingb, I just tried with Cannon Fodder, Colonization and Speedball 2 and it works. I'm really excited and happy about this!!

@Tasosgemah
Copy link

Tasosgemah commented Jan 12, 2021

Yes, it works. I had to rename the ROM files correctly.

Should i use the patched or regular rom? Can't hear a difference.

I assume this is meant to be used with games that have a MT32 option, am i correct? Because games that don't (like DOOM and Duke Nukem 3D) sound weird with it.

@mrmatteastwood
Copy link

mrmatteastwood commented Jan 12, 2021

Yes, it works. I had to rename the ROM files correctly.

Should i use the patched or regular rom? Can't hear a difference.

I assume this is meant to be used with games that have a MT32 option, am i correct? Because games that don't (like DOOM and Duke Nukem 3D) sound weird with it.

Hey, awesome :-) Yes, I think that's correct. I can't speak for DOOM or Duke 3D because I use GZDoom and eDuke32 for those, but to my ears, Blackthorne sounds best when setting it to General MIDI and using the FatBoy sound font. Colonization, OTOH, sounds good when setting to General MIDI and using FatBoy, but also when setting it to Roland MT-32 and using the appropriate ROM.

Tyrian is an example where people say (and I agree) that MIDI doesn't sound nearly as good as the FM Sound option. So I'd say try each game individually and see what suits your tastes best.

EDIT: Never heard of a "patched" ROM, so don't know. I think you're fine with the regular ROM. :-)

@Tasosgemah
Copy link

Tasosgemah commented Jan 12, 2021

I did some comparisons with Youtube videos and it seems like the sound is correct. So that's great.

I use a Roland SC-55 soundfont that sounds very close to the "Microsoft GS Wavetable Synth" (about 99% there) because choosing the General Midi core option doesn't produce sounds for me. Otherwise i wouldn't need a soundfont.

I tried FatBoy's font but that sounds weird as well. Does it emulate a certain device or it's just a fan made project?

@mrmatteastwood
Copy link

Yeah, it's just a fan project, intended specifically for games that support General MIDI.

@KainXVIII
Copy link

I would like to test this but i don't know what roms/files i need to search

Hey @Tasosgemah @KainXVIII, the SCUMMVM documentation on Libretro Docs contains the file names and hashes. @KainXVIII, placing the roms in the system directory and enabling mt32 emu in core options is exactly what you need to do.

midi

@schellingb, I just tried with Cannon Fodder, Colonization and Speedball 2 and it works. I'm really excited and happy about this!!

Yeah, i found names and hashes for MT-32, but not for CM-32 (like in your gif), i have these roms and they working fine in ScummVM..

@schellingb
Copy link
Owner

@KainXVIII All supported files are listed in the Munt source code here.

@KainXVIII
Copy link

Working alright, except mt-32 music stutters sometimes (tested on Legend of Kyrandia 1, stutters occurs during music transition to another tune)

@TarkinMX
Copy link

Working alright, except mt-32 music stutters sometimes (tested on Legend of Kyrandia 1, stutters occurs during music transition to another tune)

What setup are you running on? Afaik mt-32 is somewhat demanding.

@KainXVIII
Copy link

KainXVIII commented Jan 14, 2021

Working alright, except mt-32 music stutters sometimes (tested on Legend of Kyrandia 1, stutters occurs during music transition to another tune)

What setup are you running on? Afaik mt-32 is somewhat demanding.

My setup is enough for mt-32 emulation for sure (at least in normal dosbox/scummvm or/with external munt)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants