VOGONS


First post, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

I just got my S1 wavetable card recently and it's awesome but very few of my 386 games actually work on it and not for lack of midi support. They're usually looking for a roland or something. For example, stellar 7 didn't work and then I found the string in the batch file responsible for sound and randomly messed with the numbers until it worked. It did. It sucked. Stellar 7 doesn't fare well on the wavetable.

However I think Mystic Towers would kick ass and I'm trying to get Falcon 3 to use it as well. Then there's games like Winter/Summer by Accolade. I don't know how many other games support wavetable music but if anyone has gotten any of these titles working with general midi, that's what I'm after, since the S1/X2 work on general midi settings. Mystic towers would probably sound fantastic. I can say Raptor sound really great with wavetable and of course it goes without saying, Doom and Descent are spectacular (although they don't run playably on my rig).

I know sometimes with some hackery you can get these programs to recognize your card so if any such tricks exist, would love to know about them.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 1 of 32, by CkRtech

User metadata
Rank Oldbie
Rank
Oldbie

386 is more of an MT-32 era machine in terms of software. I believe Stellar 7 (as a specific example you gave) is basically FM synth or Roland MT-32. From what I can recall, General MIDI in gaming (and therefore by extension, wavetable) exploded in 1993.

Displaced Gamers (YouTube) - DOS Gaming Aspect Ratio - 320x200 || The History of 240p || Dithering on the Sega Genesis with Composite Video

Reply 2 of 32, by badmojo

User metadata
Rank l33t
Rank
l33t

From what I've seen, if a game lists 'Roland' as an option then it's talking about an MT-32, so it's not going to sound right on your GM wavetable device. 'General Midi' or 'Sound Canvas' will be the options to look for for your S1.

Life? Don't talk to me about life.

Reply 3 of 32, by dionb

User metadata
Rank l33t++
Rank
l33t++

Could it be an address/IRQ thing? GM allows various addresses, but the MT-32 (or rather the interface card that connects to the MPU-401 that connects to the MT-32) was always at 0x330 and IRQ 2. Games that support GM allow you to enter MIDI base address, but games that support MT-32 just send data there. If you have something else at these two, expect very odd system behaviour - but no working music - if you try.

My experience is that setting MPU401 settings on the card to address 0x330 and IRQ 2 will eliminate odd stuff. But you still might not have sound.

The second issue is that old games can use the MPU-401 active mode, which is rarely natively supported by later cards. For that, you want to run SoftMPU (a TSR - which can be loaded high - that emulate all the active functions in software). That was what I needed to get say Ultima 6 working with MT-32 sound.

Now, "getting sound" is not the same as getting what the composer intended. MT-32 predates GM and although there is a lot of overlap between the two, quite a few instruments are different between the two standards. So even though the tunes will be correct and you'll have all the low-SNR goodness of MIDI, it might sound different (and generally not in a good way). That said, if I have to choose between MT-32 music and Adlib FM music (which is usually the alternative in games too old for SC-55/GM options), give me the wrong instruments doing the right tune anyday 😉

Reply 4 of 32, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

Are the software calls to a Roland card so much different than those to any other wavetable device? I guess that's a rhetorical question but I was hoping my card would work with more stuff. Games that autodetect are more of a pain because I don't even know that they're incompatible... merely that they are guessing the incorrect configuration and I wish I could just set it up myself.

I had SB sound working on Falcon 3 but last night I noticed it's no longer working. I tried every combo of changing the settings back and forth but it won't play music. I'm undecided as to whether this is a memory issue or a sound config issue or something else. It was working before.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 6 of 32, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

For DreamBlaster S2P, scali has been working on softMPU changes : allowing to use S2P in MT32 compatibility modus.
This is not a complete MT-32 implementation, but rather a mapping of the default tones. Still it can produce good results in some cases
We were planning to test this same change, for using DreamBlaster S1 an S2, through SOFTMPU

Attachments

  • S2_MT32instruments.png
    Filename
    S2_MT32instruments.png
    File size
    14.55 KiB
    Views
    1478 views
    File license
    Fair use/fair dealing exception
  • S2_MT32_drums.png
    Filename
    S2_MT32_drums.png
    File size
    10.88 KiB
    Views
    1478 views
    File license
    Fair use/fair dealing exception

Visit http://www.serdashop.com for retro sound cards, video converters, ...
DreamBlaster X2, S2, S2P, HDD Clicker, ... many projects !
New X2GS SE & X16GS sound card : https://www.serdashop.com/X2GS-SE ,
Thanks for your support !

Reply 7 of 32, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member
dreamblaster wrote:

For DreamBlaster S2P, scali has been working on softMPU changes : allowing to use S2P in MT32 compatibility modus.
This is not a complete MT-32 implementation, but rather a mapping of the default tones. Still it can produce good results in some cases
We were planning to test this same change, for using DreamBlaster S1 an S2, through SOFTMPU

