Skip to content

AdLib (OPL)¶

This page covers the AdLib Music Synthesizer Card, the AdLib Gold 1000, and the OPL3-compatible ESS Enhanced FM (ESFM) synthesiser — all FM synthesisers built around Yamaha’s OPL chip family or compatible designs. Because the OPL chip also appeared on every DOS-era Sound Blaster, their settings live the shared [sblaster] configuration section alongside the Sound Blaster’s own. DOSBox Staging uses the cycle-accurate Nuked OPL3 emulator for effectively bit-identical OPL output.

DOS games typically split their audio into two streams handled by different hardware: synthesised music (notes played by a chip like OPL) and digital sound (pre-recorded samples used for speech and sound effects). Most DOS games split audio across two devices: an AdLib-family card for music (covered here) and a Sound Blaster for speech and sound effects.

AdLib Music Synthesizer Card¶

The AdLib Music Synthesizer Card (typically simply referred to as AdLib) was released by Ad Lib in 1987. It was the first popular sound card for IBM PC compatibles, capable of producing multichannel music and sound effects via its Yamaha OPL2 synthesizer chip.

Being such a huge step up from the PC speaker, the AdLib took the market by storm. As it quickly became a de facto standard, many competing sound card manufacturers started including full AdLib compatibility on their cards. The result of this is that virtually all DOS games from 1990 onwards support the AdLib, at least as a fallback option.

Digital audio is not supported on the card, but some games were able to approximate it with clever programming tricks (e.g., F-15 Strike Eagle II by MicroProse).

Use the following settings to emulate the original standalone AdLib Music Synthesizer Card:

[sblaster]
sbtype = none
oplmode = opl2

Only very old 80s games will need a standalone AdLib card. More recent games generally need a Sound Blaster which comes with a built-in AdLib (OPL) synthesizer. See Sound Blaster models for details.

Note

When oplmode is set to opl2, CMS emulation is always enabled as well. This is legacy DOSBox behaviour, and will be addressed in a future version.

AdLib Gold 1000¶

The AdLib Gold 1000 was released in 1992. It has a Yamaha OPL3 chip and a stereo audio processor on-board, and it also supports 12-bit digital audio. An optional surround module was available to add further spatial effects to the OPL output (e.g., chorus and reverb).

DOSBox Staging fully emulates the card, including the surround module, except for its digital audio capabilities.

Very few games have direct support for the AdLib Gold 1000, and no known game makes use of its digital audio features. The single game in existence that really takes advantage of the AdLib Gold and its surround module is the adventure game Dune from 1992.

Use the following settings to enable AdLib Gold 1000 emulation. Typically, you would use the card together with a Sound Blaster for digital audio. The setup utility of Dune should auto-detect AdLib Gold and the surround module correctly with these settings:

[sblaster]
sbtype = sb16
oplmode = opl3gold

ESS Enhanced FM Audio (ESFM)¶

ESFM is the OPL3-compatible FM synthesiser found on later ESS AudioDrive cards. In “legacy mode”, ESFM is fully compatible with the Yamaha OPL3 and yields almost identical output on most materials. What sets it apart is its “native mode”, which offers advanced synthesis features surpassing the OPL3’s capabilities — it bridges the gap between synthetic-sounding OPL music and sample-based MIDI music.

Since ESFM was released in 1995, just a few years before the end of the DOS era, only a handful of games support native mode, butn in the few that do, the results often sound spectacular.

  • To run ESFM in legacy mode, use oplmode = esfm with any Sound Blaster model and configure the game for Sound Blaster and AdLib/OPL as usual. There’s usually not much to be gained from this, the output will generally sound identical to OPL2.

  • To use native mode, set sbtype = ess and configure the ESS Technology ES1688, ES1788, ES1888 Enhanced FM Audio MIDI music driver in the game’s setup utility (most games that support ESFM natively use the Miles Sound System). For the digital audio driver, select the Sound Blaster Pro option (ESS AudioDrive cards are Sound Blaster Pro compatible).

[sblaster]
sbtype = ess
Games with ESFM support

Tip

You can also try to “retrofit” the ESFM.MID driver from Miles Sound System games that have it into earlier ones that don’t. For example, Discworld sounds great with the ESFM driver from Heaven’s Dawn.

Audio artifact mitigation¶

