Selecting an audio option in DOSBox-X

Overview

DOSBox-X supports the emulation of a wide range of audio output options that were common in the DOS days. This document attempts to help the novice user, especially those that never experienced DOS PC’s during the 80’s and 90’s with selecting an appropriate audio output option for games.

You can set the audio output option to emulate in your DOSBox-X config file. The available audio option can be found in a few sections, such as [pcspeaker], [sblaster], [gus] and [innova].

By default, DOSBox-X just like regular DOSBox on which is it based, enables emulation of a PC Speaker and the Sound Blaster 16.

Note
DOSBox-X does not support microphone and/or line-in for any of the emulated soundcards.

Year Introduced

FM Channels

FM Stereo

FM Sound Chip

DAC

PC Speaker

1981

1

-

-

-

IBM PCjr

1984

3 + Noise

-

TI SN76496

-

Tandy 1000/A/HD/SX/TX/EX/HX

1985

3 + Noise

-

TI SN76489

-

AdLib Music Synthesizer Card

1987

9

-

Yamaha OPL2

-

Creative Music System

1987

2 x 6

Yes

2x Philips SAA1099

-

Covox Speech Thing

1987

-

-

-

8-bit

Tandy 1000SL/TL/RL/RLX/RSX

1988

3 + Noise

-

Tandy PSSJ

8-bit up to 22kHz

Sound Blaster 1.x

1989

9

-

Yamaha OPL2

8-bit up to 22kHz

Innovation SSI-2001

1989

3

-

MOS 6581

-

Disney Sound Source

1990

-

-

-

8-bit, 7kHz

IBM PS/1 Audio Card

1990

3 + Noise

-

TI SN76496

8-bit up to 22kHz

Sound Blaster 2.0

1991

9

-

Yamaha OPL2

8-bit up to 44kHz

Sound Blaster Pro

1991

2 x 9

Yes

2x Yamaha OPL2

8-bit up to 44kHz

Sound Blaster Pro 2

1991

18

Yes

Yamaha OPL3

8-bit up to 44kHz

Sound Blaster 16

1992

18

Yes

Yamaha OPL3

16-bit up to 44kHz

AdLib Gold 1000

1992

18

Yes

Yamaha OPL3

12-bit up to 44kHz

Gravis UltraSound

1992

32

Yes

-

16-bit up to 44kHz

Gravis UltraSound MAX

1994

32

Yes

-

16-bit up to 44kHz

Gravis UltraSound PnP

1995

32

Yes

-

16-bit up to 44kHz

MIDI

Some games support Roland MT-32 and/or General MIDI output. See the Guide: Setting up MIDI in DOSBox-X for instructions.

MIDI was a very expensive option at the time, and therefore rare. It is able to deliver high quality music, but is poorly suited for sound effects and cannot produce voice.

Some early DOS games with MIDI support may only offer you one output option, so you need to choose for instance the Roland MT-32 or AdLib, but not both. Depending on the game, this may mean that you get MIDI background music, but no sound or voice effects if you choose the MT-32. Some games however did try to map all or some of the sound effects to MIDI sounds.

Some later DOS games may offer you separate options for Audio and Music, such that you can have the Sound Blaster for Audio like effects and/or speech, and MIDI for music.

During the early CD-ROM era some games stopped supporting MIDI and replaced the music with CD Audio streamed from the CD during gameplay.

Supported PC audio options

PC Speaker

The PC Speaker was the integrated speaker from the earliest IBM PC’s. It was really only meant for simple beeps, but ended up widely used by PC games as it was the lowest common-denominator for PC sound, despite its very limited capabilities.

It is effectively a single-channel square-wave generator, and with considerable CPU overhead it was possible to get some half-decent sound out of it as demonstrated by RealSound.

Sound quality was heavily dependent on the type of speaker and the placement and PC case it was built into. Originally a dynamic speaker was used, but later model PCs used a tiny piezo speaker instead which further reduced sound quality and volume.

PC Speaker emulation is enabled by default, but can be disabled by setting pcspeaker=false in the [speaker] section of your config file.

The following options are available in the [speaker] section of you config file:

pcspeaker

  • Default value: true

  • Valid values: true, false

Enable or disable the PC speaker emulation.

