Difference between revisions of "Sound"
m (Protected "Sound" [edit=autoconfirmed:move=autoconfirmed])
Revision as of 07:01, 27 June 2009
DOSBox is capable of emulating several sound devices. By emulating the hardware the user can utilize whatever audio device they have installed in their PC, while the DOS Game or Application believes it is running on the emulated hardware.
Sound was sometimes difficult to set up in the DOS era. Unlike Windows, DOS did not keep a list of the system's sound devices, nor did it expose generic drivers for them. Software had to include separate support for each sound device it wanted to give the users the option of using. If a game did not support a user's audio hardware, no sound was possible. And the game had to be configured with the memory addresses of the hardware by hand. Also, different devices supported different features, resulting in games that could sound very different (maybe high-quality music on one card, but voice-acting on another) depending on the hardware available. Thankfully, DOSBox can emulate all the most popular sound systems of the DOS era, so one can usually find something that sounds good.
Most of the sound devices are capable of existing inside the same computer at the same time, so when configuring DOSBox sound you need to think of them as separate devices that can be enabled or disabled. Sound devices that are not in use do not use many resources, so you don't gain much in the way of performance by reducing the number of sound devices enabled. A game will likely only use a single device at a time anyway. (The one notable exception being routing music and sound effects through different devices, which was common for people with both a Sound Blaster and a separate MIDI device.) DOSBox also makes sure the appropriate environment variables are defined for each device, so game audio device auto-detection usually works, if the game attempts it.
DOSBox's output to your real computer's sound system is configured under the mixer category. Each emulatable device has its own configuration section. Note that almost all sound devices have a configuration setting to enable or disable them, as well as one for the sample rate of the emulation. The sample rate of a device must never exceed the rate setting under the mixer heading, as this will cause undefined behavior.
DOSBox can emulate the following devices. Although the sound quality you will get depends heavily on your configuration and what the software you are running supports, they are listed here in roughly ascending order of audio processing power.
The most ubiquitous audio device of all time. Built into every personal computer to this very day, the PC Speaker acts as diagnostic device during the initial booting up of a computer. (to inform the user, in a series of beeps, if there is any low level hardware issue) Early game developers utilized the PC Speaker to generate music and sound effects - to good effect. Later, some developers invented ways to generate complex audio through the PC Speaker, even reproducing voice. Very few games utilized the PC Speaker in this way, as the CPU requirements were high and the quality was severely limited. However, a Windows driver was written that allowed Windows games to utilize the PC Speaker in this manner, which was useful if the user had no other sound device.
The PC Speaker is configured under the speaker category. There are no special options to configure for the PC Speaker. If enabled, it just does what it does.
Tandy 1000 Speaker
The Tandy 1000 was based on the IBM PCjr and like the PCjr it included not only the standard PC speaker but also the TI-SN76496 sound chip which provided three square wave tone generators and one white noise generator. This made for much higher quality sound effects and music than the standard PC Speaker. The Tandy 1000 TL and SL added an 8-bit DAC for realistic sound effects.
The Tandy 1000 Speaker is configured under the speaker category. The setting for controlling whether Tandy emulation is enabled is worth mentioning. It can be set to on or off, but it can also be set to auto, in which case it will be turned on if the system type (near the top of the configuration file) is set to tandy and off otherwise.
Some people have reported needing to turn on Sound Blaster emulation in order to support the Tandy 1000 TL/SL DAC.
Disney Sound Source
The Disney Sound Source was an external audio device that connected to a PC via a Parallel Port, also known as the Printer Port. An enhanced version of the Covox Speech Accelerator with "Mickey Mouse" ears on top, the device was surprisingly capable of producing polyphonic audio and voice. The sound quality is distinctive and tinny, though by no means high quality. One notable game that supported the device was Sierra's King's Quest 6 which managed to provide an audio experience similar to the Sound Blaster audio card.
The Disney Sound Source became popular due to its brand name and ease of configuration: There are no Base Address, IRQ, or DMA settings because it connects to any available Parallel Port. However, applications that utilize a printer might lock up if they try to talk to this device by mistake, so if you are having parallel port trouble and are not using this device for audio, you may want to consider disabling it.
A Windows driver exists (as with the PC Speaker) that can let the device work as an audio device in Windows 3.11.
The Disney Sound System is configured under the speaker category. As mentioned before, it has no special configuration. (And does not even have a rate setting.)
The Sound Blaster is widely considered the most popular audio device standard. In the DOS era of games, it came in several editions. In most cases sb16 is the best option for DOSBox, though many older games that were produced before the SB16 was manufactured might have some issues with working with the otherwise backwards-compatible device. Here is a list of the different capabilities of the various Sound Blaster cards.
|Device||Name||Bits||Top Sample Rate||Stereo||Synthesizer|
|none||Sound Blaster Emulation disabled||n/a||n/a||n/a||n/a|
|sb1||Sound Blaster 1.0||8||22 KHz||No||CMS / OPL-2|
|sb2||Sound Blaster 2.0||8||44.1 KHz||No||OPL-2|
|sbpro1||Sound Blaster Pro 1.0||8||44.1 KHz||Yes||Dual OPL-2|
|sbpro2||Sound Blaster Pro 2.0||8||44.1 KHz||Yes||OPL-3|
|sb16||Sound Blaster 16||16||44.1 KHz||Yes||OPL-3|
Due to its advanced features, competitive price point, and backwards-compatibility with AdLib cards, Soundblaster became considered the "standard" for special effects reproduction in many applications and games. (Sadly, once they drove all the competition out of business, the "competitive price point" went away.) Although they have internal synthesizers, Sound Blaster cards are not MPU-401 compatible, and were therefore often coupled with a MIDI card for enhanced music emulation.
The Sound Blaster is configured under the sblaster category. There are several options for configuring this device, which are explained in the comments in that category.
DOSBox does not emulate the AdLib Music Synthesizer Card directly. However, it does emulate Sound Blaster cards that feature AdLib support in their synthesizers.
The AdLib/synthesizer support of the Sound Blaster is configured separately from the rest of the card, with the oplmode and oplrate settings. The OPL Mode controls what synthesizer is emulated. The following settings are available:
|Device||Name||Number of Channels||Stereo||Notes|
|auto||Auto-Select Synthesizer||n/a||n/a||This will pick whichever synthesizer was actually present on the model of Sound Blaster you are trying to emulate. Note that it will always pick AdLib-compatible settings, never cms.|
|cms||Creative Music System / GameBlaster||6||Yes||Supported stereo, but fewer channels than AdLib cards. Never gained popularity due to its poor audio quality. Note that turning this on in DOSBox will disable AdLib support, as CMS is the one option that is not AdLib-compatible.|
|opl2||AdLib / OPL-2 / Yamaha 3812||9||No||The gold standard of PC synthesis for many years.|
|dualopl2||Dual OPL-2||9||Yes||The Sound Blaster Pro 1.0 used two OPL-2s in tandem to support stereo sound.|
|opl3||AdLib Gold / OPL-3 / Yamaha YMF262||18||Yes||Became the new gold standard after AdLib. Supported by the ubiquitous Sound Blaster 16.|
The Gravis Ultrasound was an advanced synthesizer released by an unlikely manufacturer: Canadian joystick company Advanced Gravis. Its audio was far ahead of any other consumer device of the time, supporting wave-table synthesis, stereo sound, 14-channel playback at 44.1 KHz or a whopping 32 channels of playback at 19.2 KHz.
However, the Ultrasound eschewed any attempt at backwards-compatibility with AdLib or Soundblaster cards. Programs had to be written to specifically take advantage of its capabilities. Many DOS users kept a Sound Blaster in their PC in addition to an Ultrasound, in case they needed to run a program that did not support the more advanced card. (And in DOSBox, this can be imitated by turning on both devices in your configuration file, which is recommended.)
One quirk of the Ultrasound is that, unlike most synthesizers, it did not come with any voices pre-installed on the card. All voices had to be installed from disk either at driver load time or by the application. Because of this, a set of drivers and "patch files" is needed in order to use the Ultrasound in DOSBox. Due to incompatibilities between the license of the patch files and DOSBox's GPL license, these files cannot be distributed with DOSBox, so you will need to download them from another website:
HuggyBaby's Ready-To-Use DOSBox Ultrasound Folders (featuring the original GUS 4.11 set and the enhanced Pro Patches Lite 1.61 set)
GUS Install Disk Set Version 4.11
More sites with patch files can be found on the Gravis Ultrasound page on Wikipedia. The patch files must be unzipped to a folder that can be accessed from DOSBox's command line. It is common practice to put these in a folder called "ULTRASND" under whatever folder you will mount as your C: drive.
The Gravis Ultrasound is configured under the gus category. It has several options, which are explained in the comments in the configuration file. Of particular note is the ultradir option, which must be set to the path to the patch files inside DOSBox. (Which is likely not the same as the path on your real hard drive.)
If you have a folder called "Games" on your C: drive that you mount as X: in DOSBox, and then you install the patch files to C:\Games\ULTRASND\, the config entry will be
General MIDI (MPU-401)
General MIDI isn't a specific piece of hardware so much as a standard that has been supported by various sound cards (and other devices such as mixers, instruments, lighting control panels, etc...) throughout computing history. DOSBox is able to emulate MIDI in either regular or uart modes.
Since MIDI support is still common on computers, DOSBox passes MIDI data along to any MIDI synthesizer installed on your system rather than trying to emulate a particular device. General MIDI in DOSBox sounds exactly like any other program on your host computer that plays MIDI files because it is generating its output through the same device. You can think of the General MIDI as more a pass-though interface than a piece of emulated hardware.
General MIDI is configured under the midi category. There are several options, which are explained briefly in the comments in the configuration file and at greater length in the README file. Owners of Yamaha MIDI Synthesizers and other external synthesizers may find this guide useful.
The Roland synthesizers, particularly the MT-32, are worth mentioning separately. Many DOS games included separate support for the MT-32 (or the MT-100, LAPC-I, CM-32L, or CM-64) in addition to basic General MIDI support. People who have a real Roland MT-32 or a software synthesizer that emulates one can take advantage of this support. Since DOSBox only passes along MIDI data to your synthesizer without looking at it, simply route DOSBox's General MIDI to your Roland and configure your DOS software to use Roland mode.
A Roland MT-32 can be connected to the PC using a USB to MIDI adapter. The MT-32 output can be connected to the line-in on a sound card. Dosbox can be configured to use the MT-32 for music when it is connected this way. At the Dosbox command prompt, type mixer /listmidi to get a list of the midi devices attached to the machine. Locate the USB midi adapter in the list and note the number that it is associated with. Under the [midi] section of the dosbox configuration file, change config= to config=[number of USB midi device]. (e.g. config=0) Once that is done, the MT-32 should operate.
- A comprehensive overview of DOS-era sound systems and DOSBox's support (or lack thereof) for them: http://ipggi.wordpress.com/2008/04/26/dosbox-sound-emulation/