PCI audio notes

Last modified: Sun Dec 6 11:23:11 EST 2015

This is not a survey of PCI audio in general but one that focuses on the problems that were created during the migration of sound cards and integrated audio from ISA to PCI circa 1998.  The most important questions are "Does it work with DOOM?" and "Does it mangle 44.1 kHz music?"

For PCI cards the former question is inextricably bound to the motherboard chipset, and a bad choice of motherboard for testing will mean that most cards just won't work.  OTOH, it's nearly pointless to test PCI audio on the gold standard of compatibility (440BX) because that usually comes with ISA slots.  Back in the day, the newer PCI sound cards were of course represented as being upgrades over the older ISA ones, but it was a blunder to accept them as such and install them in systems with working ISA slots.

Taxonomy of PCI audio
      AudioPCI through Audigy
      Aureal Vortex and Vortex 2
      Everything else
Detailed write-ups


Most music files use a 44.1 kHz sample rate and most of the sound effects in DOS games use some multiple of that (e.g., 22050 Hz or 11025 Hz).  ISA sound cards were built around that reality, but early PCI sound cards instead made a hard switch to 48 kHz for no good reason (ES1370 AudioPCI cards being a notable exception).

There are three different levels of support for the 44.1 kHz sample rate and its multiples in PCI sound cards and chips:

22.5792 MHz and 24.576 MHz

  1. Hardware clock:  Ideally, a sound card or chip will have a hardware clock that directly supports the 44.1 kHz frequency so that music can be played without resampling.  In the early PCI days, only a few outstanding consumer cards had this.  Cards targeted toward audio production of course had multiple hardware clocks but they care less about compatibility with DOS video games.  (Photo:  dual crystals on a DiO 2496 card; 22.5792 MHz = 512 × 44.1 kHz and 24.576 MHz = 512 × 48 kHz.)
  2. Internal resampling:  Less good solutions will have only one hardware clock, which is 48, 96, or 192 kHz, but will implement a resampling algorithm internally.  They will appear to function the same way as cards that directly support the 44.1 kHz frequency but sound quality will be compromised to an extent that depends on the resampling algorithm.
  3. Garbage:  The worst ones have only a 48 kHz clock and won't accept any input that is not already resampled to 48 kHz somehow.  The resampling is stuck into drivers which introduce significant lag into running applications.

Similarly, there are four different levels of compatibility with legacy DOS applications that use ISA DMA for sound (hereafter referred to simply as "legacy audio"):

  1. Hardware:  Using PC-PCI (a.k.a. SB-Link) or a similar mechanism, ISA DMA signals are routed to the PCI chip.  Sound quality might be negatively impacted by resampling but there should be no performance or compatibility impact on applications.  Hardware compatibility is nearly impossible for any Intel chipset later than 8xx.
  2. DOS driver:  Legacy audio is enabled by heavyweight drivers that do clever/onerous/unreliable things to reroute ISA requests to the PCI bus.  An EMM is usually required and performance is negatively impacted to a greater or lesser extent.  More often than not, the drivers won't even load.  If they will, some games still won't work.  What success there is is often limited to a specific range of motherboard chipsets.
  3. Windows driver:  Legacy audio is supported only in a DOS box within the Windows environment.  The games still have to run in virtual 8086 mode, only instead of just a simple EMM on the outside they now have Windows and everything else that Windows is running.  Windows may resample all audio streams to 48 kHz for mixing convenience regardless of the capabilities of the hardware.  When they work, Windows drivers can provide enhanced features that are not practical in DOS, but the success rate for legacy audio is low.  Common modes of failure are can't initialize sound, no sound, sound breaking up, lock-ups, spontaneous reboots, and blue screens.
  4. None:  DOS applications won't work.

Taxonomy of PCI audio

AudioPCI through Audigy

A range of common Ensoniq and Creative sound cards are united by their use of .ECW (Ensoniq Concert Wavetable) files and Ensoniq's DOS driver technology for legacy audio.

Chips testedWikipedia says
(Never seen an S5016)S5016 predates ES1370.
ES1370 cards have a 44.1 kHz hardware clock.Creative 5507 is the same chip.
ES1371 and ES1373 cards are 48 kHz with internal resampling.  Drivers can't tell the difference between them. The only difference is that ES1373 has S/PDIF.  CT5880 is the same as ES1371.  EV1938 is a later variant with AC97 built in.
EMU10K1 and EMU10K1X (Sound Blaster Live!) cards are 48 kHz with really poor internal resampling. 
(Never had an Audigy)DOS drivers still use ECW soundfonts.

Although the hardware synth on Live! and Audigy cards certainly works with arbitrary SF2 soundfonts, the DOS drivers for all of these cards will only accept ECW soundfonts.  There are three canonical ECW soundfonts and few others in existence.

None of these cards has an OPL3 implementation in hardware.  For the earlier cards, FM is emulated poorly using the synth.  For the Sound Blaster Live! the emulation is credible, but it is laggy and causes sound effects to glitch.

In most cases there are multiple driver sets that are applicable to a given card.  Sometimes there is one from Ensoniq and one from Creative; sometimes there is a VxD one and a WDM one; sometimes there are separate DOS drivers and sometimes there aren't.  The emulation provided for legacy audio can vary from T2 (old SBPro) to T4 (SBPro 2.0) or T6 (SB16).  The nomenclature from Creative was messy enough that it is often difficult to tell which drivers are applicable much less optimal for a given card.

Available detailed write-ups:
ES1370 (Magitronic DCS S727-SB)
ES1373 (CT5803 Sound Blaster AudioPCI 64 Dell/Gateway)
EMU10K1-SEF (CT4830 Sound Blaster Live! Value OEM)
EMU10K1-NGF (SB0100 Sound Blaster Live! 5.1)

Aureal Vortex and Vortex 2

Aureal cards are a nice alternative to AudioPCI and SB Live!.  They are 48 kHz and their OPL3 is still only an emulation, but their resampling is better and they come with a different soundfont.  Interestingly, although the DOS driver is available only as part of a W98 drivers distribution, it appears not to require an EMM.