So in theory this would allow someone with a dreamblaster to get wavetable sound on any game that supports Roland? From the documentation it talks about plugging stuff into your serial port instead of your mpu401 port. Will this eventually allow daughterboards to work without external midi devices?

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 8 of 32, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie
Gahhhrrrlic wrote:

So in theory this would allow someone with a dreamblaster to get wavetable sound on any game that supports Roland?
From the documentation it talks about plugging stuff into your serial port instead of your mpu401 port. Will this eventually allow daughterboards to work without external midi devices?

Yes, for some games at least.
SoftMPU can simulate MPU-401 intelligent mode, and the new feature allows it to use the MT32 default sound map for S2P (and S1/S2).
It still will not sound correct, with games that load custom sounds into MT32.

Visit http://www.serdashop.com for retro sound cards, video converters, ...
DreamBlaster X2, S2, S2P, HDD Clicker, ... many projects !
New X2GS SE & X16GS sound card : https://www.serdashop.com/X2GS-SE ,
Thanks for your support !

Reply 9 of 32, by derSammler

User metadata
Rank l33t
Rank
l33t

For DreamBlaster S2P, scali has been working on softMPU changes : allowing to use S2P in MT32 compatibility modus.

Why changes to SoftMPU? The SAM2695 can be switched to MT-32 mode (set controller 0 value to 127 then send program change). It does GS as well.

Reply 10 of 32, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++
dreamblaster wrote:
Yes, for some games at least. SoftMPU can simulate MPU-401 intelligent mode, and the new feature allows it to use the MT32 defa […]
Show full quote
Gahhhrrrlic wrote:

So in theory this would allow someone with a dreamblaster to get wavetable sound on any game that supports Roland?
From the documentation it talks about plugging stuff into your serial port instead of your mpu401 port. Will this eventually allow daughterboards to work without external midi devices?

Yes, for some games at least.
SoftMPU can simulate MPU-401 intelligent mode, and the new feature allows it to use the MT32 default sound map for S2P (and S1/S2).
It still will not sound correct, with games that load custom sounds into MT32.

It provides the same functionality vis a vis MT-32 compatibility as many of the Sound Canvas modules and early Dream based wavetable modules such as my old CS9233 Aztech daughterboard.

All hail the Great Capacitor Brand Finder

Reply 11 of 32, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member
dreamblaster wrote:

We were planning to test this same change, for using DreamBlaster S1 an S2, through SOFTMPU

Do you have an approximate timeline for when the S1 will be supported?

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 12 of 32, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

For S1/S2, it still needs testing.
I upload the test version here : this modification, by Scali, based on pdr's S2P enhancements ( https://github.com/pdewacht/softmpu )
support a /MT32 flag : this forces MT32 'compatibility modus' for S1/S2/S2P

softmpu_scrsht.png
Filename
softmpu_scrsht.png
File size
8.96 KiB
Views
1400 views
File license
Fair use/fair dealing exception

Attachments

  • Filename
    softmputest.zip
    File size
    6.66 KiB
    Downloads
    54 downloads
    File license
    Fair use/fair dealing exception

Visit http://www.serdashop.com for retro sound cards, video converters, ...
DreamBlaster X2, S2, S2P, HDD Clicker, ... many projects !
New X2GS SE & X16GS sound card : https://www.serdashop.com/X2GS-SE ,
Thanks for your support !

Reply 13 of 32, by Scali

User metadata
Rank l33t
Rank
l33t
derSammler wrote:

Why changes to SoftMPU? The SAM2695 can be switched to MT-32 mode (set controller 0 value to 127 then send program change). It does GS as well.

It's not a switch. The CC 0, 127 only works for the PC command that immediately follows it.
This is why we use SoftMPU to pre-pend all PC-commands with CC 0, 127.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 14 of 32, by keropi

User metadata
Rank l33t++
Rank
l33t++

I always wondered why newer synths than mt32 dropped the sample upload function, I mean it's not even present in the high-end sound canvas devices that followed (SC-88 and upwards) , that's the reason mt32 compatibility modes don't always produce decent playback.
Isn't custom sample uploads important in music creation? Or they just wanted to push samplers or some similar extra device to achieve this?

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 15 of 32, by Scali

User metadata
Rank l33t
Rank
l33t
keropi wrote:

I always wondered why newer synths than mt32 dropped the sample upload function, I mean it's not even present in the high-end sound canvas devices that followed (SC-88 and upwards) , that's the reason mt32 compatibility modes don't always produce decent playback.

Probably because they are 'romplers', as in: they store the samples in ROM only, no RAM, so they can't be updated.

keropi wrote:

