First post, by LSS10999
I hesitated about writing something about this topic several times before... but I think I should put it here:
The ONLY and the MOST VITAL requirement of enabling legacy DOS audio support for capable PCI sound cards is that your motherboard MUST have a proper southbridge. If the southbridge does have PC-PCI or Distributed DMA (DDMA) support, then the card will definitely work under legacy environments.
As far as what I have tested, for AMD users, a VIA K8T890-based Socket AM2 motherboard with an adequate CPU (and probably a Black Edition Windsor/Brisbane one) is probably the farthest you can go to preserve legacy capabilities. It seems that these motherboards itself limit maximum RAM to 3.25GB, the traditional RAM limit on 32-bit OSes, despite it can be expanded to a theoretical 8GB. K8T890/VT8237A boards from ASUS and ASRock are so far the best ones as they don't appear to have the aforementioned hard RAM limit after enabling Memory Hole Remapping. The one I am now currently using is ASUS M2V. Presumably all VIA southbridges as far as VT8237x retain legacy capabilities to some extent. Older VIA southbridges such as VT82C686B have real DDMA, and is probably present in all VT82Cxxx southbridges and also partially present in almost all VIA southbridges...
No matter what I do, all nVidia nForce chipsets, including current ones like nForce 720D (MCP78), would only play FM music on those PCI sound cards. SFX cannot be played, and sometimes the games would crash if it ever tries to play SFX. And the reason why nVidia chipsets are partially supported seems to be that they started making chipsets since around 2001 starting from nForce 220, and chipset designs were partially similar at that time. Also, it seems some newer ESS sound cards (probably Allegro and Canyon3D) appeared around 2002 are still backwards-compatible with DOS using traditional technologies. (It was proven true, as someone has mentioned that replacing an old VIA motherboard with a similar nForce motherboard resulted in legacy audio non-functional, despite the computer itself is still the same.)
Intel motherboards with ICH6+ has the same problem... for most sound cards, only FM/Adlib can be played, no SFX. The only card that can play SFX in DOS on it is Aureal Vortex (AU88x0). However, I'm experiencing fewer crashes when testing on GA-P31-DS3L (with ICH7), maybe because I did not load any other drivers or it is just that it does not produce as many errors as nForce ones... (Technically, those current DOS system drivers, though using significantly fewer conventional memory, can create more issues with DOS programs than the ones from MS-DOS)
As of now there are still some places that have ISA-equipped boards for current Intel CPUs but the ISA ports on those with ICH6+ southbridges are most likely Slave ports that do not offer DMA needed by sound cards, but likely unimportant to ISA cards used for industrial purposes. Those boards would accept Sound Blaster cards in their ISA ports, but attempting to initialize DMA would fail.
Later AMD boards (previously ATi boards) have no legacy capabilities. As of 700/800/900 series chipsets, their southbridges (SB7x0/8x0/9x0) would either load the drivers but games won't detect their presence, or that they would refuse to load the drivers citing they cannot detect anything.
So far the southbridge compatibilities for PCI audio cards are as follows:
Intel: Up to ICH5x through PC-PCI. Only FM/Adlib possible on ICH6+, except Aureal AU88x0 where SFX may partially work (tested on GA-P31-DS3L, Intel P31/ICH7).
VIA: DDMA capable as of VT82C686B and probably still present in all up to VT823x series southbridges. On VT8237x, AFAIK only ESS Solo-1's DOS driver can still work in most scenarios.
AMD(ATi): Legacy audio is not possible on AMD southbridges, along with many other legacy functions other than audio (such as IDE caching). Such audio drivers will load on these systems, but the system and programs cannot communicate with the driver and thus they'll still function as if the drivers weren't present even after loading them.
nForce(nVidia): Only FM/Adlib possible on all chipsets. The situation is similar to that of Intel ICH6+, implying no native ISA DMA support since initial design, and shares traits with ICH6+ in some aspects.
I have no idea of chipsets of other manufacturers as of now (SiS, ULi, etc.) for I don't have info or boards to figure them out. If anyone has such experience with those chipsets feel free to share.
Creative Sound Blaster PCI and Live! can probably, never be able to be supported again, due to the function of SERR# to NMI routing has been partially or completely broken on new motherboards such as on Intel ICH7, according to RayeR. It is possible to re-enable SERR# to NMI routing on ICHx by software (which he did) so the driver can be loaded, but only FM/Adlib will work given the chipset no longer has ISA DMA. It may be possible to make tools to manually enable SERR# to NMI for other chipsets as well provided they retain some legacy capabilities, this way SBPCI and Live!'s legacy functionalities can be used on more places.
As tested, Aureal Vortex (AU88x0) is the only card capable of producing SFX sound on a wider range of current motherboards, though I experienced loops when tried on nForce-based motherboards, at least for what I tested on the ICH7 motherboard, it is the only card that can play SFX. So perhaps Aureal cards are the only ones that are truly chipset-independent when it comes to legacy capabilities (though how they managed it was not publicly known). It is also best for some vintage DOS/Windows games that supported and utilized A3D. FM Music on these cards may vary. Some cards may sound authentic, but the FM on my own Turtle Beach Montego A3DXStream (AU8820) sounded a bit off-pitch compared to a real SB16.
As far as I know, only three sound card chips can provide both Sound Blaster Pro and (near) authentic Adlib FM music.
ESS Solo-1 (ES1938)
This PCI sound card has the best compatibility through ESS' Transparent DMA (TDMA). In TDMA mode it uses about 1.5K of base memory while it doesn't use any base memory if in DDMA mode on old chipsets. It supports early VIA chipsets like KT133A flawlessly. On my old VIA K8T890-based GA-K8VT890 (Socket 754) motherboard, I haven't seen any apps crash on DOS with the driver loaded. The onboard ESFM synth can play Adlib music near-authentic. I have heard only one music has some defect with this card, and it is the track "One Mustn't Fall" of Tyrian 2000. Also, unlike some other PCI cards, ESS Solo-1 does not register itself as a Sound Blaster Pro to make certain apps think that a Sound Blaster Pro is installed, and thus auto-config in some game's setup program would not work and you have to input the settings manually. It requires Win95 Legacy Audio installed, but this can be solved by loading the respective SYS file (ESSOLO.SYS, or ESSAUDIO.SYS if you use newer Allegro-compatible driver) in CONFIG.SYS, before loading the actual ESSOLO.COM.
It works almost flawless on VIA K8T890/VT8237x based motherboards, even on Socket AM2 boards that used the chipset.
Later ESS cards (Maestro, Allegro), however, cannot provide the near-authentic FM music like Solo-1, as they don't use the ESFM synth anymore.
Fortemedia FM801
It uses a proprietary technology to ensure compatibility, but it's not as compatible as ESS' TDMA. It uses about 1.8K of base memory, but many programs would crash with runtime errors or something, especially on my K8T890-based motherboards. I cannot test too much about the onboard FM synth, but so far the music from those games I can run with that card sounds authentic. I haven't tried too much about it since it would crash the system on nVidia boards though it can theoretically produce only FM music. Also, on FreeDOS, it seems it requires Win95 Legacy Audio (which is not possible) installed beforehand, and I don't know how to enable it.
YAMAHA YMF7xx
The one I had was a YMF744. It has a genuine OPL3 FM chip on board. However, it doesn't seem to have a known chipset-independent workaround, and the settings were locked to "Port=220, IRQ=INTA#(5), DMA=1 using DDMA at 8000" for most motherboards. It was said such settings can be changed only on 440BX motherboard (which was at least a decade ago). The card may still have the potential to work on other chipsets, just the driver itself is unlikely to work properly with modern motherboards due to SETUPDS couldn't handle other chipsets properly.
Supports only FM music on all nVidia chipsets and later VIA chipsets. It's in fact a DDMA-dependent card and are not aware of modern motherboards, and it makes the system unstable and crashes a lot. The FM chip will work chipset-independent as it's a native, genuine FM synth that will happily assign itself to port 388h, but unfortunately it will not work properly on later AMD chipsets as legacy compatibilities on those chipsets are completely gone.
CMI8738 was said to support DOS, but in fact, it doesn't. Even those onboard CMI8738/9739 that existed on some motherboards don't seem to support DOS properly, while the drivers will not load and saying cannot find PCI device on newer boards.
So far, as for my own experience, sound is the only thing that prevents modern PC to run DOS games properly. Though graphics may have some distortions on some games with some modern graphics cards, but it may not be as tough as supporting sounds. As far as I know, all current video cards should be able to function in DOS without problems.
Many of those sound chip manufacturers are out these days, but I don't know if there can be anything to be used as a reference on how to improve legacy DOS compatibility... Like that Aureal Vortex has at least working SFX on many chipsets while ESS experiences fewest errors and crashes on compatible chipsets... And by the way, I am still wondering if there are any references for some DOS audio APIs such as Miles Sound System and DIGPAK... maybe it is possible to build drivers for PCI cards around these APIs so at least games using these APIs can work directly... MPXPlay, a DOS music player, for example, can work with many current audio cards including onboard AC97/HD audio using its own ways.
Recent emulations don't seem to be as good as to be considered authentic. Especially if you played those games on real platforms in the past, you may at times feel that the graphics aren't as good and smooth as in real DOS. The use of scalers and pixel shaders in DOSBox would offer various results, sometimes better, other times worse. Also, some games experience audio lag... when I tried playing Terminal Velocity with default settings under DOSBox, the game looks smooth, but the ingame SFX are played a bit late (for example, after firing the weapons, the sound comes around 200-300ms later).
Generally, you can use DOSBox to emulate a very slow computer out of box, that will make your very old 80s games that will generally run too fast on 386/486 or later to run just fine. However, if you want to play a rather recent DOS game, you may need some serious tweaks. Old Apogee Games like Caves of Thor (tested) will work out-of-box with auto settings.
As for speed, manually setting a CPU cycle of at least 10000 may be needed for DOSBox to play a modern DOS game smoothly, and some games requires more. Usually with DosBox set to around 20000-30000 cycles and with Pentium instructions enabled will be adequate for most modern DOS games at their highest possible quality (be sure to adjust video options as well). Keeping all the CPU settings to auto will, in my case, only give you a slow 80s-compatible CPU.
EDIT: Updated.
EDIT2: A late update concerning RayeR's SERR# to NMI routing enabler tool... I don't know how he actually achieved that but if the same can be done to the VT82xx (like VT8237/R/A/S) southbridges then those boards will probably be able to make good use of the Sound Blaster Live! in DOS as many cards I tested can play both FM and digitized audio samples on those southbridges while other southbridges failed...
EDIT3: Another update.
EDIT4: ESS drivers don't work well with ICH5 for some reason (using MSI 865GVM3-V as an example, which has ICH5) as it couldn't detect its PC-PCI (using TDMA), nor play SFX (it may be instead due to incorrect IRQ assignments as something else onboard was taking IRQ5/7). This is probably due to the fact that the DOS drivers were developed around the time of 440BX (PIIX4) and similar chipsets, when both ISA sound cards and PCI sound cards were used, and were not updated since, despite the fact that some chipset manufacturers maintained legacy support for an extended amount of time.
Under this assumption, it seems that either DDMA probably had always existed in VIA's desktop southbridges up to VT8237x and VT8251, similar to the case of ICH5, or that only VIA chipsets were able to actually make use of ESS' TDMA implementation. As a result, since ICH5 and before can still support ISA DMA, if one needs legacy audio on ICH5 an ISA audio card would be the only option.
EDIT5: It seems searching around the net and some documents have made things clear that as of now, ICH5 is the end of the line for *proper* ISA DMA support. It cannot be implemented on PCH (as for MS-98A9). However, it seems to be still possible to implement ISA DMA in software such as in BIOS, which AMD did for some G-series embedded boards/SBCs to provide fully ISA DMA capable PC/104 ports (which itself is technically ISA though physically different).
EDIT6: Another revision.
I currently have an IEI IMBA-G412ISA board which has two ISA slots. As expected, the ISA slots do not support DMA, thus only FM is possible using an ISA Sound Blaster card, and that games' setup programs would complain about DMA not working. It's strange as the board actually offered options to reserve DMA channels and memory in BIOS, but I do not know what those options really for as they doesn't seem to have any effect in actually making the ISA sound card working. Still, the board provided quite a few interfaces, and features an animated BIOS boot screen.
EDIT7:
There's been some success on getting DSDMA working on newer chipsets for YMF7x4 sound cards. It requires EMM386 to be loaded, with both FM and digitized sound working. Check his post for more details.
Also, it appears that the most recent chipsets (especially since Haswell) no longer provide native PCI slots, and manufacturers have to use PCIe-PCI bridges to provide them, which has a fatal limitation that it cannot access addresses below the card's base address where Sound Blaster (0x220), General MIDI (0x330) and FM Synth (0x388) are located, preventing those cards from working properly not only in DOS but also in supported platforms that may make use of those ranges. Though not confirmed, it's possible this is also the cause of them being incompatible with AMD 7xx/8xx/9xx chipsets as well.
EDIT8:
This original post hasn't been updated for a while, but a lot of related discussions continued here and in other threads, with a lot more informative posts. I think it's time to list a few good threads to keep on reading and discussing (credits to respective OPs). There might be more:
X58/i865/V880 - Yamaha7x4/AureaV1/2 pure Dos7.1- compatibility list/research/ ultim. drivers configs, WIP- gurus needed
PCie-to PCI, PCI to ISA, # of slots multipliers - bridges, risers, backplanes, research, especially for DOS, WIP.
PCI or PCI Express Sound Card for DOS Sound Blaster Sound Effects working on Intel Sandy Bridge Z68 or newer chipsets