OldHunter's retro PC

Retro PC hardware, software & solutions
 News  |  Drivers  |  Articles  |  Software  |  Hardware  |  Gaming  |  Contacts 
 
 

SoftMPU - solving sound problems in a non-standard way

I periodically watch videos on Youtube about retro PC builds. Usually these are videos from channels that I subscribe to, and as a rule, on Friday evening, after a working day, I look at what came out during the week. So, once nothing worthwhile was found in the novelties offered by Youtub, I began to look through old videos and came across two interesting videos: "DreamBlaster S2P MT-32 mode test" and "Monkey Island via DreamBlaster S2P in MT-32 mode" with channel "Scali Bohemiq". In these videos, the music from The Secret of Monkey Island was played on the DreamBlaster S2P and it sounded great.

Experienced retro assemblers know that the MT-32 device from Roland was used to play midi in ancient times, which gave rise to great sound, and the game "Monkey Island" with the music of Michael Land in the intro is the benchmark for retro gaming music. Subsequently, when the GeneralMIDI standard appeared, the corresponding devices appeared, the sound in games reached a new level (Duke Nukem 3D alone is worth something), but there was no continuity. Old games designed to be played on the MT-32 certainly sounded on devices with GeneralMIDI support, but it was completely different music, new devices did not hit the notes, musical instruments were confused, and sometimes there was such a cacophony that it was impossible to listen to it.

A way out of this situation was found by many in the form of soundbanks with MT-32 support (if the equipment allows it), software emulation in the form of "Munt" or software and hardware with a MiSTer FPGA device (+ Raspberry Pi). But all this is a pile of various devices and significant costs. It should be noted that the original Roland MT-32 is even more expensive if you find it on sale at all. Therefore, many managed with an ISA sound card with a wavetable header and some kind of midi daughter.

I also went this way. My main retro machine (386DX) has an OPTi 82C929A MAD16 Pro sound card with a Dreamblaster S2 installed on it. This is a modern vision of a MIDI synthesizer from the Belgian company Serdaco from Oudenburg. Cheap and "angry" - the price on the site is ˆ 35.00

Dreamblaster S2 by Serdaco

It should be noted that despite the lowest price on the market, this is a great solution, with excellent sound, but there is one bold "BUT"! is a GeneralMIDI solution, like almost all midi daughters. Trying to use it on old toys (late 80's or early 90's) will only bring disappointment (especially to a musician, and indeed to any person with a keen ear). The only thing it is suitable for is heavy DOS games like DOOM, Duke3D, HEXEN and others like that.
I don’t play such games on my 386th (well, he doesn’t pull them) and, for example, I’m interested in quests from SIERRA, where it’s better to use SoundBlaster than 330 port.

Problem identified, back to the beginning! So, that day I came across videos that played the music from the game "The Secret of Monkey Island", and it sounded great on the DreamBlaster S2P device. This is practically the same DreamBlaster S2, but connected to the LPT port of your computer. Here is the look:

Dreamblaster S2P by Serdaco

For reference: this solution (LPT-daughter) makes sense when your sound card does not have a comb for connecting a midi-daughter (as in Creative AWE64 GOLD, for example) and you can use a midi-synthesis device by simply connecting it to the LPT port.

Okay, I got excited, well, not quite easy. Your game (or program) needs to specify where to direct the stream, because instead of a midi-comb, the data should go to the parallel port. To do this, the device manufacturer suggests using a “special” version of the SoftMPU program to enable MPU401 smart mode functions on 80386 and faster PCs, which you can download from the link:

https://github.com/pdewacht/softmpu (It's a modified "SoftMPU"!)

It is also suggested to download the S2PTools utility which can be used on any x86 processor (including 8086 and 80286) to patch MS-DOS games and route FM synthesis to the parallel port. Link to GitHub:

https://github.com/pdewacht/s2ptools (Interesting but not essential!)

So this is what I thought after watching the video: "Since this is applicable for DreamBlaster S2P, why can't it be used for DreamBlaster S2???".

After downloading the softmpu.exe file, I ran it and received the following usage hint:

SoftMPU console

So our command will look like this:

SOFTMPU /MPU:330 /DELAYSYSEX /MT32

Probably clearly, it is only necessary to clarify that we do not use an alternative output, as in the case of Dreamblaster S2P (command /OUTPUT:LPT1), but simply specify the standard port 330 and a number of other parameters. For example, an additional /DELAYSYSEX switch enables small transfer delays to prevent buffer overflows with Rev.0 MT-32, and to enable MT-32 compatibility, we added a /MT32 switch to the command line. The result is great music at the start of The Secret of Monkey Island, with no missing notes, extraneous instruments, their confusion, etc. Of course, this is not a Roland MT-32, but the sound can be called almost perfect.

Of course, with all the advantages of such a solution as: low cost of implementation, ease of setup, and high-quality sound, one cannot fail to mention the disadvantages, but they are! SoftMPU requires a memory manager, EMM386 version 4.46+ (MS-DOS 6.2) or QEMM 7.03+ for its work, and as we know, not all toys (especially old ones) "digest" its presence. For example, for some reason Prince of Persia refused to work for me (the game started, but the player control was gone), but another copy of the same game downloaded from the network worked with a bang. So, of course, it's up to you to choose the implementation. Still, if you are an esthete, then of course, it is better than a separate machine with emulation based on Munt + MT-32 ROM (or MidiPlayer with SoundFonts), connected via “Roland UM-ONE Mk2”, or maybe even MiSTer MT32- Pi just can't be found. Although, if you are an aesthete, then you probably already have the original Roland MT-32.

P.S. More about the possibilities of SoftMPU…

A long time ago... I had an Edison Gold-16 card installed in my PC based on the ESS AudioDrive ES688F chip, I have kept it until now and here is a photo of it:

ESS AudioDrive Gold-16

An excellent card, some of the settings can be set with jumpers, there is a built-in IDE controller for connecting a CD-ROM (and you can manually select an interrupt), a great OPL-3, as well as a “comb” under the loud heading “WAVE-TABLE DAUGHTERBOARD”, which allows connect midi daughter. So, the drivers for this card and for the ES1688 model are the same, but they do not allow installing a midi port for a card based on the ES688F chip (which is logical, it is set by the jumpers of the JP3 block), and when installing a midi daughter and trying to play sound through it, speakers are silent. I thought the problem was in a specific instance of the sound card, but I encountered a similar one in other models based on the ES688F. The same problem tormented many users of the forums and "Old Game" and "Phantom-Sannata". When I began to read the documentation, I found that this is not a full-fledged wavetable port, but an SBMIDI interface.

So, that same “special” version of the SoftMPU program, a link to which is given on the Serdaco website, allows you to use midi-daughters with cards like this one, just use the command:

SOFTMPU /MPU:330 /OUTPUT:SBMIDI

Thank you for reading to the end. I once struggled with these solutions, searched the net for answers, read hundreds of pages on the forums, and if, after reading this, someone says: “Yes, this is what you need!”, I will be glad, then I did not waste my time.

All the best to you, friends!

 

 

Copyright 2022-2024 by OldHunter