VOGONS


Reply 20 of 37, by Jo22

User metadata
Rank l33t++
Rank
l33t++
640K!enough wrote:
root42 wrote:

I think it would be the other way around. DMA via the LPT will be a bit difficult, especially on older machines.

Direct DMA transfers to audio hardware via the parallel port would be just about impossible; the parallel port and ISA bus are quite different. The DMA functionality would have to be accomplished with assistance from the software TSR that they have. It has been done before, and can be made to work; it would just depend on whether dreamblaster and LABS consider it a worthwhile collaboration effort, and whether this ends up being the least expensive way for dreamblaster to deliver such a product.

Would there be any benefits in comparsion to a simple Covox DAC ? Both would have to handle ISA DMA by the help of a TSR, wouldn't they ? 😕
And what about the PAS/PAS16 ? It was the second largest standard beside GUS and their DACs were accessible
via a high-level API through mvsound.sys. Wouldn't it be possible for it (the PAS DAC) to be usable without using ISA DMA ?
Maybe some sort of PAS->Covox wrapper that works similar to Virtual Sound Blaster, but without the quirks and limits of the SB architecture ?
An mvsound.sys-emulator, so to say. These are just my thoughts, so please don't be up set.. Ans it's no feature request, of course. 😅

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 21 of 37, by LABS

User metadata
Rank Member
Rank
Member

Ok, looks hardcore DIY, but the DAC prototype is finally assembled and connected to OPL2/ISA part. Will do the tests today.
The project is called BlasterBoard 2.0 (SoundBlaster + ThunderBoard + 2.0 DSP support) 😎
I decided to add a crossfader between DAC and OPL2 signals (pot on the top left of the DAC board) to control the balance between them, so only one power amp is needed to alter overall volume and it is already there on OPL2 board. As a replacement for default SB's 15KHz output filter now there is a new, 4-pole Sallen-Key 20KHz Butterworth LP filter, built with LM833 audio-grade op-amp and WIMA+KEMET polypropylene caps (left of the DAC board). The difference was noticed immediately - OPL2 now sounds more articulated and plain. The audio path now looks like this:

[DSP DAC] -> [level corr] -> [DAC/OPL2 blend POT] -> [BUF] -> [4-pole 20KHz LP] -> [Pwr AMP + level POT] -> Out jack
[OPL2 DAC] -> [BUF] -----------------^

Some thoughts:
- There are a lot of MCU resources left unused, so I'm thinking of adding a 8-voice subtractive software synth to firmware and pick some unused registers to control it. Thinking of two OSC per voice, 4 waveforms per OSC: tri/saw/sqr/sine for OSC1 and tri/saw/sqr/noise for OSC2 , OSC2 detune, 2 EGs per voice, LP/HP filter per voice, simple voice delay for rev/echo.
- I already added some BB2.0 - specific commands to DSP: 0xF4 - Generate DAC test tone, 0xF5 - Stop DAC test tone. There will be more, so some kind of a PDF manual will be available.

P1010551.JPG
Filename
P1010551.JPG
File size
426.21 KiB
Views
1936 views
File license
Fair use/fair dealing exception
P1010552.JPG
Filename
P1010552.JPG
File size
405.38 KiB
Views
1936 views
File license
Fair use/fair dealing exception
matze79 wrote:

if you get this done, did you ever mind to work together with dreamblaster to add the DAC Part to his OPL2LPT Device

I actually made an LPT->OPL2 player in 2016 on a breadboard, added some code to open-source IMFPLAY and Adlib Tracker to support it, but no precomplied soft for DOS supported FM playback via LPT by default, so after a week of listening to some tunes I lost interest. There was an idea for a TSR to reroute the commands, but that was too much of shamanic dances for me. LPT is ok for sending FM commands, but it is too slow for PCM playback. Standart Parallel Port's bitrate is 150kbit/s, which is 18.75kbyte/s. Even 8-bit PCM transfer at 22050Hz in DMA mode requires at least a theoretical minimum of 22.05 kbyte/s, but DMA is not available for SPP transfers. EEP and ECP support up to 2.5 mbit/s and ECP even supports DMA, but.. there is no reason to implement SB's DAC on LPT. It requires 4 more I/O ports to be implemented somehow, precompiled soft will never work with it directly, but writing a TSR driver is unrelyable (SB PCI drivers for DOS was a good example), so it is not worth the effort. FM on LPT is cool for some software playing tunes on original chip, but SB-compatible DAC on LPT is just useless.

Last edited by LABS on 2018-06-21, 12:34. Edited 1 time in total.

Blasterboard: DIY SB2-compatible sound card on ATmega MCU
Sonic Buster 8: New 8-bit ISA sound card