pcspeaker clock gate enable at startup

  • Default value: false

  • Valid values: true, false

Start system with the clock gate (bit 0 of port 61h) on.

Needed for some games that use the PC speaker for timing on IBM compatible systems.

initial frequency

  • Default value: -1

  • Valid values:

The PC speaker PIT (Programmable Interval Timer) is programmed to this frequency on startup.

If the DOS game or demo causes a long audible beep at startup (leaving the gate open) try setting this option to 0 to silence the PC speaker until reprogrammed by the demo. Set to 0 for some early Abaddon demos including "Torso" and "Cycling".

The default value of -1 causes it to default depending on the machine type:

  • IBM PC defaults to 903Hz

  • PC-98 defaults to 2000Hz

pcrate

  • Default value: 44100

  • Valid values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716

Sample rate, in Hz, at which the PC-Speaker generates sound.

You should set this to the same sample rate as the rate= option in the [mixer] section.

IBM PCjr

The PCjr was introduced by IBM in March 1984, and discontinued due to poor sales just over a year later.

PCjr audio is automatically enabled when you set machine=pcjr in the [dosbox] section of your config file.

Note
Enabling PCjr mode, also enables PCjr video emulation

Tandy 1000

Tandy audio, was introduced with the Tandy 1000 in 1984, which began as a clone of the IBM PCjr.

Tandy audio is automatically enabled when you set machine=tandy in the [dosbox] section of your config file.

Note
Enabling Tandy mode this way, also enables Tandy video emulation

The later Tandy 1000 SL, TL, TLX, RL and RLX models added support for a DAC for digital sample sounds.

Note
The Tandy DAC will be disabled if Sound Blaster emulation is enabled, due to resource conflicts. So to enable the Tandy DAC, you need to set sblaster=none.

The following options are available in the [speaker] section of you config file:

tandy

  • Default value: auto

  • Valid values: auto, on, off

The default auto option means that Tandy sound will be automatically enabled, when using machine=tandy.

It is possible to set tandy=on for non-Tandy machine= settings, but quite a few Tandy compatible games will not offer or allow Tandy sound unless it is detected as a Tandy machine.

tandyrate

  • Default value: 44100

  • Valid values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716

Sample rate, in Hz, at which the Tandy emulation generates sound.

You should set this to the same sample rate as the rate= option in the [mixer] section.

AdLib Music Synthesizer Card

The AdLib Music Synthesizer Card was released by Ad Lib in 1987. It was the first popular sound card for IBM PC’s and compatibles. It was an easy card to clone, resulting in many AdLib compatible sound cards.

AdLib can be emulated with the following config settings:

[sblaster]
sbtype=none
oplmode=opl2

However, the above is normally not needed as the later Sound Blaster cards, such as the sb16 that DOSBox-X by default emulates, are all backward compatible with the AdLib.

Note
Some programs may require the AdLib SOUND.COM TSR to be loaded. See the Sound Driver Pack for details.

CMS / Game Blaster

FM synthesizer card, released by Creative Technology in 1987. Originally named the Creative Music System (CMS), but the year after rebranded as the Game Blaster.

CMS/Game Blaster emulation can be enabled by setting sbtype=gb in the [sblaster] section of your config file.

Note
Some programs may require the Creative CMSDRV.COM TSR to be loaded. See the Sound Driver Pack for details.

IBM PS/1 Audio Card

Optional audio card released in 1990 for IBM PS/1 computers (model 2011 and 2121). Relatively few games support this option, and the FM sounds very much like the PCjr or Tandy 1000, as they all use the same or similar TI sound chips.

The following options related to this card are available in the [speaker] section of you config file:

ps1audio

  • Default value: false

  • Valid values: true, false

Enable or disable IBM PS/1 audio emulation.

ps1audiorate

  • Default value: 22050

  • Valid values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716

Sample rate, in Hz, of the PS1 audio emulation.

You should set this to the same sample rate as the rate= option in the [mixer] section.

Disney Sound Source

Covox introduced the Covox Speech Thing parallel port sound dongle in 1987, while Disney introduced the Disney Sound Source in 1990.

These parallel port devices only provide a DAC at a low frequency for playback of digital samples, and has no FM sound.

DOSBox-X provides emulation for the Disney Sound Source, which is effectively backward compatible with the earlier Covox devices.

