dosbox-staging:jn/esfm

Last commit made on 2024-04-25
Get this branch:
git clone -b jn/esfm https://git.launchpad.net/dosbox-staging

Branch merges

Branch information

Name:
jn/esfm
Repository:
lp:dosbox-staging

Recent commits

2bbf7fc... by John Novak <email address hidden>

Move OPL setting initialisation into `opl.cpp`

1b62c80... by John Novak <email address hidden>

Move Sound Blaster setting initialisation into `sblaster.cpp`

44c20f3... by John Novak <email address hidden>

Get rid of shadowing warnings in `setup.cpp`

a1f7fcf... by John Novak <email address hidden>

Make 'esfm' the only valid OPL mode for 'sbtype = ess'

a51b0c4... by John Novak <email address hidden>

Normalise the casing of `SbInfo`, `SbIrq` and `SbType`

dd9b520... by John Novak <email address hidden>

Rename `OPL` to `Opl`

af23a68... by John Novak <email address hidden>

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>

Add ESS ES1688 AudioDrive emulation (`sbtype = ess`)

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).

Co-authored-by: John Novak <email address hidden>

Imported-from:
https://github.com/joncampbell123/dosbox-x/blob/d5743d42a7a891426062d0025e7e24a6991d1df7/src/hardware/sblaster.cpp

5632e41... by John Novak <email address hidden>

Always render OPL output at the native OPL rate

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.

6859e3e... by John Novak <email address hidden>

Add 'esfm' OPL mode

This is an adaptation of the DOSBox-X code originally authored by
Kagamiin.

Co-authored-by: Kagamiin <email address hidden>

Imported-from:
https://github.com/joncampbell123/dosbox-x/pull/4843
https://github.com/joncampbell123/dosbox-x/pull/4854