Reply 22 of 37, by root42

User metadata
Rank l33t
Rank
l33t

Looks like you made good progress! Ideally I think this would end up all on one board, so one can make his/her own BlasterBoard. Or alternatively have a pure DSP board, if one happens to already have an OPL2 board. But I think that would probably not make sooo much sense.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 23 of 37, by Jo22

User metadata
Rank l33t++
Rank
l33t++
LABS wrote:

Ok, looks hardcore DIY, but the DAC prototype is finally assembled and connected to OPL2/ISA part. Will do the tests today..

Looks good! 😀 By the way, I didn't mean to be disrespectful when I sayed it looks like that. Rather in reverse.
Back in time, in Germany, small series and prototypes were usually considered high quality products.
More than often, they did work more reliable than the profesionally made final product.
For once, because they had to be tested and tweaked individually, and because commercial aspects (cost savings) didn't matter
during the development process. That's also why stuff used by miltitary and universities is/was totally different from what was/is typically commercially available. Perhaps things are different now or were different in other places around the world, not sure.
Anyway, I think you can be proud of what you have accomplished so far. Good luck for testing!

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 24 of 37, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote:
And what about the PAS/PAS16 ? It was the second largest standard beside GUS and their DACs were accessible via a high-level API […]
Show full quote

And what about the PAS/PAS16 ? It was the second largest standard beside GUS and their DACs were accessible
via a high-level API through mvsound.sys. Wouldn't it be possible for it (the PAS DAC) to be usable without using ISA DMA ?
Maybe some sort of PAS->Covox wrapper that works similar to Virtual Sound Blaster, but without the quirks and limits of the SB architecture ?
An mvsound.sys-emulator, so to say. These are just my thoughts, so please don't be up set.. Ans it's no feature request, of course. 😅

I found your idea so intriguing that I went and did some digging! 😀

I found a download link for the PAS SDK at the bottom of this (quite long and extensive) post by P4R4D0X (all the way at the bottom of that post, a Mediafire link to a file called PROAUDIO.ZIP). I browsed through some of the assembly and C sources, but there were still a lot of references to direct DMA programming in there. 🙁

Also, if I understood the documentation correctly, the MVSOUND.SYS file only provides abstraction for detection, hardware initialization and mixer control. Either it doesn't offer a completely abstracted programming API, or it is bypassed by many games in lieu of direct programming. Various sources on-line appear to be providing conflicting information about this, compared to the documentation that came with the SDK:

https://nerdlypleasures.blogspot.com/2017/01/ … -crown-pro.html
https://en.wikipedia.org/wiki/Media_Vision_Pro_AudioSpectrum

It would be nice if someone here in the know could provide some clarification on this. Does MVSOUND.SYS abstract away the DMA programming part of Pro Audio Spectrum cards? And if so, how many games accessed the cards through this abstraction instead of directly?

LABS wrote:

LPT is ok for sending FM commands, but it is too slow for PCM playback. Standart Parallel Port's bitrate is 150kbit/s, which is 18.75kbyte/s. Even 8-bit PCM transfer at 22050Hz in DMA mode requires at least a theoretical minimum of 22.05 kbyte/s, but DMA is not available for SPP transfers. EEP and ECP support up to 2.5 mbit/s and ECP even supports DMA, but.. there is no reason to implement SB's DAC on LPT. It requires 4 more I/O ports to be implemented somehow, precompiled soft will never work with it directly, but writing a TSR driver is unrelyable (SB PCI drivers for DOS was a good example), so it is not worth the effort. FM on LPT is cool for some software playing tunes on original chip, but SB-compatible DAC on LPT is just useless.

I wouldn't call it useless. From what I gather in many topics here, Sound Blaster emulation over a parallel port, or at least support for digital audio over a parallel port, to go along with recent retro music hardware projects such as dreamblaster's OPL2LPT, OPL3LPT, TNDLPT and MIDILPT projects, is pretty much considered a holy grail in order to get games with sound working on older laptops, Microchannel-based PS/2 systems and modern post-ISA PCs.

Most games only output sound at 11025kHz, which would require only half the bandwidth you describe, which would be feasible over an LPT port, possibly even on a 386 machine, even when combined with something like OPL2/OPL3 on the same port, perhaps through some kind of latching mechanism in the parallel port device to allow for multiplexing and thus simultaneous music and digital audio output.

Also, how would you explain the existence of products such as these? https://youtu.be/t7VxWbCgWHk