The following option is available in the [speaker] section of you config file:

disney

  • Default value: false

  • Valid values: true, false

Enables or disables Disney Sound Source emulation on the parallel port. This feature is backward compatible with the Covox Speech Thing and Covox Voice Master parallel port dongles.

Creative Sound Blaster

Creative Technology created a range of Sound Blaster cards, which quickly became the industry standard for PC sound.

Note
The SB cards are backwards compatible with the AdLib cards. As such the AdLib sound.com TSR works on them, but Creative had to create their own version as they could not distribute the one from AdLib. The Creative TSR is named sb-sound.com, but is not 100% compatible. See the Sound Driver Pack for details.
Note
Some programs may require the Creative SBFMDRV.COM TSR or CT-VOICE.DRV. See the Sound Driver Pack for details.

Sound Blaster 1.x

The Sound Blaster 1.0 was released by Creative Technology in 1989, followed a year later by the cost-reduced Sound Blaster 1.5.

Some key features of the SB 1.x cards

  • Backward compatible with the AdLib

  • Backward compatible with the CMS/Game Blaster (optional for the SB 1.5)

  • 8bit 22kHz DAC for digital samples

Sound Blaster 1.x emulation can be enabled by setting sbtype=sb1 in the [sblaster] section of your config file.

Sound Blaster 2.0

The Sound Blaster 2.0 was released by Creative Technology in October 1991.

Some key features of the SB 2.0

  • Backward compatible with AdLib

  • Optional backward compatibility with CMS/Game Blaster

  • Backward compatible with the Sound Blaster 1.x

  • 8bit 44kHz DAC for digital samples

Sound Blaster 2.0 emulation can be enabled by setting sbtype=sb2 in the [sblaster] section of your config file.

Sound Blaster Pro

The Sound Blaster Pro was released by Creative Technology in May 1991.

Some key features of the SB Pro

  • Backward compatible with the AdLib

  • Backward compatible with the Sound Blaster 1.x

  • Backward compatible with the Sound Blaster 2.0

  • Dual Yamaha OPL2 for stereo FM sound

  • 8bit 44kHz DAC for digital samples

Note
This adapter was retroactively often named the SB Pro 1 or SB Pro 1.0.
Note
Any software making use of the Stereo FM feature will sound wrong if it was coded for the later SB Pro 2 (or vice versa). Therefore, it is important that you select the right SB Pro model in DOSBox-X and in the software setup of the game.

Sound Blaster Pro emulation can be enabled by setting sbtype=sbpro1 in the [sblaster] section of your config file.

Sound Blaster Pro 2

The Sound Blaster Pro 2 was released by Creative Technology in 1991, and quickly replaced the earlier SB Pro.

Some key features of the SB Pro 2

  • Backward compatible with the AdLib

  • Backward compatible with the Sound Blaster 1.x

  • Backward compatible with the Sound Blaster 2.0

  • Single Yamaha OPL3 for stereo FM sound

Note
Any software making use of the Stereo FM feature will sound wrong if it was coded for the original SB Pro (or vice versa). Therefore, it is important that you select the right SB Pro model in DOSBox-X and in the software setup of the game.

Sound Blaster Pro 2 emulation can be enabled by setting sbtype=sbpro2 in the [sblaster] section of your config file.

Sound Blaster 16

The Sound Blaster 16 was released by Creative Technology in June 1992.

Some key features of the SB 16

  • Backward compatible with the AdLib

  • Backward compatible with the Sound Blaster 1.x

  • Backward compatible with the Sound Blaster 2.0

  • Backward compatible with the Sound Blaster Pro 2

  • 16bit 44kHz DAC for digital samples

Sound Blaster 16 emulation is enabled by default, and can be enabled by setting sbtype=sb16 in the [sblaster] section of your config file.

Note
DOSBox-X also provides a sbtype=sb16vibra variation, which emulates the Sound Blaster ViBRA16. There is no advantage for games to use the sb16vibra over the sb16. The only advantage it offers is support for PnP (Plug-and-Play), which is to allow later Windows version like Windows 95 to detect it easier.

[sblaster] config options

sbtype
  • Default value: sb16

  • Valid values: sb1, sb2, sbpro1, sbpro2, sb16, sb16vibra, gb, ess688, reveal_sc400, none

