Gravis UltraSound¶
The Gravis UltraSound (or just GUS) was released in 1992 by an unlikely manufacturer: Canadian joystick company Advanced Gravis. Its audio capabilities were far ahead of anything else on the consumer market — wavetable synthesis, stereo sound, and up to 32 channels of simultaneous playback.
The catch? The GUS made no attempt at backwards compatibility with AdLib or Sound Blaster cards. Programs had to be written specifically for it. Many DOS gamers kept a Sound Blaster alongside their GUS for titles that lacked native support — and in DOSBox Staging, you can do the same by enabling both devices in your configuration.
Another quirk: unlike most sound cards, the GUS shipped with no built-in instrument sounds. All voices had to be loaded from disk via “patch files” at driver load time. Due to licensing restrictions, these patch files can’t be distributed with DOSBox Staging, so you’ll need to obtain them separately.
Where the GUS truly shone was in the demoscene and tracker music community. Second Reality by Future Crew, widely considered one of the greatest DOS demos ever made, was designed to sound its best on a GUS. Games with native GUS support, like Star Control II, also benefited enormously from its superior audio capabilities.
How programs use the GUS¶
Software used the GUS in several distinct ways. Understanding the difference is important because each requires a different DOSBox configuration.
Native support¶
These games use the card’s hardware mixing directly, uploading their own
samples to the GUS’s on-board RAM — no patch files or drivers needed. This
is the GUS at its best: crystal-clear multi-channel audio mixed in hardware
with a very low noise floor. Native GUS games need only gus = on in the
config. Select “Gravis UltraSound” (or similar) in the game’s setup utility.
Notable native GUS games
All demoscene productions with GUS support also fall into this category — they upload their own instrument samples and use the hardware mixer directly.
GUS MIDI with patch files¶
These games have a built-in GUS driver that sends MIDI commands and loads
instrument samples (patch files) from the ultradir directory to
use as wavetable instruments. The GUS acts as a MIDI synthesiser — the result
can sound very good, somewhere between FM synthesis and true General MIDI. The
patch files must be placed in a MIDI subdirectory under
ultradir (default C:\ULTRASND).
Notable GUS MIDI games
UltraMID¶
These games have no GUS-specific code at all — they send standard MIDI
commands as if talking to a Roland MT-32 or General
MIDI device. The ULTRAMID.EXE TSR
provided by Gravis intercepts these MIDI commands and translates them into GUS
hardware calls, loading instrument samples from the patch files on disk. Load
ULTRAMID.EXE before starting the game:
Notable UltraMID games
- Betrayal at Krondor (1993)
- Eye of the Beholder (1991)
- Hocus Pocus (1994)
- Indiana Jones and the Fate of Atlantis (1992)
- Master of Orion (1993)
- Monkey Island 2: LeChuck’s Revenge (1991)
- Sam & Max Hit the Road (1993)
- The 7th Guest (1993)
- Ultima Underworld: The Stygian Abyss (1992)
- X-COM: UFO Defense (1994)
Tip
If a game’s setup utility offers both “Gravis UltraSound” and “General MIDI” (or similar), the GUS option usually sounds better — it means the game has a built-in GUS driver. Fall back to the General MIDI option with UltraMID if the GUS option doesn’t work.
For a comprehensive list of games with GUS support, consult the official GLIST.TXT compatibility list maintained by Gravis:
Setting up the GUS environment¶
For games that need the patch files (GUS MIDI and UltraMID titles), you’ll need to set up the GUS directory structure. The expected layout is:
C:\ULTRASND\
├── MIDI\
│ ├── ACBASS.PAT
│ ├── ACPIANO.PAT
│ ├── ... (instrument patch files)
│ └── DEFAULT.CFG
└── ULTRAMID.EXE
The patch files cannot be distributed with DOSBox Staging due to licensing restrictions. Search online for “GUS patch files” or “GUS MIDI patches” to find them. Several freely available patch sets exist.
Once the files are in place, ensure ultradir points to the correct location
in your DOSBox config:
Note
Native GUS games and all demos do not need the patch
files — they upload their own instrument samples. You only need the
ULTRASND directory setup for GUS MIDI and
UltraMID games.
Default settings¶
The default Gravis UltraSound settings shown below have been selected to avoid conflicts with the Sound Blaster card, allowing both to coexist. Most games can auto-detect the presence of the Gravis UltraSound card and these settings, but in case they need a little help, here are the values to use:
| Setting | Config setting | Default value |
|---|---|---|
| Base address (or I/O address, or port) | gusbase |
240 |
| IRQ (or interrupt) | gusirq |
5 |
| DMA | gusdma |
3 |
If you have configured a game for Gravis UltraSound audio but there is no sound at all, or if the game hangs or crashes, first double check that the above settings have been set in the game’s configuration. Some games don’t let you to set all of them manually and just assume some common fixed values instead. If all fails, try using the Factory settings.
Factory settings¶
It was common to use the above settings for the GUS when paired with a Sound Blaster card in the same PC, so most games and demos work fine these these, but a few expect the GUS factory default. If a game or demo doesn’t detect the GUS, locks up, or doesn’t have sound when configured for Gravis UltraSound, it’s worth trying the below factory settings:
| Setting | Config setting | Default value |
|---|---|---|
| Base address (or I/O address, or port) | gusbase |
220 |
| IRQ (or interrupt) | gusirq |
11 |
| DMA | gusdma |
1 |
It’s also recommended to disable the Sound Blaster emulation for these
problematic titles by setting sbtype to off.
Certain versions of the DOS/4GW extender cannot handle IRQs above 7, so IRQ 11
may cause problems with some programs — try setting gusirq to 7 as
the last resort.
Environment variables¶
Many DOS programs use the ULTRASND and
ULTRADIR DOS environment variables to auto-detect and
auto-configure the Gravis UltraSound card. On a real machine, these variable
are set up in AUTOEXEC.BAT during the GUS driver installation process.
DOSBox Staging injects these environment variables at startup based on the
card’s configuration in the [gus] section. You should never set them
manually.
To view the values of the variables, execute the SET ULTRASND or SET
ULTRADIR DOS command, respectively.
ULTRASND variable¶
The ULTRASND variable contains the hardware settings of the card.
For example, this is the SET ULTRASND output you’ll get with the default settings:
The meaning of the comma-separated values are as follows:
-
port — the base address (
gusbase) -
dma1 — First DMA channel for playback (
gusdma) -
dma2 — Second DMA channel for recording (always the same as the first DMA channel in DOSBox Staging)
-
irq1 — First IRQ (interrupt) number for playback (
gusirq) -
irq2 — Second IRQ (interrupt) number for recording (always the same as the first IRQ in DOSBox Staging)
ULTRADIR variable¶
This variable tells GUS software where to find the system files and instrument patches required to play back MIDI music. It contains the ultradir path, so you must set this correctly.
A typical SET ULTRADIR output:
GUS-only configuration¶
If you want to emulate a system with only a GUS and no Sound Blaster (as some purists had in the 1990s), disable the other sound devices:
This can be useful for games where the GUS and Sound Blaster interfere with each other, or when you want to ensure a game uses its GUS code path exclusively.
Mixer channel¶
The Gravis UltraSound outputs to the GUS mixer channel.
Configuration settings¶
Gravis UltraSound settings are to be configured in the [gus] section.
gus¶
-
Enable Gravis UltraSound emulation. Many games and all demos upload their own sounds, but some rely on the instrument patch files included with the GUS for MIDI playback (see
ultradirfor details). Some games also requireULTRAMID.EXEto be loaded prior to starting the game.Possible values:
on,offdefault
gusbase¶
-
The I/O base address of the Gravis UltraSound.
Possible values:
210,220,230,240default,250,260.
gusirq¶
-
The IRQ number of the Gravis UltraSound.
Possible values:
2,3,5default,7,11,12,15.
gusdma¶
-
The DMA channel of the Gravis UltraSound.
Possible values:
1,3default,5,6,7.
ultradir¶
- Path to the UltraSound directory (
C:\ULTRASNDby default). This should have aMIDIsubdirectory containing the patches (instrument files) required by some games for MIDI music playback. Not all games need these patches; many GUS-native games and all demos upload their own custom sounds instead.
gus_filter¶
-
Filter for the Gravis UltraSound audio output.
Possible values:
ondefault – Filter the output. This applies a 1st order low-pass filter at 8 kHz (lpf 1 8000).off– Don’t filter the output.<custom>– Custom filter definition; see Custom filter settings for details.