Reply 25 of 37, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I'm not experienced enough to make any statements here, but I remember that the Sound Blaster cards did support compression/decompression of PCM streams.
In case a game uses 11KHz/B-Bit sampling rate, or 4-Bit at 22KHz, I could imagine it could be still within the bandwith limits of an old LPT port.
Using more modern LPT modes like ECP/EPP might be interesting for modern systems, where no ISA or PCI slots are available anymore.
However, I think it might be best to focus on the basics first. That would make people happy who are really interested in such a project,
not just in a new gadget as a gag on a party. Owners of vintage laptops or old 8088 PCs might be finy with 8 or 11KHz at 8-Bit,
since these machines can't handle higher rates anyway.

digger wrote:
I found your idea so intriguing that I went and did some digging! :happy: [..] Also, if I understood the documentation correctly […]
Show full quote

I found your idea so intriguing that I went and did some digging! 😀
[..]
Also, if I understood the documentation correctly, the MVSOUND.SYS file only provides abstraction for detection, hardware initialization and mixer control. Either it doesn't offer a completely abstracted programming API, or it is bypassed by many games in lieu of direct programming.
[..]
It would be nice if someone here in the know could provide some clarification on this. Does MVSOUND.SYS abstract away the DMA programming part of Pro Audio Spectrum cards? And if so, how many games accessed the cards through this abstraction instead of directly?

You're welcome! 😀 Unfortunately, I can't provide a precise answer to this, either.
When I was little, I had a PAS16 and never faced all the usual DMA and IRQ issues that magazines and people described.
The card just worked. Even with "old" Sound Blaster titles, thanks to the Thunderboard chipset, which emulated an SB 1.5/2.0.
So looking backwards, I assumed that mvsound.sys provided some level of abtraction, that the Sound Blasters of their time lacked.
Especially the High DMA issues that became so popular with the SB16 line (I must say that the original SB16 line was less troublesome
that the latter Plug and Play models. Same goes for early SB32, which were half-PnP. Still keep my CT17x0 cards).

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 26 of 37, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote:

I'm not experienced enough to make any statements here, but I remember that the Sound Blaster cards did support compression/decompression of PCM streams.
In case a game uses 11KHz/B-Bit sampling rate, or 4-Bit at 22KHz, I could imagine it could be still within the bandwith limits of an old LPT port.

Yes, the original Sound Blaster cards (and closely compatible clones) indeed supported playback of ADPCM-compressed audio in hardware. Duke Nukem II is an example of a game that made use of this.

Using more modern LPT modes like ECP/EPP might be interesting for modern systems, where no ISA or PCI slots are available anymor […]
Show full quote

Using more modern LPT modes like ECP/EPP might be interesting for modern systems, where no ISA or PCI slots are available anymore.
However, I think it might be best to focus on the basics first. That would make people happy who are really interested in such a project,
not just in a new gadget as a gag on a party. Owners of vintage laptops or old 8088 PCs might be finy with 8 or 11KHz at 8-Bit,
since these machines can't handle higher rates anyway.

I've been thinking about a concept for a "Disney Sound Source on Steroids", a parallel port sound audio device that, in addition to basic DSS compatibility would also support some kind of "DSS Plus" mode, which would support (optional) ADPCM decompression in hardware, as well as a larger output FIFO buffer, a DAC that could be programmed to operate at variable bit-rates (so not just 7kHz, but also the more common 11kHz and perhaps also higher modes on faster computers) and perhaps even stereo output. Additionally, such a "DSS Plus" device could perhaps be given the ability to trigger IRQ7 (when connected to LPT1) when instructed to do so by a Sound Blaster software emulator. Hardware-assisted Sound Blaster emulation, so to speak. 😀 Even though such a hypothetical parallel port audio device would still not be able to offer native Sound Blaster compatibility, it would be easier to write game drivers or even a Sound Blaster emulator for it, since such an emulator would then not have to worry about decompressing ADPCM in software, down-sampling everything to 7kHz or simulating IRQ invocations. It would only have to focus on trapping the I/O ports and emulating DMA transfers, which is already more than hard enough to begin with. Even better would be if such a device could be combined with OPL2LPT or OPL3LPT, to provide both music and digital audio on a single parallel port.

I'm probably just dreaming out loud, though. 😀 I don't have the expertise to seriously design something like this, unfortunately. Nevertheless, I hope dreamblaster or some other skilled forum member would be willing to investigate such possibilities.

You're welcome! :) Unfortunately, I can't provide a precise answer to this, either. When I was little, I had a PAS16 and never […]
Show full quote