This represents the following variations:

  • sbtype=sb1 - Sound Blaster 1.0 or 1.5

  • sbtype=sb2 - Sound Blaster 2.0

  • sbtype=sbpro1 - Sound Blaster Pro

  • sbtype=sbpro2 - Sound Blaster Pro 2

  • sbtype=sb16 - Sound Blaster 16

  • sbtype=sb16vibra - Sound Blaster ViBRA16

  • sbtype=gb - Creative Music System (CMS) / Game Blaster

  • sbtype=ess688 - ESS688 AudioDrive

  • sbtype=reveal_sc400 - Reveal SC400

sbbase
  • Default value: 220 (or d2 for PC-98)

  • Valid values: 220, 240, 260, 280, 2a0, 2c0, 2e0, d2, d4, d6, d8, da, dc, de

The IO base address of the Sound Blaster.

By default

  • 220h to 2E0h are for use with IBM PC Sound Blaster emulation.

  • D2h to DEh are for use with NEC PC-98 Sound Blaster 16 emulation.

irq
  • Default value: 7

  • Valid values: 7, 5, 3, 9, 10, 11, 12, 0, -1

The IRQ number of the Sound Blaster (usually 5 or 7, depending on the sound card type and the game).

Set to 0 for the default setting of the sound card.

  • For the sb1, sb2 and sbpro1 this implies IRQ7

  • For the sbpro2 and sb16 this implies IRQ5

  • For PC-98 this always implies IRQ5 (as IRQ7 is its cascade interrupt)

Or set to -1 to start DOSBox-X with the IRQ unassigned.

mindma
  • Default value: -1

  • Valid values:

Minimum DMA transfer left to increase attention across DSP blocks, in milliseconds. Set to -1 for default.

There are some DOS games/demos that use single-cycle DSP playback in their music tracker, and they micromanage the DMA transfer per block poorly in a way that causes popping and artefacts. Setting this option to 0 for such DOS applications may reduce audible popping and artefacts.

irq hack
  • Default value: none

  • Valid values: none, cs_equ_ds

Specify a hack related to the Sound Blaster IRQ to avoid crashes in a handful of games and demos. - none Emulate IRQs normally - cs_equ_ds Do not fire IRQ unless two CPU segment registers match: CS == DS.

Read DOSBox-X Wiki or source code for details.

dma
  • Default value: 1

  • Valid values: 1, 5, 0, 3, 6, 7, -1

The DMA number of the Sound Blaster.

Set to -1 to start DOSBox-X with the DMA unassigned

hdma
  • Default value: 5

  • Valid values: 1, 5, 0, 3, 6, 7, -1

The High DMA number of the Sound Blaster.

Set to -1 to start DOSBox-X with the High DMA unassigned

dsp command aliases
  • Default value: true

  • Valid values: true, false

If set (on by default), emulation will support known undocumented aliases of common Sound Blaster DSP commands. Some broken DOS games and demos rely on these aliases. For more information: https://www.vogons.org/viewtopic.php?f=62&t=61098&start=280

pic unmask irq
  • Default value: false

  • Valid values: true, false

Start the DOS virtual machine with the Sound Blaster IRQ already unmasked at the PIC.

Some early DOS games/demos that support Sound Blaster expect the IRQ to fire but make no attempt to unmask the IRQ. If audio cuts out no matter what IRQ you try, then try setting this option.

This option is needed for: - Public NMI "jump" demo (1992)

enable speaker
  • Default value: false

  • Valid values: true, false

Start the DOS virtual machine with the Sound Blaster DSP speaker enabled.

Sound Blaster Pro and older cards have a DSP speaker disable/enable command. Normally the card boots up with the DSP speaker disabled. If a DOS game or demo attempts to play without enabling the speaker, set this option to true to compensate.

This setting has no meaning if emulating a Sound Blaster 16 card, as it is always enabled.

enable asp
  • Default value: false

  • Valid values: true, false

If set, emulate the presence of the Sound Blaster 16 Advanced Sound Processor/Creative Sound Processor chip.

Note
This only emulates its presence and the basic DSP commands to communicate with it. Actual ASP/CSP functions are not yet implemented.
disable filtering
  • Default value: false

  • Valid values: true, false

