First post, by James-F
- Rank
- Oldbie
Lets start by saying that nothing is wrong with the compatibility of the SB in dosbox, what wrong is how it sounds in comparison to a real SB.
We all know that the Sound Blaster has a Lowpass Filter at the frequency of playback, well at least SBPro and SB16.
I have captured the frequency response of a SB16 card and DOSBox on SB16 setting.
The SB16 has a very steep Sinc "brickwall" lowpass filter at the played back frequency which also eliminates aliasing with low sampling rates (most games).
A proper lowpass filter is not only there to sound good but is essential to eliminate aliasing artifacts according to nyquist theorem.
I know that dosbox already implements a dynamic lowpass filter of the SB16 which moves with the frequency but it is of the wrong order, it looks like a typical first-order LPF which sounds nothing like the SBPro or the SB16.
As you can see DOSBox does it absolutely wrong and it sounds like so.
I would like to suggest and help to put some collective effort in improving this aspect of dosbox because sound is one of the most important aspects of gaming and nostalgic value.
The proper filter is called Sinc filter or "brick-wall" filter and the equations for it are readily available everywhere including wikipedia.
I can try to implement it myself if I knew where the LPF section in the source code is, it is not in sblaster.cpp from what I see.
Anyone interested?