Real OPL hardware exhibited certain audio quirks — hanging notes and DC bias in particular — that were simply part of the experience at the time. DOSBox Staging faithfully emulates these behaviours, but also provides settings to mitigate them when strict authenticity is less important than an improved listening experience. These settings are best applied on a per-game basis.

Some games don’t properly send note-off commands to the OPL FM synthesiser, resulting in notes that play forever. The opl_fadeout setting monitors OPL port activity and fades out any remaining sound after the game stops writing to the chip. Known affected games include The Bard’s Tale. The fade preset waits 500 ms then fades over 500 ms; custom timing can be specified as two values in milliseconds.

A small number of games play PCM (sampled) audio through the OPL synthesiser via clever programming tricks rather than using it for FM synthesis. This can cause clicking and popping due to DC bias in the output — the opl_remove_dc_bias setting removes this bias. Only enable it for known affected games: Golden Eagle, Wizardry 6, and Wizardry 7.

For Sound Blaster startup-pop mitigation, see Sound Blaster.

Mixer channel¶

The AdLib (OPL) synthesizer and its variants all output to the OPL mixer channel.

Configuration settings¶

The AdLib settings are configured in the [sblaster] section. The related Sound Blaster digital-audio settings are covered on the Sound Blaster page.

OPL¶

Note

Some games trigger low-level residual noise from the OPL synth in quiet passages. The Denoiser removes this without degrading sound quality.

opl_fadeout¶

Fade out hanging notes on the OPL synth.

Possible values:

  • off default – Don’t fade out hanging notes.
  • fade – Fade out hanging notes. You should only enable this in games that sometimes play hanging notes that never stop (e.g., Bard’s Tale).
  • <custom> – A custom fade-out definition in the following format: WAIT FADE, where WAIT is how long after the last I/O port write fading begins (between 100 and 5000 milliseconds), and FADE is the fade-out period (between 10 and 3000 milliseconds). Examples:
    • 300 200 (wait 300 ms before fading out over a 200 ms period)
    • 1000 3000 (wait 1 second before fading out over 3 seconds)
opl_filter¶

Filter settings for the OPL output:

  • auto default – Use the appropriate filter determined by the sbtype setting.
  • sb1, sb2, sbpro1, sbpro2, sb16 – Use the OPL filter of this Sound Blaster model.
  • off – Don’t filter the OPL output.
  • <custom> – Custom filter definition; see Custom filter settings for details.

These are the model specific low-pass filter settings for OPL output:

sbtype Filter type Cutoff frequency
sb1
sb2
1st order (6dB/oct) 12kHz
sbpro1
sbpro2
1st order (6dB/oct) 8kHz
sb16 no filter N/A
opl_remove_dc_bias¶

Remove DC bias from the OPL output.

Possible values: on, off default

Some games play digitised music and sound effects using the OPL (AdLib) channels by rapidly changing the volume in very crude steps, similar to how the Disney Sound Source and Covox LPT DAC operate. This can produce annoying pops. Enable this setting to eliminate them.

Known affected games: Golden Eagle (1991), Wizardry VI: Bane of the Cosmic Forge (1990), Wizardry VII (1992).

Recommended settings for Wizardry VI when configured for AdLib sound:

[sblaster]
sbtype = none
oplmode = opl2
opl_remove_dc_bias = true
opl_filter = lpf 2 5500

[speaker]
pcspeaker = off

[autoexec]
mixer opl 500
oplmode¶

OPL mode to emulate.

DOSBox Staging uses the highly accurate NukedOPL library to achieve a nearly bit-perfect emulation of the Yamaha OPL chips.

Possible values:

  • auto default – Use the appropriate model determined by sbtype.

  • opl2 – Yamaha OPL2 (YM3812, mono).

  • dualopl2 – Dual OPL2 (two OPL2 chips in stereo configuration).

  • opl3 – Yamaha OPL3 (YMF262, stereo).

  • opl3gold – OPL3 and the optional AdLib Gold Surround module. Use with sbtype = sb16 to emulate the AdLib Gold 1000.

  • esfm – ESS ESFM (enhanced Yamaha OPL3 compatible FM synth).

  • none/off – Disable OPL emulation.

Note

  • sbtype = none and oplmode = opl2 emulates the original AdLib card.

  • Only oplmode = esfm is not enough to get ESS Enhanced FM music in games; you’ll also need to set sbtype = ess. oplmode = esfm is useful to get ESFM-flavoured OPL with original Sound Blaster models.