By default, DOSBox-X filters Sound Blaster output to emulate low-pass filters and analogue output limitations.

Set this option to true to disable filtering. Note that doing so disables emulation of the Sound Blaster Pro output filter and ESS AudioDrive low-pass filter

dsp write buffer status must return 0x7f or 0xff
  • Default value: false

  • Valid values: true, false

If set, force port 22Ch (DSP write buffer status) to return 0x7F or 0xFF.

If not set, the port may return 0x7F or 0xFF depending on what type of Sound Blaster is being emulated. Set this option for some early DOS demos that make that assumption about port 22Ch.

This option is needed for: - Overload by Hysteria (1992) - Audio will crackle/saturate (8-bit overflow) except when sbtype=sb16

pre-set sbpro stereo
  • Default value: false

  • Valid values: true, false

Start the DOS virtual machine with the Sound Blaster Pro stereo bit set (in the mixer).

A few demos support Sound Blaster Pro but forget to set this bit.

This option is needed for: - Inconexia by Iguana (1993)

sbmixer
  • Default value: true

  • Valid values: true, false

Allow the Sound Blaster mixer to modify the DOSBox-X mixer.

Starting with the Sound Blaster Pro, there is a software mixer to change the volume levels and mute certain inputs. This allows software, such as games, to change the volume levels, which may be undesirable.

When this option is set to false, volume level changes will be ignored.

oplmode
  • Default value: auto

  • Valid values: auto, cms, opl2, dualopl2, opl3, opl3gold, none, hardware, hardwaregb

Type of Yamaha OPL emulation.

  • auto = the mode is determined by the sbtype= setting

  • cms = Philips SAA1099 as used in the CMS / Game Blaster (not OPL compatible)

  • opl2 = Yamaha OPL2

  • dualopl2 = Two Yamaha OPL2 chips for stereo, like the SB Pro.

  • opl3 = Yamaha OPL3

  • opl3gold = Yamaha OPL3 as found on the AdLib Gold

  • none = Disable OPL chip emulation

  • hardware = Use a real hardware OPL chip

  • hardwaregb = Use a real hardware Philips SAA1099 (not OPL compatible)

adlib force timer overflow on detect
  • Default value: false

  • Valid values: true, false

If set, AdLib/OPL emulation will signal 'overflow' on timers after 50 I/O reads.

Certain games (e.g., Wolfenstein 3D) poll the AdLib status port a fixed number of times assuming that the poll loop takes long enough for the AdLib timer to run out. If the game cannot reliably detect AdLib at higher cycles counts, but can reliably detect at lower cycles counts, set this option.

oplemu
  • Default value: default

  • Valid values: default, compat, fast, nuked, mame, opl2board, opl3duoboard, retrowave_opl3

Provider for the OPL emulation. - 'compat' might provide better quality. - 'nuked' is the most accurate (but the most CPU-intensive).

See oplrate as well.

oplrate
  • Default value: 44100

  • Valid values: 44100, 49716, 48000, 32000, 22050, 16000, 11025, 8000

Sample rate in Hz of OPL music emulation. Use 49716 for highest quality (set the mixer rate accordingly).

You should set this to the same sample rate as the rate= option in the [mixer] section.

oplport
  • Default value: <blank>

  • Valid values:

Serial port of the OPL2 Audio Board when oplemu=opl2board, opl2mode will become 'opl2' automatically.

retrowave_bus
  • Default value: serial

  • Valid values: serial, spi

Bus to which the Retrowave series board is connected. SPI is only supported on Linux.

retrowave_spi_cs
  • Default value: 0,6

  • Valid values:

SPI chip select pin of the Retrowave series board. Only supported on Linux.

retrowave_port
  • Default value: <blank>

  • Valid values:

Serial port of the Retrowave series board

hardwarebase
  • Default value: 220

  • Valid values: 210, 220, 230, 240, 250, 260, 280

Base IO address of the real hardware Sound Blaster.

For use with oplmode=hardware or oplmode=hardwaregb

force dsp auto-init
  • Default value: false

  • Valid values: true, false

Treat all single-cycle DSP commands as auto-init to keep playback going.

This option is a workaround for DOS games or demos that use single-cycle DSP playback commands and have problems with missing the Sound Blaster IRQ under load. Do not enable unless you need this workaround.

