Alright, here we go. I hope everything is clear. Please let me know if something is unclear or broken:
Getting DOS sound to work using Compaq's Allegro/ES1988 WDM drivers (as opposed to VXD drivers)
Advantages of this method:
* Simple driver install
* No audio problems in Windows when ESSAUDIO.SYS is loaded via CONFIG.SYS
Disadvantages of this method:
* Have to directly boot to DOS if you want sound there, cannot boot to Windows first and then exit to DOS. With VXD drivers booting / exiting Windows is fine.
* Volume issues (same as VXD for now, more on this later)
What's in WDM-1.0.zip:
* ESSAUDIO.COM 2.31S: initializes the audio device with the settings from ESSAUDIO.INI
* ESSAUDIO.SYS 2.30F: [Update: this file doesn't have to be loaded. In fact, it's better not to] changes the IRQ of the PCI host bridge to the IRQ set in ESSAUDIO.INI
* ESSAUDIO.INI: for the following settings: I/O 220, IRQ 5, DMA 1
* PCISET.EXE: Used by ESSINIT.BAT to directly change settings of the audio chip.
* ESSINIT.BAT: set I/O, IRQ and DMA again, and changes internal settings that make audio work and not crash the system. I left some comments in the file about what it does.
* SP18965.EXE: Compaq provided WDM drivers for the Allegro
* ESSAUDIO.IN7: for the following settings: I/O 220, IRQ 7, DMA 1 (install as C:\ESSAUDIO.INI)
* ESSINIT.BA7: for setting the card to IRQ 7 (install as C:\ESSINIT.BAT)
Steps to install:
1. Install WDM drivers (via SP18965.EXE or any other)
2. Place ESSAUDIO.*, PCISET.EXE and ESSINIT.BAT in C:\
3. Place somewhere in CONFIG.SYS: DEVICE=C:\ESSAUDIO.SYS (note: this step could be skipped but without this sound doesn't work in Doom I/II/others?) (note 2: it doesn't stay in memory so DEVICEHIGH is not needed)
4. Place as the last line in AUTOEXEC.BAT: C:\ESSINIT.BAT
5. Reboot directly to DOS (using F8, a CONFIG.SYS boot menu or with BootGUI=0 set in C:\MSDOS.SYS)
6. Done, hopefully. The sound card should now be accessible to programs on I/O 220, IRQ 5 and DMA 1. BLASTER variable is also set.
Some games ask you to select the type is there. Sound Blaster Pro 2.0 will work but the stereo output might be reversed. With Sound Blaster 2.0 the stereo seems fine but perhaps it decreases sound quality, I can't tell.
Volume issue:
In some games the sound and/or music are really loud. I don't know why it's different and how to fix it yet.
An example of this: the "Test music" option in Duke Nukem 3D (V1.3D and 1.4) sounds fine but in the actual game it's really loud and sounds terrible.
Notes on certain games:
* Doom / Doom II: The game only starts when started using DOS32A (http://dos32a.narechk.net/index_en.html) as DOS4GW crashes. Music volume is reasonable compared to many other games.
* Skyroads: music and audio are way, way, way too loud
* Duke Nukem 3D: "Test music" in sound setup sounds fine, music in game is too loud and (perhaps because of that) distorted (also with headphones. RIP my ears)
* Syndicate: intro and game music very loud. Menu sounds work but ingame sound only works when the card is set to IRQ 7 (even if you configure the game to IRQ 5). I remember something similar from my childhood so this might not be the fault of the Allegro.
* Quake 1 v1.06: some sounds are cut off, seems to be random. You can hear it happen with (random) weapon/ammo pickups in the demo the game starts up with. Did not try v1.08.
* Rise of the Triad: works, music is quite loud and high notes sound strange (but that might be normal for the Allegro)
Credits:
* Kamerat on Vogons for coming up the idea of using PCISET to adjust the card settings (PCI sound cards and Chipsets from various manufacturers...)
* Uwe Sieber for PCISET
* Myself for putting way too much time into this, until I happened to try loading ESSAUDIO.COM first and then change some things with PCISET which made things work (at least for the Compaq N600c). After that it was just a matter of optimizing the settings.
Links:
* Technical documentation for the ES1988, contains details about the PCI registers that are modified by ESSINIT.BAT: ftp://ftp.alsa-project.org/pub/manuals/ess/ds … 8_3_18_00_1.pdf
I might make a step-by-step guide for VXD drivers at some point but it isn't too different:
* You have to force Windows to install the drivers (as it claims they're not for the correct card, which is not true)
* You need to ensure that the DOS emulation device is set to I/O 220, IRQ 5 and DMA 1 (might be the default but you never know)
* Check CONFIG.SYS, AUTOEXEC.BAT and [windows directory]\DOSSTART.BAT because the driver installation changes them. ESSAUDIO.COM should not be loaded separately, ESSINIT.BAT will handle it. DEVICE=C:\ESSAUDIO.SYS should also be removed from CONFIG.SYS
* The rest is the same
Am486 DX4 120MHz, no L2, 16MB, Tseng ET4000/W32 1MB VLB, ESS ES1869 /// 5x86 133MHz, 256kb L2, 64MB, S3 Virge/DX 4MB PCI, SB16 + Yucatan FX, PicoGUS /// Pentium III 1GHz, 512MB, Asus V7700 64MB AGP, SB Live!