VOGONS


8-bit sound card on FPGA

Topic actions

First post, by newold86

User metadata
Rank Newbie
Rank
Newbie

While working (very) slowly on much more complex project inspired by the discussion, decided to make a simple SB-like card with DSP part (and OPL DAC) inside of FPGA, and original OPL2 chip just to test some ideas:

b-71.jpg

Reply 2 of 45, by shock__

User metadata
Rank Oldbie
Rank
Oldbie

Great effort 😀
Personally love the wavy routing. What package is that FPGA?

Minor suggestion: Make sure there's no solder mask on the ISA connector ... that can lead to issues over time and/or look bad after a few plug/unplug cycles.

Last edited by shock__ on 2018-09-20, 19:38. Edited 1 time in total.

Current Project: new GUS PnP compatible soundcard

[Z?]

Reply 4 of 45, by Error 0x7CF

User metadata
Rank Member
Rank
Member

Awesome! It'd be very cool if there could be an FPGA sound card like this that could be reconfigured via a DOS application to a variety of different cards. Of course, SB clone is also awesome.

Old precedes antique.

Reply 6 of 45, by Tiido

User metadata
Rank l33t
Rank
l33t

MAX10 <3

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 8 of 45, by keropi

User metadata
Rank l33t++
Rank
l33t++

<3 looks like a sideways heart so it means Tiido really likes the MAX10 fpga

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

Reply 11 of 45, by Tiido

User metadata
Rank l33t
Rank
l33t

Hahaha, <3 is meant to be a heart so Keropi is right here. I like MAX10 FPGAs and I use them on several things.

I dont see any DAC, I suppose you're doing PWM/PDM there for sound output ? Or maybe it is under the YM ?

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 12 of 45, by appiah4

User metadata
Rank l33t++
Rank
l33t++
newold86 wrote:
keropi wrote:

<3 looks like a sideways heart so it means Tiido really likes the MAX10 fpga

Looks more like a butt 😀

Which in itself is not always less desirable than a heart.. but I digress.

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 13 of 45, by Scali

User metadata
Rank l33t
Rank
l33t
newold86 wrote:

(and OPL DAC)

Interesting.
My question is: how did you implement this?
Do you have a single DAC that you use for both the OPL and the DSP sample output? In which case, do you just convert the custom OPL output to standard linear PCM, and mix it with the DSP output?
Or do you use two independent DACs, one for the FM and one for the DSP, and mix them in the analog domain?

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

Reply 14 of 45, by newold86

User metadata
Rank Newbie
Rank
Newbie
Tiido wrote:

I dont see any DAC, I suppose you're doing PWM/PDM there for sound output ? Or maybe it is under the YM ?

Yes, just a simple 8-bit PWM with one resistor/capacitor... Converting OPL2 output to parallel 16-bit format and sending only 8 MSBs to PWM (doesn't add a sound quality, but good enough for my purpose).

Scali wrote:

... do you just convert the custom OPL output to standard linear PCM, and mix it with the DSP output?

Yes, just using arithmetic add operation. Again, the quality is a bit weird, but better than expected. Will try to find my recorder later today to provide some examples.

Reply 15 of 45, by keropi

User metadata
Rank l33t++
Rank
l33t++

well it is certainly impressive for a test board - mainly compatibility tests. Output sound quality can always be tackled once you have a good base for the sb controller. 😀

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

Reply 19 of 45, by newold86

User metadata
Rank Newbie
Rank
Newbie

Does anyone know how does YM3014 work ??? The datasheet shows 16 bits for each SH cycle (3 unused, 10 mantissa and 3 exponent), but in reality YM3812 is sending 18 bits. I can’t recognize required data just looking at the logic anslyzer screen, and too lazy to experiment 😀