Needed for: - Extreme "lunatic" demo (1993)

force goldplay
  • Default value: false

  • Valid values: true, false

Always render Sound Blaster output sample-at-a-time. Testing option. You probably don’t want to enable this.

goldplay
  • Default value: true

  • Valid values: true, false

Enable goldplay emulation. See Libraries:Goldplay for details.

goldplay stereo
  • Default value: true

  • Valid values: true, false

Enable workaround for goldplay stereo playback.

Many DOS demos using this technique don’t seem to know they need to double the frequency when programming the DSP time constant for Pro stereo output.

If stereo playback seems to have artefacts consider enabling this option. For accurate emulation of Sound Blaster hardware, disable this option.

dsp require interrupt acknowledge
  • Default value: auto

  • Valid values: auto, true, false

    • If true, the DSP will halt DMA playback until IRQ acknowledgement occurs even in auto-init mode (SB16 behaviour).

    • If false, IRQ acknowledgement will have no effect on auto-init playback (SB Pro and earlier & SB clone behaviour)

    • If set to 'auto' then behaviour is determined by the sbtype= setting.

This is a setting for hardware accuracy in emulation. If audio briefly plays then stops, and it’s not using IRQ (but using DMA), try setting this option to 'false'

dsp write busy delay
  • Default value: -1

  • Valid values:

Amount of time in nanoseconds the DSP chip signals 'busy' after writing to the DSP (port 2xCh).

Set to -1 to use card-specific defaults.

Warning
Setting the value too high (above 20000ns) may have detrimental effects to DOS games that use IRQ 0 and DSP command 0x10 to play audio. Setting the value way too high (above 1000000ns) can cause significant lag in DOS games.
blaster environment variable
  • Default value: true

  • Valid values: true, false

Determines if the BLASTER environment variable is automatically set at startup.

sample rate limits
  • Default value: true

  • Valid values: true, false

If true, limit DSP sample rate to what real hardware is limited to.

instant direct dac
  • Default value: false

  • Valid values: true, false

If true, direct DAC output commands are instantaneous.

This option is intended as a quick fix for games or demos that play direct DAC music/sound from the IRQ 0 timer who either - write the DSP command and data without polling the DSP to ensure it’s ready - can get locked into the IRQ 0 handler waiting for DSP status when instructed to play at or beyond the DSP’s maximum direct DAC sample rate.

This fix allows broken Sound Blaster code to work and should not be enabled unless necessary.

stereo control with sbpro only
  • Default value: true

  • Valid values: true, false

If true, Sound Blaster Pro stereo is not available when emulating sb16 or sb16vibra.

If false, sb16 emulation will honour the sbpro stereo bit.

Note that Creative SB16 cards do not honour the stereo bit, and this option allows DOSBox-X emulate that fact. Accuracy setting.

dsp busy cycle rate
  • Default value: -1

  • Valid values:

Sound Blaster 16 DSP chips appear to go busy periodically at some high clock rate whether the DSP is actually doing anything for the system or not. This is an accuracy option for Sound Blaster emulation.

If this option is nonzero, it will be interpreted as the busy cycle rate in Hz. If zero, busy cycle will not be emulated. If -1, Sound blaster emulation will automatically choose a setting based on the sbtype= setting

dsp busy cycle always
  • Default value: -1

  • Valid values:

If set, the DSP busy cycle always happens. If clear, DSP busy cycle only happens when audio playback is running. Default setting is to pick according to the sound card.

dsp busy cycle duty
  • Default value: -1

  • Valid values: -1, 0-100

If emulating SB16 busy cycle, this value (0 to 100) controls the duty cycle of the busy cycle.

If this option is set to -1, Sound Blaster emulation will choose a value automatically according to sbtype=. If 0, busy cycle emulation is disabled.

io port aliasing
  • Default value: true

  • Valid values: true, false

If true, Sound Blaster ports alias by not decoding the LSB (Least Significant Bits) of the I/O port.

This option only applies when sbtype= is set to sb1 or sb2 (not SBPro or SB16).

This is a hack for the Electromotive Force 'Internal Damage' demo which apparently relies on this behaviour for Sound Blaster output and should be enabled for accuracy in emulation.