Isn't custom sample uploads important in music creation? Or they just wanted to push samplers or some similar extra device to achieve this?

Some synths do support it, via their own SysEx commands.
However, note that the MT-32 doesn't just use samples. It uses 'Linear Arithmetic', which is a combination of samples and subtractive synthesis.
So custom MT-32 sounds are not necessarily just different samples, they can also reprogram the synthesis-part.
This synthesis-part can also be modified by SysEx commands in realtime, which means it's impossible to precalc it in a sample.
MT-32 just uses a different method of sound generation than most other synths.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 16 of 32, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

It's not a switch. The CC 0, 127 only works for the PC command that immediately follows it.
This is why we use SoftMPU to pre-pend all PC-commands with CC 0, 127.

I have no S1/S2 to test it but on standard GS/XG devices it's enough to set the desired Bank once per channel. Any subsequent Program Change on that channel will stay in the last selected Bank.
Also on GS devices that support MT-32 mode it's not enough to switch melodic channels to bank 127 for MT-32 compatibility. For the drum channel (10) you should send a Program Change 127 to select MT32/CM64 compatible drum set. And it is also necessary to set the MT-32 default 12 semitones pitch bend range on all channels (at least on 2-9). Most MT-32 midis presume this range without setting it explicitly and sound bad with GM default 2 semitones.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 17 of 32, by Scali

User metadata
Rank l33t
Rank
l33t
Falcosoft wrote:

I have no S1/S2 to test it but on standard GS/XG devices it's enough to set the desired Bank once per channel. Any subsequent Program Change on that channel will stay in the last selected Bank.

That would make more sense, but my tests with the S2P didn't seem to support this behaviour.
My first implementation would just send the CC 0, 127 to all MIDI channels at startup, but that didn't work. So I tried sending it before every PC command, then it worked.
I tested with my MIDI player, playing the Monkey Island theme once with MT-32 mode enabled, pre-pending all PC-commands.
Then I played it again, with MT-32 mode disabled.
In theory, all channels should already have been switched to the MT-32 bank, so it should still play with MT-32 sounds.
But it didn't.

Falcosoft wrote:

Also on GS devices that support MT-32 mode it's not enough to switch melodic channels to bank 127 for MT-32 compatibility. For the drum channel (10) you should send a Program Change 127 to select MT32/CM64 compatible drum set. And it is also necessary to set the MT-32 default 12 semitones pitch bend range on all channels (at least on 2-9). Most MT-32 midis presume this range without setting it explicitly and sound bad with GM default 2 semitones.

These are some things we will have to investigate for the S1/S2 specifically.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 18 of 32, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

That would make more sense, but my tests with the S2P didn't seem to support this behaviour.
My first implementation would just send the CC 0, 127 to all MIDI channels at startup, but that didn't work.

Instead of sending only the Bank Select MSB messages maybe you can try to send the Bank Select MSB 127 + Default Program Change messages together. Unlike GM devices the MT-32 has different default programs on each channel after a reset. Some midis even could rely on these default programs, so even if it does not work as a final solution for MT-32 switch on melodic channels it would be a better starting/post-reset state.

mt32_reset.jpg
Filename
mt32_reset.jpg
File size
127.57 KiB
Views
1377 views
File license
Fair use/fair dealing exception

Unfortunately the document does not list the corresponding program numbers, so here they are:
68, 48, 95, 78, 41, 3, 110, 122, (127 drum)

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 19 of 32, by Scali

User metadata
Rank l33t
Rank
l33t
Falcosoft wrote:

Unfortunately the document does not list the corresponding program numbers, so here they are:
68, 48, 95, 78, 41, 3, 110, 122, (127 drum)

Okay, thanks... That is something that really should be in the emulation routine: initialize all channels to the MT-32 default.
I will do some more testing to see if they 'stick' after all...

But this means that the MT-32 by default only listens to channels 2, 3, 4, 5, 6, 7, 8, 9 and 10.
So channels 1 and 11-16 would still need to be switched to MT-32 mode, if they are used (I suppose there are SysEx commands that could change the channel mapping of the parts on a real MT-32, so it could use these channels in theory).
If the setting 'sticks', then I could at least switch them to program 1, so I can force MT-32 mode.
In that case it only won't work if there are indeed SysEx commands being sent to change the MIDI channel of a part, but there is no program change (so the new MIDI channel effectively 'inherits' the program of the previous channel).
If that turns out to be the case, then there should be a simple interpreter for SysEx commands, to work around this.

If the settings really don't 'stick', then I need to retain the current solution of prefixing it at every program change at runtime.

Edit: did another test, and indeed, the setting does not 'stick', so every program change must be preceded by the CC 0, 127 to select an MT-32 bank instead of the default.
I will add the standard initialization to the custom SoftMPU though.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/