In addition to Vortex (AU8820) and Vortex 2 (AU8830) there was Advantage (AU8810), but I have yet to encounter the latter.

Available detailed write-ups:
Vortex (AU8820)
Vortex 2 (AU8830, Montego II A3D)

Everything else

Yamaha YMF724 (unknown Labway DS-XG card):  excellent synth and soundfont as well as an integrated OPL3, but the available DOS drivers have never worked.

ForteMedia FM801 (another unknown Labway card):  it has an integrated OPL3 clone, but the XG is a lie!

CMI8738 (Diamond Extreme Sound 5.1 (XS51) SC3000):  also has an integrated OPL3 clone.

CS4622/24 on-board audio (with 4297 AC'97 codec):  has promising DOS drivers, not yet tested with DOOM.

ICE1712 / VIA Envy24 (M-Audio Delta DiO 2496):  It's serious about sound quality but has no legacy audio.

Realtek ALC662 (ASRock 4CoreDual-SATA2 R2.0 on-board audio):  HD Audio, doesn't even support W98 let alone DOS.

Detailed write-ups

CS4622/24 on-board audio (with 4297 AC'97 codec)

The Cirrus Logic Preliminary Product Bulletin (June 30, 1998) for the CS4622/24 claims Sound Blaster Pro compatibility and advertises "High Quality Hardware Sample Rate Conversion," "PC/PCI Legacy Support," "DDMA Legacy Support," and "CrystalClear Legacy Support (CCLS)" as features.  It thus appears to have hardware support for legacy audio but resamples internally to 48 kHz.  The CS4624 is a reduced-cost version of the CS4622 with no changes to the compatibility features.

In any given motherboard that has the CS4622/24 on-board, hardware support for legacy audio may or may not be connected.  The photo and most of the following experience report were contributed by Owen Hann of Australia based on an IBM Thinkpad T22 (440BX chipset), 2014-01.

Chip: Cirrus Logic, Crystal Clear Sound Fusion CS4624 (Vendor ID=1013, Product ID=6003)

To get sound under DOS, only 3 files are required (the ZIP is 10 MB):

FileSize (B)Description
\CWCDATA\CWCDOS.EXE57,939Required.  CrystalWare SoundFusion Initialization Utility.
\CWCDATA\CWCAUDIO.WCM6Required.  Created when Windows 98 installs the PV2885.ZIP drivers.  It is not in the ZIP!
\CWCDATA\CWCPCPCI.OSP45,108Optional.  Used if no command line option is specified.
\CWCDATA\CWCDDMA.OSP44,380Optional.  Used if the command line option /P is used.
\CWCDATA\CWCDGAME.OSP44,756Optional.  Used if the command line option /L or /X is used.

[PV2885.ZIP is the package for Windows 95 and Windows 98 initial release, available from Cirrus.  Packages for W98SE etc. can be found by searching on CS4624, but the W98SE package PW3041.ZIP doesn't include CWCDOS.EXE!]

The CWCAUDIO.WCM created on the system under test contains (in hex):  20 02 88 03 05 01

AUTOEXEC.BAT needs to contain at a minimum \CWCDATA\CWCDOS.  With no options, it uses PCPCI support and loads the CWCPCPCI file.  Options:

/H or /?Output wrong descriptions of options
/VBe verbose as the sound chip is being initialised
/LUse CCLS support, load the CWCDGAME file
/XUse CCLX (?) support, load the CWCDGAME file
/PUse DDMA support, load the CWCDDMA file

Based on testing with Mpxplay, the Thinkpad T22 appears to implement DOS support through PCPCI and DDMA:

Mpxplay does not support this chip natively but detects it as Sound Blaster Pro 2.0 once all is configured.

>\cwcdata\cwcdos /v /P
CrystalWare(tm) SoundFusion(tm) Initialization Utility, Version 2.80
Copyright (c) 1998 Crystal Semiconductor Corp.  All Rights Reserved.
    *  Found PCI Bios.
    *  Initializing the VCPI interface.
    *  Found a CS4624 Revision H.
    *  INTEL Chipset Found.
    *  DDMA support Used.
    *  Loading DOS game task from C:\CWCDATA\CWCDDMA.OSP.
    *  Initializing.
    *  Resetting SP.
    *  Downloading DOS Game Tasks.
    *  Starting DOS Game Tasks.
    *  GPIO Pins Used for ISA interrupts.
    *  Blaster using Port: 220 Irq: 5 Dma 1.
    *  Uninitializing the VCPI interface.
    *  Editing dosstart.bat.
    *  Found cwcdos.exe dosstart.bat
    *  Terminating and staying resident.

>mpxplay -sct
SBp card detected : SET BLASTER=A220 I5 D1 T4

TO DO:  Get test results for DOOM and DN3D.

M-Audio Delta DiO 2496

This card is designed for sound, not for gaming.  For once we have a PCI card that doesn't suck at playing music:

What's missing:

The DiO 2496 has been overshadowed by the Audiophile 2496, which trades the optical S/PDIF connections for analog inputs and MIDI I/O.  The analog jacks are on the bracket while the S/PDIF and MIDI connections are on a breakout cable.

Linux (as of kernel 3.13.2)

The relevant module is snd_ice1712.  The controls for this card can be quite confusing in alsamixer, but there is a better way:  envy24control, included in alsa-tools.  Just edit the top-level makefile to remove everything else from the list of subdirs and type make.

The configuration as initialized by Alsa sends normal output to the analog jacks while the S/PDIF outputs are connected to a separate PCM called iec958.

bash-4.2$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: M2496 [M Audio Delta DiO 2496], device 0: ICE1712 multi [ICE1712 multi]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

bash-4.2$ aplay -L
    Discard all samples (playback) or generate zero samples (capture)
    M Audio Delta DiO 2496, ICE1712 multi
    Default Audio Device
    M Audio Delta DiO 2496, ICE1712 multi
    Default Audio Device
    M Audio Delta DiO 2496, ICE1712 multi
    Front speakers
    M Audio Delta DiO 2496, ICE1712 multi
    4.0 Surround output to Front and Rear speakers
    M Audio Delta DiO 2496, ICE1712 multi
    4.1 Surround output to Front, Rear and Subwoofer speakers
    M Audio Delta DiO 2496, ICE1712 multi
    5.0 Surround output to Front, Center and Rear speakers
    M Audio Delta DiO 2496, ICE1712 multi
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
    M Audio Delta DiO 2496, ICE1712 multi
    IEC958 (S/PDIF) Digital Audio Output

To route the default PCM to all analog and digital outputs simultaneously, configure thusly in envy24control (and optionally save the configuration with alsactl store):

  1. In the Patchbay/Router tab, set S/PDIF Out L and R to Digital Mix L and R.
  2. In the Monitor PCMs tab, PCM Out 1 is your left channel and PCM Out 2 is right.  So set the left volume of PCM Out 1 and the right volume of PCM Out 2 to maximum and mute the others.

Sample rate locking is on the Hardware Settings tab.


The supplied drivers are VxD and there is no legacy audio or MIDI support for DOS games.

Labway Yamaha DS-XG (YMF724F-V)

Note:  This card has not yet been tested on the jinxed PT880 Ultra chipset.

2014-03:  I don't know what Labway actually called this card, but it's a Yamaha DS-XG type.  It is supposed to be able to emulate a Sound Blaster Pro 2.0.  Cool features include genuine OPL3 (integrated in the YMF724F), an impressive XG synth, an 18-bit DAC (WM9701A), and PC/PCI support.  The single 48 kHz clock sucks, but the internal resampling is not bad.  Anachronistically, line-level output must be selected by jumpers for the one output jack.

2014-09:  The AOpen AW724 Audio Phantom is functionally similar but more cheaply made.  It omits the PC/PCI header and its analog audio headers are an older type that modular plugs won't fit.


Slackware 14.1, kernel 3.13.5:  Module snd-ymfpci enables PCM sound, but neither the OPL3 nor the XG synth show up in aplaymidi –l or /proc/ioports despite all of the right modules being loaded.  The game port is missing too.

2014-05, kernel 3.14.4:  Using the source, the game port, OPL3, and MPU-401 devices are all supported; the driver just disables them by default.  Duh.  To fix, create a file /lib/modprobe.d/alsa.conf containing:

options snd-ymfpci joystick_port=0x201 fm_port=0x388 mpu_port=0x330

The sbiload + aplaymidi combo works to get music out of the OPL3, but it glitches.


AFAICT, the best possible outcome in pure DOS is Sound Blaster Pro 2.0 emulation with OPL3 (i.e., no XG synth), but it never works (PC-PCI TBD).

Labway and their drivers have gone to the ash heap of history.  I tried the final version (v. 3.16) of Yamaha's generic DOS drivers from Yamaha's own web site.  Note:  These drivers want the DOS4GW.EXE extender but it is not included.

When testing on a 440BX motherboard I got this error, "Can not detect Interrupt," regardless which IRQ number I chose:

On an MVP3 motherboard, all of the options were grayed out, DMA didn't work, and it was hopeless.  In both cases, the native mode sound test and FM sound test still worked.

2015-12-05:  Yuki Saitou reported SB Pro emulation working in pure DOS with DOOM and other games on an Asus TUSL2-C board (815EP chipset):  "The setup tool still has many options greyed out and I can't test SB emulation from within however if I choose save and exit then run loadtsr.bat it successfully initialises and displays the Port/IRQ/DMA details on screen."


In Windows 98 this card can finally shine, but the legacy audio is still tricky.

Yamaha provides both VxD and WDM driver sets here.  Each version has its own quirks.

yamaha_dsxg_driver.exe installs easily and the card is detected after a reboot. dsxgwdm.exe installs easily, but two reboots are needed (only one is prompted) before the card is detected.
Sound font installed as ydsxg.datSound font installed as Dsxgwave.tbl
T4 Sound Blaster Pro 2.0 emulationT4 Sound Blaster Pro 2.0 emulation
Must turn MIDI up to maximum in the mixer to balance with Wave.  It likes to revert to the default setting after an unclean shutdown. Must turn Wave down to 50% in the mixer to compensate for really quiet MIDI.
DOOM works.DOOM works but sound effects are glitchy (as always with WDM?)
DN3D crashes Windows.DN3D works.


Although the file names are different, the 2.5 MB sound font in the two driver sets is bit-for-bit identical.  Overwriting it with the 4 MB sxgwave4.tbl waveset used with the Yamaha softsynth doesn't work.  TBD:  Try PowerYMF.

A Wikipedia contributor wrote, "WDM drivers... provide subjectively unacceptable XG MIDI synthesis (General MIDI synthesis is considered acceptable)."  Without doing a careful side-by-side comparison using a native XG mid file, I haven't encountered drastic problems with the WDM drivers identified above.  However, with an older version of the WDM driver set (the Yamaha DS-XG Audio Config app declares itself to be version 4.10.2223) I would describe the MIDI rendering as "mangled."  The older version still has SONDIUS-XG on the Synthesizer tab, but enabling it causes Windows to lock up when DOOM runs.

I like the XG sound font.  Unlike most, it can be used as a drop-in replacement for Sound Canvas without messing up the timing of everything, and the drums are better than SC.  It makes DOOM E1M1 and the DN3D theme sound most excellent.

Labway/ForteMedia Xwave QS3000A (FM801)

Note:  This card has not yet been tested on the jinxed PT880 Ultra chipset.

Despite the XG logo and strong physical resemblance to the YMF724 card, there is no XG synth here.  OEMs bundled the Yamaha S-YXG50 softsynth with the drivers that you can no longer get.  ForteMedia had generic drivers (without the softsynth) on the web for a short while.

On the good side, it does have an integrated OPL3 clone that isn't too bad.



In the mixer there are three volume controls that affect wav sound output:  Master, PCM, and Wave.  All three must be set to 60% or lower to avoid noisy output.

sbiload + aplaymidi works without glitching.

Joystick support is in a separate module, fm801-gp.


(Tested on MVP3 chipset.)

The installer in Dos202.zip, ForteMedia's generic "Base Driver for DOS," is refreshingly simple and direct, prompting for resources and then asking, "Is this OK for your DOS Games?"  Unfortunately it causes percent symbols to disappear from AUTOEXEC.BAT.


The executables CFG801.EXE and DOS801.EXE can be moved out of the root directory, but the paths to config files C:\DOSGAME.CFG and C:\VOLUME.CFG are hard-coded.

An EMM is not required, but DOS801 is a TSR.

The mixer settings in VOLUME.CFG are at most only initial values.  As soon as you run a game the volume gets cranked up and is left that way after the game exits.

The channels are reversed in DOOM and DN3D.  SET DMXOPTION=-opl3 does yield stereo (reversed) OPL3 music in DOOM.


I scrounged up the following files which I believe to be from the long-gone ForteMedia generic collection:

With the base drivers you get a standard mixer (double click on volume widget), legacy audio, and joystick driver.  MIDI played to the "FM801 Internal FM" synth sounds much like the awful "Creative Music Synth."  Vanilla DOOM and DN3D run but the volume is still wonky and the channels are still reversed.

The Q3D driver set is unusable.  It installs a version of the base audio device driver which doesn't work.

EzAudio is just yet another CD/MIDI/WAV player.

Diamond Extreme Sound 5.1 (XS51) SC3000 (CMI8738)

The CMI8738 presents as a high-end audio chip with support for both 44.1 and 48 kHz sample rates, which is enigmatic given that the 14.318 MHz clock source is an even multiple of neither one.

Linux (4.2.3)


 Port    Client name                      Port name
 16:0    C-Media CMI8738                  C-Media CMI8738 MIDI
 17:0    OPL3 FM synth                    OPL3 FM Port

sbiload + aplaymidi works without glitching but the channels are reversed.

Header J3 matched up with the CD audio input.

Like snd-ymfpci, this module does not enable the joystick unless asked.  Add to /lib/modprobe.d/alsa.conf:

options snd-cmipci joystick_port=1


The tested drivers came from the Diamond Installation CD Version 1.0 for Windows 2000/XP/MCE.  Although the autorun setup supports only the indicated later versions of Windows, manually installable Windows 98 drivers were "hidden" in subdirectory Drivers.  Included were audio driver v. (WDM) and Diamond Multimedia 3D Audio Configuration v.

2015-10:  I have now tested this card on three different chipsets.  With PT880 Ultra, Windows locked up every time DOOM or DN3D tried to initialize sound effects.  With KT133E and 440BX this did not occur; however, the slower CPU on the 440BX board led to horrible lag.  At best, all PCM output was breaking up, and if the Universal VESA/VBE driver was installed, simply moving the mouse caused music to slow down.

In a DOS box, BLASTER=A220 I5 D1 T4 P330, but they didn't bother to make the OPL3 work.  Music sent to OPL3 goes into a black hole.

General MIDI is provided by the Microsoft GS softsynth.  Using that, DOOM and DN3D would be playable if not for the sound effects breaking up.  The channels are not reversed.

Absolutely nothing is done for real-mode DOS.


2015-10, 440BX, FreeDOS:  DOS drivers for some card using the same or similar chip appeared on Vogons.  They initialized successfully exactly once:

That time I managed to get OPL3 music in DOOM though the IRQ was wrong for sound effects.  Unfortunately, that success was random and irreproducible.  Every other time, this happened:

The installer added a line to AUTOEXEC.BAT setting BLASTER=A220 I5 D1 H5 T4, which (a) specifies a high DMA that does not apply to T4 and (b) disagrees with the IRQ reported by SETAUDIO.

There is a mixer app (C3DMIX.COM), but it is impossible to unmute FM and wave if SETAUDIO hasn't initialized successfully.

C3DMIX is run in AUTOEXEC.BAT with a long list of cryptic, undocumented switches.  Running C3DMIX interactively causes it to modify the magic numbers in AUTOEXEC.BAT!

C:\LOCAL\SNDCARDS\CMI8738\C3DMIX /MFF000 /FFF000 /WFF000 /L00100 /E00100 /A00100 /C00100 /P00000 /400000 /R0f0ff /D040ff

FWIW, MPXPLAY supports this card directly and it sounds great.

Vortex (AU8820)


No clue what brand and model this card was sold as.

Testing done 2015-09 using 440BX motherboard and 450 MHz Pentium 2 CPU (Dell R450).

Linux (4.2)

The module is snd_au8820.  There is no synth.  There is, however, a proliferation of subdevices appearing through ALSA to support hardware mixing.

Card 0, ID `au8820', name `Aureal Vortex au8820'
  Device 0, ID `Aureal Vortex ADB', name `au8820 adb', 16 subdevices (16 available)
    1..2 channels, sampling rate 5000..48000 Hz
    Sample formats: U8, S16_LE, MU_LAW, A_LAW
      Subdevice 0, name `subdevice #0'
      Subdevice 15, name `subdevice #15'
  Device 3, ID `Aureal Vortex WT', name `au8820 wt', 32 subdevices (32 available)
    1..2 channels, sampling rate 8000..48000 Hz
    Sample formats: S16_LE
      Subdevice 0, name `subdevice #0'
      Subdevice 31, name `subdevice #31'

ADB = Audio Data Bus, the normal PCMs.  WT = WaveTable, a set of PCMs that support the W98 softsynth.  The latter have mysterious additional features, but in a brief, simple test they appeared to work the same as the PCMs on device 0.

Sound seems to work, but these kind of messages appear in the system log whenever SDL is used:

snd_au8820 0000:00:10.0: BUG: , pos = 2048, buffer size = 2048, period size = 1024
snd_au8820 0000:00:10.0: BUG: , pos = 2051, buffer size = 2048, period size = 1024


Version 4.05.0110 drivers are provided in drivers/audio/aureal on the W98SE installation CD, but they don't work right at all.  Instead, I used version 4.06.1189 from VOGONS, installed by the Browse method.

Sound Blaster emulation is T4 (Sound Blaster Pro 2.0).  Neither music nor sound effects has the reversed channels problem.

Some kind of stereo enhancement is enabled by default under the Advanced tab of the mixer.  There's also A3D.


The volume of Wave Out needs to be reduced to around 50% of Wavetable in the mixer for General MIDI to be loud enough.  For the emulated OPL3, it has to be lower yet.

General MIDI is available only from a DOS box.  "Restart in MS-DOS mode" is limited to using the OPL3 emulation, which is not very good.  With music sent to General MIDI, DOOM and DN3D run well enough in DOS boxes; however, sound effects are glitchy in DOOM, and sometimes the synth gets hosed and you have to reboot.

The installed sound font is called AUREALGM and is 5188936 B.  The FAQ says "Windows 9x 4.06.1187 or later reference drivers support DownLoadable Sounds 1.0 and any Soundfonts 2.0 files with don't use ROM samples."  There is a Download button on the MIDI tab of the Vortex Control Panel, but it only wants files called *.arl, *.dls, or AurealGM.  Overwriting AUREALGM with Scc1t2.sf2 caused broken music (looping drum samples).

By default, the driver assigns DMA 3 for legacy audio and DMA 1 for something unexplained.  Switching to "Basic configuration 0007" assigns DMA 1 to legacy audio and surrenders the other DMA.  The affected fields in VORTEX.INI are SBFMDMA (legacy audio) and SBFMDMA2 (???).

Before After

The PCI IRQ and CPU frequency in MHz are also encoded in VORTEX.INI, so blindly copying the config file from one PC to another is likely to break something.  (CPU speed?  Seriously, you need that?)



Tested with FreeDOS.  The Aureal driver for DOS can be said to "work" in real mode as well as in virtual 8086 mode; however, either way it caused corruption and crashes, and either way you are stuck using the unimpressive emulated OPL3 with no wavetable MIDI.

It suffices to copy the files ASP4DOS.COM and VORTEX.INI from a W98SE installation and do the following in AUTOEXEC.BAT:

REM This must match the configuration in VORTEX.INI.

The TSR is 38973 B and occupies 23392 B after loading.  It refused to load high.

There is no mixer.  The third-party tool VORTMIX didn't work.  I was stuck with default volumes.

MPXPLAY plays music in SBPro mode for at most a minute before crashing.  DN3D prints garbage on the start and exit screens but is playable.  DOOM sound effects are less glitchy than they were in W98SE, but they still cut off like only one can play at a time.

In summary, though DOOM and DN3D are playable, the poor-quality MIDI, glitched sound effects, lack of a working mixer, and evidence of corruption make this card a poor choice for plain DOS.

Montego II A3D (Vortex 2, AU8830)


The Montego II is an Aureal Vortex 2 type sound card.  The Montego II A3D apparently is a Dell OEM variant.

The big deal justifying an upgrade from Vortex 1 was A3D 2.0.  FWIW, it also adds a 10-band equalizer and more choices for chorus/reverb effects.  Apart from that, though, the functionality and quirks wind up being very similar.

Linux (4.2)

The relevant module is snd_au8830.  There is no synth, but there is an abundance of subdevices for hardware mixing.

Card 0, ID `au8830', name `Aureal Vortex au8830'
  Device 0, ID `Aureal Vortex 2 ADB', name `au8830 adb', 16 subdevices (16 available)
    1..2 channels, sampling rate 5000..48000 Hz
    Sample formats: U8, S16_LE, MU_LAW, A_LAW
  Device 1, ID `Aureal Vortex 2 SPDIF', name `au8830 spdif', 1 subdevices (1 available)
    1..2 channels, sampling rate 32000..48000 Hz
    Sample formats: U8, S16_LE, IEC958_SUBFRAME_LE, MU_LAW, A_LAW
      Subdevice 0, name `subdevice #0'
  Device 2, ID `Aureal Vortex 2 A3D', name `au8830 a3d', 16 subdevices (16 available)
    1 channel, sampling rate 5000..48000 Hz
    Sample formats: U8, S16_LE, MU_LAW, A_LAW
  Device 3, ID `Aureal Vortex 2 WT', name `au8830 wt', 64 subdevices (64 available)
    1..2 channels, sampling rate 8000..48000 Hz
    Sample formats: S16_LE

AlsaMixer provides controls for the 10-band equalizer.


2013-01, 865PE:  The recommended drivers from Dell fail to install legacy audio.  This error has a workaround, but the workaround requires a newer version of the drivers than Dell uses.  Moving the card to a different PCI slot as the error message suggests doesn't actually help.

The retail Montego II drivers ("WARNING:  Not for Dell Montego") actually worked, but they blue screened after the Sound Blaster Pro emulation was installed and thus never installed the apps.

I got the best results with Aureal's generic AU8830 drivers (version 4.06.2048) which are available from VOGONS.  If run without patching they replicate the PCI bus error shown above, but the problem is avoided by uncommenting the line HKR,Config,DisableBusDetection,1,1 in AU30MMED.INF before installing the drivers.  (There is no installer executable; they are installed through the "Browse" method when Windows searches for drivers.)

The drivers would not tolerate a second audio device or game port; the motherboard's integrated devices had to be disabled in BIOS setup.

2014-07:  Success was not reproducible on the PT880 Ultra chipset.  The sound drivers corrupted the system somehow.  Firstly, they broke "Primary IDE controller," disabling the CD-ROM and causing Windows to prompt "To finish setting up your new hardware, you must restart your computer. Do you want to restart your computer now?" on every single boot without end.  Secondly, DOOM would crash or hang.  The only configuration that didn't crash pretty fast was running in a DOS box using the OPL3 emulation for music.  I couldn't test DN3D much without a working CD-ROM, but all the sound tests were OK in setup until Windows crashed.  Going back and trying the retail drivers, they did not blue screen but neither did they solve the problem.

2015-09, 440BX (Dell R450):  Now comparing the 4.06.2048 drivers to recent experience with the Vortex 1.  The installed sound font AU30GM.ARL is identical to the AUREALGM file that was seen earlier.  The sound font Download button now accepts SF2 files, but they still don't work right—the drums looped on both Scc1t2.sf2 and Unison.sf2.

In the mixer, the "Advanced Controls for Volume Control" aren't there anymore, but the relative volume of Wavetable and Wave Out is just as unbalanced.

Sound effects are still glitchy in DOOM and the synth still gets itself hosed.  Enabling chorus and reverb caused the drums to stop working in DN3D and they didn't come back after disabling effects and doing a cold reboot.  They eventually came back after some random flailing with music settings and checking things out in a DOS box.

Changing DMAs is the same as with the Vortex 1.  The config file is now called AU30DOS.INI, but the only difference in content is that [ASP4DOS.COM] changes to [AU30DOS.COM].


2014-07, PT880 Ultra:  Everything crashed.

2015-09, 440BX (Dell R450):  Similar to Vortex 1.  The sound effects glitching wasn't as bad and the OPL3 emulation seemed better as well.  The bad news is the crashing and corruption issues were exactly the same and VORTMIX still didn't work.

Apart from renamings, configuration is the same as for Vortex 1.

REM This must match the configuration in AU30DOS.INI.

CT4830 Sound Blaster Live! Value OEM (EMU10K1-SEF)

Linux (3.15.3)

2014-07, PT880 Ultra:  The module is snd_emu10k1.  The synth is usable from Linux, though getting it initialized can be a bit flaky.  In theory, you just load any SF2 soundfont with asfxload and then play a mid file with aplaymidi, but when attempting to do that after a reboot I usually get the error "No Emux synth hwdep device is found."  The strange workaround is to do aplaymidi -l first, then asfxload -i [soundfont].sf2.


As originally tested:


Card type

Tested onDriversDrivers needExperience

CT4830 Sound Blaster Live! Value (OEM)

EMU10K1-SEF, 48 kHz

440BX, Pentium IICreative SB16 Emulation Driver, Version 5.00DOS + EMM386 with VCPI enabled (I used: JEMMEX.EXE NOEMS)
  • Like Live! 5.1, only worse
  • Defaults to digital output only
  • Emulates Sound Blaster 16
  • OPL3 emulation causes DOOM to stutter and slow down (no such problem with General MIDI)
  • DUKE3D could not initialize sound effects*
  • Did not try Windows 98 drivers CD

* Live! cards versus Duke Nukem 3D:  testing sound effects in setup failed with "Playback failed, possibly due to an invalid or conflicting DMA channel.  Make sure the 16-bit DMA channel is correct."  The DMA channel was correct.  Things that didn't help:  V4.00 drivers; reserving IRQ and DMAs in BIOS; using Microsoft HIMEM and EMM386; enabling EMS; using the most basic Sound Blaster option in DUKE3D setup (which should not have required a high DMA at all).

2015-04:  Reproducing success with this very common card was incredibly difficult.  The failures were multi-layered:

Here is the working configuration, in painstaking detail:

The driver provides both OPL3 emulation and General MIDI, but the OPL3 emulation is fatally flawed.  It has excellent timbre, but the speed at which music plays is both too slow and inconsistent.  Since this occurred essentially the same way with a P4 as with a Pentium II, slow CPU is not the problem; the emulation is just laggy.

General MIDI with an ECW soundfont works smoothly in both DOOM and DN3D.  The DN3D initialization problem that occurred in the original test with the Pentium II did not reproduce.

The choices of ECW soundfont, IRQ, DMAs, and ports are coded in the config file CTSYN.INI.  SBEINIT.COM modifies the BLASTER variable accordingly, but it has to be set first anyway or it will remain unset.

SET BLASTER=A220 I5 D1 H5 P330 T6

Note that the emulation type is T6 (Sound Blaster 16) instead of the more common T4 (Sound Blaster Pro 2.0).


2015-04, 865PE:  Version of the VxD drivers installed and worked with no drama other than the need to deselect "Digital Output Only" in the advanced mixer settings.  The sound font used by Windows Media Player and Creative's own .mid player can be changed using Creative's AudioHQ app, but DOOM and DN3D running in DOS boxes are oblivious to this and always use the DEFAULT.ECW soundfont.  Similarly, changing the MIDI output device to Creative S/W Synth affects Windows apps but not the games.  Thus, unless a third-party softsynth can be made to work, the net functionality for games is no better than what was possible under plain DOS.  (The AWE64 was able to change sound fonts for DOS games within W98SE, as was the Sound Blaster Live! 5.1 using WDM drivers.)

The conflict with DOS/32A did not reproduce in DOS boxes.

Many different WDM drivers were tested but none of them worked with the 865PE motherboard.  Some would install but produce only noise; others would not even install.  Notes indicate that some WDM drivers worked on the PT880 Ultra motherboard as far as regular Windows sounds and Windows Media Player were concerned, but games always locked up at launch.

SB0100 Sound Blaster Live! 5.1 (EMU10K1-NGF)

2015-10, 440BX:  After achieving success with the CT4830 I just wanted to see if the 5.1 would work similarly.

Linux (4.2.3)

snd_emu10k1 again.
 Port    Client name                      Port name
 16:0    SB Live! 5.1                     EMU10K1 MPU-401 (UART)
 17:0    Emu10k1 WaveTable                Emu10k1 Port 0
 17:1    Emu10k1 WaveTable                Emu10k1 Port 1
 17:2    Emu10k1 WaveTable                Emu10k1 Port 2
 17:3    Emu10k1 WaveTable                Emu10k1 Port 3


The drivers and configuration that worked for the CT4830 on an 865PE motherboard also worked for the SB0100 on a 440BX motherboard.  The one notable difference is that OPL3 emulation is not laggy with the SB0100.  It still causes horrible glitching of sound effects, however.  DOOM's stereo OPL3 switch doesn't work.

Sound got hosed at one point but came back after a reboot.

MPXPLAY defaults to SB16 but also works with –scs SBA.


Very few of the many SB Live! driver sets that are out there correctly support this card; the ones currently available from Creative's own web site do not.  The set called CT4780.ZIP on Vogons contains WDM drivers version that work if installed by the browse method, but no apps are included and the joystick installation is borked.  A fully functional installation of drivers and Creative apps is possible with the June 2001 Sound Blaster Live! 5.1 Install CD, which contains WDM drivers version

BLASTER is A220 I5 D1 T4 P330.  There is no OPL3 emulation, but DOOM and DN3D both run reasonably well in DOS boxes with music sent to General MIDI.  Music slows down and sound effects break up when the CPU is overloaded, and there is some glitching of sound effects in DOOM as there always is with WDM drivers.

The drivers provide "A" and "B" versions of the MIDI synth, reportedly to get around a 16-channel MIDI limitation.  The CT4780.ZIP drivers furthermore add a Creative softsynth.

Amazingly, when the sound font is changed in AudioHQ, it actually works for General MIDI output from DOOM and DN3D!

Magitronic DCS S727-SB (ES1370 AudioPCI)

A PCI card with a single hardware clock that operates at 44.1 kHz instead of 48 kHz.  The codec is an Asahi Kasei AK4531, which I think has an 18-bit DAC.  Only a speaker out jack, but the output is of good quality.


2014-02, MVP3:  I have been unable to locate DOS drivers that work with this mobo.  The Creative drivers being distributed from MAME as SBPCI64.zip get through initialization without failing and the mixer seems to operate, but APTEST always gives "DMA test failed" and no applications are able to produce sound.

2015-05, 440BX (Dell R450):  OK, with the same drivers I got sound, but there are still problems.


The choices of ECW soundfont, IRQs, DMA, and ports are coded in the config file SNDSCAPE.INI.  APINIT will not run unless BLASTER is set.  It also fails if the old version of DOS4GW that is bundled is upgraded.

As with all cards in this series, an EMM is required for the legacy audio, and General MIDI works with any of the three ECW soundfonts.

After testing originally with FreeDOS and JemmEx, I reproduced the DOOM failure using the W98SE kernel both with JemmEx and with HIMEM+EMM386, and without DOSLFNMS or CPU idle.

The PCI128 drivers that worked better for the ES1373 card did not detect this one.


2014-06, PT880 Ultra:  I tested three versions of Creative's AudioPCI / Sound Blaster PCI 64 drivers but none of them worked in the slightest.  Through this thread I located a pre-acquisition Ensoniq driver distro:

Archive:  audiopci.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   248832  06-30-1997 15:13   Wizard.exe
     8192  06-30-1997 15:30   _ISDEL.EXE
     6128  06-30-1997 15:30   _SETUP.DLL
    21703  06-30-1997 15:30   _SETUP.LIB
     8256  04-02-1997 16:18   CLNUTIL.DLL
     1280  03-12-1997 08:50   CLNUTL16.DLL
    18432  03-12-1997 13:59   clnutl32.dll
    68829  06-30-1997 09:47   eapci.vx_
   327364  06-30-1997 14:27   EAPCI.Z
      184  11-12-1996 19:16   eapci_ss.in_
  2257237  01-28-1997 18:19   eapci2m.ecw
  4995408  01-28-1997 17:06   eapci4m.ecw
    45113  06-30-1997 09:49   eapci95.dr_
     5389  05-22-1997 09:52   eapci95.hl_
     4553  06-27-1997 14:44   eapci95.inf
   140934  05-27-1997 14:45   ensmix32.ex_
    22528  02-20-1997 14:59   IWLang.dll
    10175  05-27-1997 14:49   mixres32.dl_
    45312  06-30-1997 15:30   SETUP.EXE
     6455  06-30-1997 15:30   SETUP.INS
      189  06-30-1997 14:27   SETUP.PKG
    10574  05-27-1997 11:43   starter.ex_
   282766  06-30-1997 15:30   _INST16.EX_
---------                     -------
  8535833                     23 files

The installation process stopped with "The ENSONIQ AudioPCI hardware has not been detected in your system:"

The ENSONIQ AudioPCI hardware has not been detected in your system.

But after a reboot it was there and working with no obvious problems.  It even provided a separate mixer with controls for Spatial, Reverb, and Chorus.

Ensoniq Mixer Version 1.00.09, 1996.

In summary, you get Ensoniq General MIDI and a 44.1 kHz sample rate, but not without the SBPro channel-swapping problem.

Wait, we missed something important here:  OMG!  Ensoniq's legacy audio drivers worked on a PT880 Ultra chipset!

Linux (3.13.4)

The ALSA module snd_ens1370 detects and operates the card.  Two devices are reported with different sampling rate ranges as if there were a 48 kHz clock present:

*** Scanning for playback devices ***
Card 0, ID `AudioPCI', name `Ensoniq AudioPCI'
  Device 0, ID `ES1370/1', name `ES1370 DAC2/ADC', 1 subdevices (1 available)
    1..2 channels, sampling rate 4000..48000 Hz
    Sample formats: U8, S16_LE
      Subdevice 0, name `subdevice #0'
  Device 1, ID `ES1370/2', name `ES1370 DAC1', 1 subdevices (1 available)
    1..2 channels, sampling rate 5512..44100 Hz
    Sample formats: U8, S16_LE
      Subdevice 0, name `subdevice #0'

ALSA's default configuration is problematic.  It wants to upsample everything to 48 kHz.  Using the hardware devices directly avoids that, but the ramifications of the different sample rate ranges for the two devices remain murky.

bash-4.2$ aplay --disable-resample track03.LaundryService.wav
Playing WAVE 'track03.LaundryService.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Warning: rate is not accurate (requested = 44100Hz, got = 48000Hz)
         please, try the plug plugin (-Dplug:default)

bash-4.2$ aplay -Dhw:0,0 --disable-resample track03.LaundryService.wav
Playing WAVE 'track03.LaundryService.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

bash-4.2$ aplay -Dhw:0,1 --disable-resample track03.LaundryService.wav
Playing WAVE 'track03.LaundryService.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

2014-06:  OK, so it turns out that the card will actually accept input at 48 kHz but it does something weird and plays it off-pitch.  This at least explains why ALSA believes 48 kHz to be a valid choice, but consequently the 48 kHz rate has to be carefully avoided.  The two separate stereo DACs must relate to the card's implementation of 4-channel sound.

CT5803 Sound Blaster AudioPCI 64 Dell/Gateway (ES1373)

Enhanced detail of Creative-branded ES1373 chip.  Only faint lettering was left after a round sticker was pulled off.

The single output jack claims to be line level but is plenty loud and noisy.  At high volume the higher frequencies get crowded out somehow.

Linux (3.15.5)

The module snd_ens1371 is used for ES1373 too.  aplaymidi –l shows only a single port, which I assume is the MPU-401 not the synth.  Wav output is normal.  The card's internal resampling from 44.1 kHz is middle-of-the-road.


2015-10:  Testing on PT880 Ultra produced the familiar crashing, lockups, and spontaneous reboots in DOOM and DN3D, so I have gone back to 440BX to get the baseline.

With FreeDOS, JEMMEX NOEMS, and no UIDE, the PCI128 drivers shown below worked apart from printing the wrong product name.

SET BLASTER=A220 I5 D1 H5 P330 T6

I also tested the AudioPCI 64V drivers shown below.  They initialized OK and worked for MPXPLAY and MEGAMID, but DOOM and DN3D both crashed in a matter of seconds, and the voice channels were reversed.



"An existing Sound Blaster Vibra128, Sound Blaster 16 PCI, Sound Blaster PCI 128, Sound Blaster Ensoniq AudioPCI, or Sound Blaster PCI4.1 Digital software package must be installed before installing this update."  Not!

2014-07, PT880 Ultra:  Although Creative's product list clearly identifies CT5803 as an AudioPCI 64 OEM version, none of the driver sets for Sound Blaster AudioPCI 64V that I tested were recognized by Windows as being applicable to the installed card.  OTOH, the Sound Blaster PCI128 Driver Pack and/or "Web Update" SBPCI_WebDrvsV5_12_01.exe from Creative's web site installed smoothly with no error messages and made Windows unbootable (yay).  It locked up at the splash screen every time.

This time I would not give up easily.  Examination of the non-bootable partition revealed that Creative's installer had modified CONFIG.SYS to load both HIMEM and EMM386, which under W98SE is only going to cause problems:


Removing those two lines, Windows booted and the sound was working!

The sound initially seemed messed up, but it was only because spatial and reverb effects had been enabled by default.  They can be disabled using the Advanced Controls in the mixer, which is accessed by double-clicking on the volume widget.

In a DOS box, BLASTER=A220 I5 D1 T4 P330.  There is no OPL3 emulation, but DOOM and DN3D both run well with music sent to General MIDI.  The channels are not reversed.  Windows crashes or locks up every time that DOOM exits, but at this point I can live with that.

Sound effects in DOOM are a little bit glitchy.  Under Control Panel → Multimedia → Audio tab → Playback, Advanced Properties → Performance tab there is a slider to adjust the sample rate conversion quality; changing this from best/slowest to good/fastest seems to reduce the problem but not eliminate it.  (Apparently, everything gets resampled to 48 kHz in software before it even gets to the sound card.)

There's no menu option that I can find to switch from the installed EAPCI2M.ECW soundfont to something else, but copying EAPCI8M.ECW onto EAPCI2M.ECW does it.  Alternately, you can skip the Ensoniq synth entirely and route MIDI to the Microsoft GS softsynth to get the Roland soundfont.  I dislike what EAPCI8M does to DOOM's E1M1 music (those fading guitars), but for "Sign of Evil" (E1M8, E3M4, and E4M1) it's quite good.  (That was with reverb on, chorus off.)

As with the SB Live!, there are billions of different driver distributions that might apply to this card.  Some of them might work better, include useful apps, desist from sabotaging CONFIG.SYS, or avoid the crash when DOOM exits.  But after that litany of failures, now that something is kind of working on the PT880 Ultra motherboard I am in no hurry to mess with it.

ASRock 4CoreDual-SATA2 R2.0 on-board audio

With no support for DOS or W98SE at all, the integrated sound on this motherboard wouldn't be worth mentioning except that it was ridiculously hard to figure out how to get it working in Linux and I wanted to document the successful workaround.

This VIA PT880 Ultra chipset board comes with an ALC662 rev. 1 5.1 channel codec and a sticker covering up the "7.1 CH HD" text printed on the board.

2014-04, Linux kernel 3.14:  I think there were two separate but interacting problems.  The first problem is that the VIA HD Audio module can be loaded by mistake and cause conflicts.  Disable that and enable only the Realtek HD Audio module:

The second and worse problem is that the HD Audio module fails with different, random, serious errors almost every time, sometimes crashing the kernel during boot, unless the debugging option single_cmd is turned on.  To do this on Slackware 14.1, create a file /lib/modprobe.d/alsa.conf containing options snd-hda-intel single_cmd=1.  The kernel Documentation file ALSA-Configuration.txt states, "Remember this is a last resort, and should be avoided as much as possible..." but I am not aware of a better workaround.

And then there's the IRQ timing workaround, "Suggest a bigger bdl_pos_adj" error that happens a lot with HD Audio.  I got rid of it in this case by revising alsa.conf to options snd-hda-intel single_cmd=1 bdl_pos_adj=48.  The default value for non-Intel implementations is 32.

In its favor, the ALC662 does have a 44.1 kHz mode that is accessible by using device hw:0,0 directly instead of ALSA's default.  I'm a little vague on how this can possibly avoid resampling when there's no matching clock source that I can find, but it sounds good enough to be plausible.

One lingering issue is that there is no sign of the analog CD audio input in ALSA though the header exists on the motherboard.