You're welcome! 😀 Unfortunately, I can't provide a precise answer to this, either.
When I was little, I had a PAS16 and never faced all the usual DMA and IRQ issues that magazines and people described.
The card just worked. Even with "old" Sound Blaster titles, thanks to the Thunderboard chipset, which emulated an SB 1.5/2.0.
So looking backwards, I assumed that mvsound.sys provided some level of abtraction, that the Sound Blasters of their time lacked.
Especially the High DMA issues that became so popular with the SB16 line (I must say that the original SB16 line was less troublesome
that the latter Plug and Play models. Same goes for early SB32, which were half-PnP. Still keep my CT17x0 cards).

Yeah, but that abstraction may just have been the "detection of the right DMA and IRQ settings" part and not the actual playback of audio. Nevertheless, it indeed sounds (no pun intended) like a much user-friendlier experience than what the Sound Blaster cards and other competitors of the time provided. If only a truly hardware-neutral industry standard like VBE/AI had successfully gained traction in those days. Then we would have had proper legacy sound support in modern hardware today. 😒

Reply 27 of 37, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Sounds interesting really! I think that deserves a separate thread, as comprehensive that matter is.
By the way, I think there's a way to overcome the limits of the LPT port a bit.
If we use a port/bus extender chip, like a 8243, we could expand the few status and/or data lines to something useful.

Edit: Found a datasheet (MSM82C43).

8243pair.gif
Filename
8243pair.gif
File size
69.16 KiB
Views
1131 views
File license
Fair use/fair dealing exception

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 28 of 37, by LABS

User metadata
Rank Member
Rank
Member
digger wrote:

Most games only output sound at 11025kHz, which would require only half the bandwidth you describe, which would be feasible over an LPT port, possibly even on a 386 machine, even when combined with something like OPL2/OPL3 on the same port, perhaps through some kind of latching mechanism in the parallel port device to allow for multiplexing and thus simultaneous music and digital audio output.

Also, how would you explain the existence of products such as these? https://youtu.be/t7VxWbCgWHk

Very interesting, thanks for the link. Maybe after finishing BlasterBoard I really should think about LPT-based version if there is a demand.
This is an old thread by the way, a new one is: BLASTERBOARD : A new SB 2.0-compatible ISA sound card which I will update soon 🤣

Jo22 wrote:

By the way, I think there's a way to overcome the limits of the LPT port a bit.

Yes, it can transfer faster than documented. 150Kb/s is safe for multitasking I suppose - just found some examples of 1 Mb/s on a regular LPT.

Blasterboard: DIY SB2-compatible sound card on ATmega MCU
Sonic Buster 8: New 8-bit ISA sound card

Reply 29 of 37, by stamasd

User metadata
Rank l33t
Rank
l33t

I'll be following this thread with interest. How close are you to having a functional ISA card with basic SB functionality?

I/O, I/O,
It's off to disk I go,
With a bit and a byte
And a read and a write,
I/O, I/O

Reply 30 of 37, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Don't seems like he linked to the video in this thread.

Nice project BTW.

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 33 of 37, by LABS

User metadata
Rank Member
Rank
Member
stamasd wrote:

Very nice. When can we order it? 😀

It will be available in 2-3 weeks.

s0ren wrote:

Hi! Very cool project!
What does it sound like compared to the old SB2? Does the modern op-amps give less noise?

The noise issue was the challenge of the last month and it was not the old opamp's problem in SBs, but PC power supply noise. Now it is around 1mV peak-to-peak on all power rails and no internal hardware noises anymore in audio path. The card is dead quiet in standby and all 4 mixer inputs (OPL2, DSP, PCSPKR and CD-IN) sound very clean.

Blasterboard: DIY SB2-compatible sound card on ATmega MCU
Sonic Buster 8: New 8-bit ISA sound card

Reply 34 of 37, by keropi

User metadata
Rank l33t++
Rank
l33t++

great news!
does it also support ADPCM for the odd game like Duke Nukem 2?

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

Reply 35 of 37, by LABS

User metadata
Rank Member
Rank
Member
keropi wrote:

great news!
does it also support ADPCM for the odd game like Duke Nukem 2?

Sure it does!)

I will make an open firmware. ATmega is running on 20MHz, so there are resources available for experiments and custom stuff.

Blasterboard: DIY SB2-compatible sound card on ATmega MCU
Sonic Buster 8: New 8-bit ISA sound card

Reply 37 of 37, by digger

User metadata
Rank Oldbie
Rank
Oldbie
LABS wrote:

Very interesting, thanks for the link. Maybe after finishing BlasterBoard I really should think about LPT-based version if there is a demand.

That would be great! 😀 Although it's only reasonable that you focus on one project at a time. 🤣

This is an old thread by the way, a new one is: BLASTERBOARD : A new SB 2.0-compatible ISA sound card which I will update soon 🤣

I'll keep an eye on that thread as well then. 😉