Summary:
Real ISA Sound Blaster cards don't need any drivers to initialise or support them. Later PNP Sound Blasters (SB16/AWE) and clones may need a driver that performs one-time initialisation. Exotic cards may need memory-resident translation layers.
Games use a collection of per-card drivers to talk to the appropriate hardware interface of the sound card, such as one of the Sound Blaster interface tiers, or the Gravis Ultrasound wavetable. These drivers can be hard-coded into the game, or stored as a collection of external files like in HMI or Miles.
Depending on the game and card you have, one or both of these may apply:
To play Halloween Harry on a real Sound Blaster ISA card, no extra drivers are needed in autoexec.bat
. The SB support is hard-coded in the game.
To play Theme Hospital on a SB Live! PCI under MS-DOS, two different kinds of drivers are used. The SB Live! PCI itself requires a Creative resident MS-DOS driver to imitate the hardware interface of an MS-DOS-era SB16 card. The game itself uses a third-party Miles driver to abstract the Sound Blaster (or Pro Audio Spectrum, Windows Sound System, Wavjammer...) card for the game's use - this is what you select when you pick Sound Blaster 16 on the setup screen.
Detail:
All the other answers given here so far are correct, for different scenarios. What may confuse the reader is that there are two distinct phases that both could correctly be called 'drivers'. Let me describe what I mean:
Pretty much everything here applies to both digitised audio output and AdLib/OPL2/OPL3 support equally, but I'll focus on digitised audio.
1) Initialisation and support to -provide- the hardware interface
Legitimate, first-party Sound Blaster series cards are programmed directly through I/O ports. There's a chip on-board known as the 'DSP'* which handles all the data movement between system memory (requested through a system DMA channel) and the card's DAC/ADC. If you have a real Sound Blaster card, and the game is hardcoded to 'talk Sound Blaster'** then that's all that's needed.
If you have a clone card, a third-party 'compatible card', or a later SB16/AWE card then one of the following applies:
- The card exactly mimics the behaviour of one the Sound Blaster series cards and no further intervention by a 'driver' is necessary. The 'Snark Barker' is designed as an SB 1.x clone - it transparently acts as an SB without a driver.
- The card starts off 'inert' and requires some initialisation. This is common with 1995-1997 PnP compatible cards whose IRQ and DMA settings are done in software rather than by jumpers. My Avance ALS100+ based card and CMI8330 cards require a start-up program to be run before they will work. This program talks to the card, tells it what IRQ and DMA to use, and from that point onwards the card acts as a clone card. No persistent program resides in memory to translate a game's Sound Blaster DSP commands into Avance commands, etc. If you've installed the 'driver' for a clone-like card, this most likely applies to you.
- If the card is not capable of directly acting as a clone card because it is exotic like a Gravis Ultrasound, or a very new (relatively speaking: post 1996) Sound Blaster / Ensoniq PCI card, then it cannot be simply initialised into acting as an SB clone card. These cards require a software shim layer to be loaded resident to intercept Sound Blaster DSP commands and translate them in real time to commands the card understands. For the GUS, this is called SBOS - it attempts to wrap the GUS' wavetable hardware into a single output stream compatible with SB. If the game you're playing natively supports GUS, then you don't need SBOS. For cards without FM chips/clone chips present, the shim layer may synthesize the audio in software in real-time, with mixed results. For Ensoniq/SB Live/SB Audigy, this is
SBEINIT.COM
, which emulates an SB16 card in software, setting up a 'phantom' card at IRQ 2/5/7/10 which responds to the standard set of DSP commands and ISA bus behaviour.
These drivers would come shipped with your sound card.
*(Not to be confused with a 'DSP' in other usage which provides programmable effects like reverb or echo.)
**(You can read about this in the Sound Blaster Series Hardware Programming Guide)
2) Game support to -consume- the hardware interface
Now that your sound card is ready to receive commands, the games have to know how to play sound through its hardware interface. In MS-DOS, every game ships with its own set of drivers to control the sound card hardware.
Each card has its own set of primitive capabilities and interfaces, such as streaming digitised audio output (Sound Blaster, Windows Sound System, etc.), FM synthesis (Adlib, Sound Blaster, GUS SBOS), wavetable hardware accelerated output (Gravis Ultrasound, SB AWE) and MIDI support. The sound card drivers included with the game interact with the motherboard and sound card hardware directly to abstract the capabilities of the sound card into a uniform interface for the game programmer.
Because digitised audio output, wavetable output, FM synthesis and MIDI playback are dissimilar in nature, the sound card drivers at this layer typically also take on the role of an audio library, providing useful functions such as sound effect playback and looping, sound mixing (with volume and panning support), and music playback/cueing. Tracker music and sound effect playback map onto the features of the Gravis Ultrasound directly, but to do this on a Sound Blaster requires a software mixer with a wavetable-like system in software to pitch and combine the channels.
Early games would have their sound card drivers coded directly into the game in a sort of ad-hoc fashion because the interface is so simple - Halloween Harry supports the original Sound Blaster card, and the support is hard-coded into the game. (Luckily, all SB series cards support the original Sound Blaster interface tier, so Harry works with these cards too.) Rise of the Triad has its own huge sound library; since RoTT is open source, you can see all of the different initialisation and support routines on Github.
For late, mature MS-DOS games like Theme Hospital, a commercial library like Miles or HMI is used. If you've seen a sound card set up screen with dozens of sound cards available, then they most likely use one of these libraries. I point this out since the different sound card drivers can be shown in a directory listing as .386
or .ovl
or .hmi
files. Epic MegaGames Jensen-library games like One Must Fall 2097 and Jazz Jackrabbit store their sound card drivers in MDRV---R.MUS
files. These are good examples of a games which support both Gravis Ultrasound and Sound Blaster.