AdLib Gold 1000

The AdLib Gold 1000 was released in 1992. It is backward compatible with the earlier AdLib Music Synthesizer Card, but not with the Sound Blaster cards.

This card is only partly emulated, for instance no DAC emulation, by using the following config settings:

[sblaster]
sbtype=none
oplmode=opl3gold

It will work with some games in this mode, such as Dune 2.

Note
AdLib Gold 1000 emulation is experimental, it is not meant for regular use.

ESS688 AudioDrive

Introduced in 1996 by Electronic Speech Systems (ESS). This chip was used by a range of sound cards from different manufacturers, and integrated into systemboards and notebooks.

It provides backward compatibility with:

  • AdLib

  • Sound Blaster 1.x

  • Sound Blaster Pro 2

  • Windows Sound System

Note
ESS688 emulation is experimental, it is not meant for regular use.

Reveal SC400

According to DOS Days, the Reveal SC400 is an OEM version of the Aztech Nova 16, which was released in 1994. It was also offered by Packard Bell as the Forte 16SBP.

It provides backward compatibility with:

  • AdLib

  • Sound Blaster 2.0

  • Sound Blaster Pro 2

  • Windows Sound System

Note
Reveal SC400 emulation is experimental, it is not meant for regular use.

Gravis UltraSound

The Gravis UltraSound (aka GUS) was released in 1992 by Advanced Gravis Computer Technology.

It was one of the first to introduce 16bit 44.1kHz stereo, a hardware mixer, and featured MIDI playback capability. It was a popular sound card in certain circles, such as the demo scene, but never gained much traction with game developers.

The downside is that it offered no hardware compatibility with other sound cards. It did ship with a TSR (SBOS) that needed to be loaded into memory to provide AdLib or Sound Blaster emulation, but this caused many issues.

In practice, you only want to use this option, if the GUS is specifically supported by the software.

Configuring the GUS is more complex than other soundcards, as quite a few software titles that supports the GUS require that you have a configured "ULTRASND" directory setup with the necessary files in it. By default, this directory is expected to be located at C:\ULTRASND within DOSBox-X.

One way is to install the Gravis UltraSound driver disks inside DOSBox-X, another is to find a configured ULTRASND folder online that you can simply unpack to the root of your virtual C: drive.

[gus] config options

gus
  • Default value: false

  • Valid values: true, false

Enable the Gravis Ultrasound emulation.

autoamp
  • Default value: false

  • Valid values: true, false

If true, GF1 output will reduce in volume automatically if the sum of all channels exceeds full volume.

If false, then loud music will clip to full volume just as it would on real hardware.

Enable this option for loud music if you want a more pleasing rendition without saturation and distortion.

umask dma
  • Default value: false

  • Valid values: true, false

Start the DOS virtual machine with the DMA channel already unmasked at the controller. Use this for DOS applications that expect to operate the GUS but forget to unmask the DMA channel.

ignore channel count while active
  • Default value: false

  • Valid values: true, false

Ignore writes to the active channel count register when the DAC is enabled (bit 1 of GUS reset). This is a HACK for demoscene prod 'Ice Fever' without which the music sounds wrong. According to current testing real hardware does not behave this way.

pic unmask irq
  • Default value: false

  • Valid values: true, false

Start the DOS virtual machine with the GUS IRQ already unmasked at the PIC.

startup initialized
  • Default value: false

  • Valid values: true, false

If true, start the GF1 in a fully initialized state (as if ULTRINIT had been run). If false, leave the card in an uninitialized state (as if cold boot).

Some DOS games or demoscene productions will hang or fail to use the UltraSound hardware because they assume the card is initialized and their hardware detect does not fully initialize the card.

dma enable on dma control polling
  • Default value: false

  • Valid values: true, false

If true, automatically enable the GUS DMA transfer bit in specific cases when the DMA control register is being polled. THIS IS A HACK. Some games and demoscene productions need this hack to avoid hanging while uploading sample data to the Gravis UltraSound due to bugs in their implementation.

clear dma tc irq if excess polling
  • Default value: false

  • Valid values: true, false

If the DOS application is seen polling the IRQ status register rapidly, automatically clear the DMA TC IRQ status.

This is a hack that should only be used with DOS applications that need it to avoid bugs in their GUS support code.

