Strip down the ESS implementation to the bare minimum
We only need the parts required for the ESS auto-detection and
initialisation routines to work in games, but we don't care about
supporting "native mode" DAC playback.
6f65e35...
by
Jonathan Campbell <email address hidden>
This is an adaptation of the DOSBox-X ESS code originally authored by
Jonathan Campbell.
Only the bare minimum required for the ESS auto-detection routines to
work has been implemented. The ESS ES1688 emulation is supposed to be
used for Enhanced FM Music only; for digital audio, use the Sound
Blaster Pro option in the game's setup.
In general, there's not much to be gained from emulating the ESS DAC.
The ESS cards can operate in Sound Blaster Pro compatibility mode for
digital sound and the sound is identical to that of the SB Pro, except
for perhaps the different sounding low-pass filter (which can be
emulated with custom `sb_filter` settings).
Also enable the Speex resampler for the OPL channel. Previously, we
rendered the OPL output directly at the mixer rate (host rate), but
ESFMu can only render at the native 49,716 Hz OPL rate.
Because the default resampler is the linear interpolation upsampler that
cannot downsample, this would cause the audio to play somewhat slower at
48 and 44.1 kHz sample rates, and at half-speed (!) at 22 kHz.