VOGONS


First post, by digger

User metadata
Rank Oldbie
Rank
Oldbie

With all these cool and neat retro sound hardware recreation projects going on and being mentioned here lately (OPL2LPT, Resound OPL3, TNDLPT and even an Ultrasound clone), I'm frankly surprised that I'm not seeing anyone proposing to recreate a Sound Blaster clone. There is even a debate going on about which sound card has the best OPL3 implementation and more and more people are lamenting the increasing scarcity of Sound Blaster cards and high quality clones. The demand for a card like this seems very obvious to me.

So why not do some brainstorming about how to create the "perfect" Sound Blaster clone? What I have in mind is an 8-bit sound card, with maximum hardware compatibility timing-wise, being compatible with any system with ISA slots, from the original IBM PC 5150 all the way down to the last modern motherboard that still has full ISA support (including DMA).

What I would like to see in such a card:

* Sound Blaster Pro compatible DAC
* OPL3 Synthesizer
* No DMA clicking bug
* MIDI controller with full MPU-401 compatibility, including intelligent mode
* Tandy 3 voice synthesizer
* Waveblaster-compatible internal daughterbord connector
* Joystick/MIDI port
* Dual RCA stereo output connectors, like in WSS cards (instead of a flimsy 9.5mm minijack output)
* Emphasis on output, perhaps no recording (ADC) features at all, at least not in the first iteration
* No built-in amplifier or volume knob
* Software mixer for the various inputs
* No IDE or CD-ROM controller, to keep the card as simple as possible and reduce the risk of hardware conflicts
* High-quality components, durable capacitors, etc
* Internal input for CD-ROM audio and
* Internal input for redirecting the internal speaker output
* Low-noise design, perhaps even a metal shield (which would also make it look pretty sleek)
* An as small as possible form factor (as in: an as short as possible card length)

Optionally, it would be nice to have a secondary OPL2 or OPL3 synthesizer on-board (in addition to the main OPL3 chip), so the card could switch between original Sound Blaster Pro (CT1330) compatibility and Sound Blaster Pro 2 (CT1600) compatibility.

As another nice-to-have, perhaps support could be added for 4-channel OPL3, in a way that would be hardware-compatible with the Resound OPL3 card. But given that the goal of this envisioned card is optimal support in existing MS-DOS games, Resound compatibility would not have the highest priority.

To keep the card as simple and "plug-and-play" as possible, it could be made to be opinionated about its hardware configuration. Simply hard-wire it to base I/O port 220 and DMA 1. The whole point of such a card after all is maximum compatibility, so why allow it to be configured in a way that would prevent it from working with many older games? At most, make the IRQ switchable between 7 and 5 and make the Tandy synthesizer switchable between I/O port C0 and 1E0, to allow that part of the card to work in 286+ systems as well.

So why isn't anybody talking about an open source design for the ultimate Sound Blaster clone? SBPro, MPU401 and Tandy 3 voice support, all on a single 8-bit sound card. Wouldn't that be sweet? 😎

I'm not a hardware expert, but this seems doable. Perhaps a first design could also be a little less ambitious: first start with just a Sound Blaster Pro 2 (CT1600) compatible design without the recording (ADC) and IDE/CD-ROM capabilities, then add a Tandy 3 voice synthesizer, a fully-fledged MPU-401 clone and CT1330 compatibility in later iterations, etc.

Okay, enough dreaming. Time for everyone else to punch holes in this crazy idea. Please go easy on me. 😊

Reply 1 of 92, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

You forgot Covox/DSS support and PC speaker via bus sniffing, as well as an Adlib Gold mode. Go big or go home.

All hail the Great Capacitor Brand Finder

Reply 2 of 92, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Joking aside, the reason why I left out Covox/DSS support, as well as CMS / Game Blaster support, is because I didn't believe it would really add anything useful. As far as I know (and please do correct me if I'm wrong), there isn't a single game out there that supports Covox/DSS without also supporting Sound Blaster, and there are also no games that support CMS without also supporting Adlib.

Had there been a big nostalgia factor tied to the distinct and unique sound of CMS, then maybe such a feature would be more justified. But as far as I've understood, CMS / Game Blaster is basically like the Tandy/PCjr synthesizer, but with more voices.

At least in the case of the 3-voice Tandy/PCjr synthesizer, there are some games that support that as the best sound option in the pre-Adlib era, most notably the earlier Sierra adventures based on the AGI engine. I understand that such games would have to be patched to allow that sound mode to be enabled in combination with non-Tandy graphics. But at least pre-Adlib games exist that have been written with 3-voice music, which IMO justifies such support in an ideal sound card. As can be read to this topic, Maniac Mansion (the first one) has been made to work with the Lotech Tandy Soundboard, without requiring a Tandy or PCjr computer. This is demonstrated in this YouTube video.