Needed for:

  • Warcraft II by Blizzard

    • If using GUS for music and sound, set this option to prevent the game from hanging when you click on the buttons in the main menu.

force master irq enable
  • Default value: false

  • Valid values: true, false

Set this option if a DOS game or demo initializes the GUS but is unable to play any music. Usually the cause is buggy GUS support that resets the GUS but fails to set the Master IRQ enable bit.

gus panning table
  • Default value: default

  • Valid values: old, accurate, default

Controls which table or equation is used for the Gravis UltraSound panning emulation. Accurate emulation attempts to better reflect how the actual hardware handles panning, while the old emulation uses a simpler idealistic mapping.

gusrate
  • Default value: 44100

  • Valid values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716

Sample rate, in Hz, of the UltraSound emulation.

You should set this to the same sample rate as the rate= option in the [mixer] section.

gus fixed render rate
  • Default value: false

  • Valid values: true, false

If true, Gravis Ultrasound audio output is rendered at a fixed sample rate specified by 'gusrate'. This can provide better quality than real hardware, if desired.

Else, Gravis UltraSound emulation will change the sample rate of it’s output according to the number of active channels, just like real hardware.

Note
DOSBox-X defaults to 'false', while mainline DOSBox SVN is currently hardcoded to render as if this setting is 'true'.
gusmemsize
  • Default value: -1

  • Valid values: -1, 256, 512, 1024

Amount of RAM on the Gravis UltraSound in KiB. Set to -1 for default, which will be 1024KiB.

gus master volume
  • Default value: 0.00

  • Valid values:

Master Gravis UltraSound GF1 volume, in decibels. Reducing the master volume can help with games or demoscene productions where the music is too loud and clipping.

gusbase
  • Default value: 240

  • Valid values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300, 210, 230, 250

The base IO address of the Gravis UltraSound.

gusirq
  • Default value: 5

  • Valid values: 5, 3, 7, 9, 10, 11, 12

The IRQ number of the Gravis UltraSound.

gusdma
  • Default value: 3

  • Valid values: 3, 0, 1, 5, 6, 7

The DMA channel of the Gravis UltraSound.

irq hack
  • Default value: none

  • Valid values: none, cs_equ_ds

Specify a hack related to the Gravis UltraSound IRQ to avoid crashes in a handful of games and demos.

  • none = Emulate IRQs normally

  • cs_equ_ds = Do not fire IRQ unless two CPU segment registers match: CS == DS.

Read DOSBox-X Wiki or source code for details.

gustype
  • Default value: classic

  • Valid values: classic, classic37, max, interwave

Type of Gravis UltraSound to emulate.

  • gustype=classic - Original Gravis UltraSound chipset

  • gustype=classic37 - Original Gravis UltraSound with ICS Mixer (rev 3.7)

  • gustype=max - Gravis UltraSound MAX emulation (with CS4231 codec)

  • gustype=interwave - Gravis UltraSound Plug & Play (Interwave)

Note
MAX and Interwave emulation is experimental, and meant for developers only. The MAX emulation is mostly complete, except for missing support for the WSS codec chip.
ultradir
  • Default value: C:\ULTRASND

  • Valid values:

Path to UltraSound directory, from within DOSBox-X.

In this directory there should be a MIDI directory that contains the patch files for GUS playback. Patch sets as used with Timidity should work fine.

Innovation SSI-2001

Released in April 1989 by Innovation Computer Corporation, utilizing the MOS 6581 (aka SID) chip, as found in the Commodore 64.

Very few games support this sound option.

[innova] config options

innova
  • Default value: false

  • Valid values: true, false

Enable the Innovation SSI-2001 emulation.

samplerate
  • Default value: 22050

  • Valid values: 44100, 48000, 32000, 22050, 16000, 11025, 8000, 49716

Sample rate in Hz of the Innovation SSI-2001 emulation.

You should set this to the same sample rate as the rate= option in the [mixer] section.

sidbase
  • Default value: 280

  • Valid values: 240, 220, 260, 280, 2a0, 2c0, 2e0, 300

Base IO address of the Innovation SSI-2001 emulation.

quality
  • Default value: 0

  • Valid values: 0, 1, 2, 3

Set SID emulation quality level