That being said, the features you mention could perhaps still be added in a later iteration of the design. 😉 Covox/DSS support could be of value as a fallback option in some of those OPTi-based motherboards with defective DMA controllers, for instance.

As for an Adlib Gold mode, can you name any games in which this would be the most high quality option?

I'm serious about this proposal, though. Why isn't there a serious effort to design an open source high quality Sound Blaster (Pro) clone?

Reply 3 of 92, by digger

User metadata
Rank Oldbie
Rank
Oldbie

PC speaker via bus sniffing sounds interesting, though. But when you want speaker output to run out of your sound card, wouldn't you want the actual internal speaker to be disabled as well? And would a mixable line-in connector not be much simpler to implement than a such a sniffing solution? If it's easier to implement however, than I'm all for it.

Reply 4 of 92, by newold86

User metadata
Rank Newbie
Rank
Newbie

There is nothing difficult in such a project, except finding time and motivation to finish them... Actually, at the moment I have two different designs of such cards - one is based on my universal FPGA card, and another - mostly on STM32 controller.

Reply 5 of 92, by carlostex

User metadata
Rank l33t
Rank
l33t

FPGA would be the best option for such an inclusive project, in this case it would be better to make all chiptune cards available in one:

-SB Pro DAC
-Pro Audio Spectrum DAC
-OPL3
-Dual OPL2
-Phillips SAA 1099 (CMS/GB)
-MOS 6581 (Innvation SSI 2001)
-AY 8930 (Covox Sound Master)
-SN76489 (Tandy)

Reply 6 of 92, by newold86

User metadata
Rank Newbie
Rank
Newbie
carlostex wrote:

FPGA would be the best option for such an inclusive project

Of course, it’s most flexible approach, especially because you can create a MCU inside of FPGA and have “two in one”.
Probably, biggest downside - a price. I think to get everything listed in FPGA will require something around 20 - 50 K logical elements (probably, closer to 50K). For example, Altera MAX10:

16K - $35
50K - $60

Other parts and PCB will add $100, so total cost for parts is around $150

Reply 7 of 92, by digger

User metadata
Rank Oldbie
Rank
Oldbie

The FPGA option indeed seems the most flexible. But newold86, your STM32-based design sounds intriguing as well. Although in both cases, it kind of feels a little bit like cheating, since employing technologies like these to recreate such a Sound Blaster clone is not exactly appropriate to the era. Either option would give this card more CPU power than the vintage host computers it would typically be running in. 🤣 The original design of the Sound Blaster DAC was based on the very common MCS-51 microcontroller. But of course Creative's proprietary ROM is what provided the secret sauce to make it work. Perhaps deliberately choosing a microcontroller based on a completely different architecture would shield us legally, since Creative's original MCS-51-specific code would be of no use in such a design, so we could never be accused of pirating the original ROM.

Honestly, I'd like to see authentic hardware components used wherever possible, so actual OPL2 and OPL3 chips for FM audio and an actual SN76489 chip for Tandy 3-voice audio. Besides, we could base those parts of the design on existing projects (the Resound card and the Lotech card). Like with the original Sound Blaster cards, I'd like to limit the use of a microcontroller or FPGA to just the DAC/DSP part of the card and, if necessary, also the MPU-401-compatible MIDI part.

And if we're going to base the design on a modern microcontroller architecture anyway, why not pick a microcontroller based on the RISC-V architecture, to make the design completely free and open? 😀 I'm not an expert, but am I correct in assuming that the Freedom E310 microcontroller would be powerful enough to handle the DAC/DSP and MPU-401 MIDI functionality? I know the devkit is a bit pricey at $59, but the chip itself can be ordered in 5-packs for $25, which would be $5 per chip. Not too bad, right?

Reply 8 of 92, by newold86

User metadata
Rank Newbie
Rank
Newbie

If we are talking about using original tune chips, everything is much easier. I played a lot with different concepts for universal sound card recently, even partially recreated CT1320 schematics to understand it better. I don’t have any experience with MCS51 MCUs, but don’t think it takes too much time to learn it and design a firmware for SB16 replica.
My biggest problem was OPL part, but using real OPL chips eliminates this issue.
For MPU-401 the easiest way - hardMPU.

Reply 9 of 92, by Scali

User metadata
Rank l33t
Rank
l33t

I suppose the MPU-401 part could be taken care of by the Music Quest clone (which also has a WaveTable header).
I wonder if it is possible to clone the Sound Blaster Pro 2 in the same way: we know it has a 8051 microcontroller on board. If we can extract its firmware and clone it, we'd have a 100% compatible DSP, with no DMA clicking issues.
Add a compatible DAC and ADC (optional), and an OPL3, and you'd be doing quite fine.
The cloned DSP would technically give you a MIDI port, but I see no reason to connect it if you already put the Music Quest clone on the same board. All relevant MIDI software will support the MPU-401 anyway.

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

Reply 10 of 92, by Scali

User metadata
Rank l33t
Rank
l33t
newold86 wrote:

but don’t think it takes too much time to learn it and design a firmware for SB16 replica.

I don't think you'd just want an SB16 replica.
You'd probably want a best-of-both-worlds between the SB Pro 2 and SB16:
Both full SB Pro 2 compatibility and click-freeness, and also the 16-bit DAC capabilities.
Basically fixing the mistakes that Creative made in the SB16.

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

Reply 11 of 92, by Scali

User metadata
Rank l33t
Rank
l33t
carlostex wrote:

FPGA would be the best option for such an inclusive project

From a practical point-of-view perhaps... But if you want to go for "perfect" sound quality, none of the chips have "perfect" emulation, so an FPGA won't sound exactly like the real thing. I think that more or less defeats the point: you might as well run the games in DOSBox if you're going to emulate the audio anyway.

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

Reply 12 of 92, by newold86

User metadata
Rank Newbie
Rank
Newbie

What is “perfect emulation” ?

It’s very difficult to draw a line - the question is very philosophical... If I use real OPL3 chip, but instead of an original DAC make one inside of FPGA - is it perfect enough ? Then, there is OPL3 emulation thar uses real ROM from OPL3 chip and accurate algorithms - how about that ?

Number of my ideas were canceled after I started thinking if are they closer to real thing or to DOSBox emulation...

Reply 13 of 92, by Scali

User metadata
Rank l33t
Rank
l33t
newold86 wrote:

What is “perfect emulation” ?

It’s very difficult to draw a line - the question is very philosophical... If I use real OPL3 chip, but instead of an original DAC make one inside of FPGA - is it perfect enough ? Then, there is OPL3 emulation thar uses real ROM from OPL3 chip and accurate algorithms - how about that ?

Well, that's my point: is there emulation that indeed *has* perfectly accurate algorithms?
At least for the SID I know 100% certain it doesn't exist. I've never heard perfect OPL2 and OPL3 emulation yet either (although in theory they should be easier to do, since they're fully digital).
SN76489... again, DOSBox certainly doesn't do it right.
SAA1099 possibly even worse (thing is that it uses pulse modulation... if you look at a real card on a scope, it's like a 'drooping' triangle wave. Certainly doesn't sound like 'Tandy with more channels').

I mean, I'm not talking about some kind of 'theoretical'/'philosophical' definition, but my experience is that DOSBox and SID emulators at least are quite bad. You can clearly tell the difference with real hardware in various cases.
I don't think it's worth the effort to build a card with only FPGA, which basically only has 'software approximations' of sound chips, which are obviously inaccurate to most listeners.

Perhaps a hybrid approach is interesting though...
You could design a card with an FPGA and sockets for various sound chips... And then have it configurable to either use internal emulation or a real chip.
The FPGA could at least perform the 'glue logic' for address decoding, contain the MPU-401 implementation, Sound Blaster DSP, and perhaps two DACs... one for the OPL2/OPL3 and one for the SB. All that stuff can be handled just fine with the FPGA.

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

Reply 14 of 92, by DosDaddy

User metadata
Rank Newbie
Rank
Newbie

A capacity to natively output at arbitrary sample rates would too be very important for the quality. That and whatever type of low-pass filter some of these cards happened to have, which's ultimately responsible for the "authenticity" of the SB sound and a very often missing feature in emulators.

Reply 16 of 92, by Scali

User metadata
Rank l33t
Rank
l33t
newold86 wrote:
Scali wrote:

I've never heard perfect OPL2 and OPL3 emulation yet

Reverse engineered OPL3 looks quite accurate...

Well, if I look at this video and the discussion below it: https://www.youtube.com/watch?v=i9vEKyJScYw
There is a discussion about the inaccuracy of the percussion sounds and noise.
So well... I dunno.
I suppose if you had both a real OPL3 and an FPGA on there, it'd at the very least be an excellent way to A/B-test the emulation against the real thing. You run both through the same DAC and output circuitry, so a perfect emulation should sound 100% identical to the real chip. Anything that doesn't sound identical can only be caused by flawed emulation.

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

Reply 18 of 92, by newold86

User metadata
Rank Newbie
Rank
Newbie

Is OPL3 "perfectly" backward compatible with OPL2 ? Basically, do we need to bother with both OPL2 and OPL3 on the board, or just OPL3 is enough ?
Of course, it's always possible to disable additional features of OPL3, so software would detect it as OPL2...

Reply 19 of 92, by 640K!enough

User metadata
Rank Oldbie
Rank
Oldbie
newold86 wrote:

Is OPL3 "perfectly" backward compatible with OPL2 ? Basically, do we need to bother with both OPL2 and OPL3 on the board, or just OPL3 is enough ?
Of course, it's always possible to disable additional features of OPL3, so software would detect it as OPL2...

My hearing probably isn't good enough to hear the differences anyway, especially without clear A/B testing, but from what I've read, they don't sound exactly alike.