First post, by Yart

User metadata
Rank Newbie

Note that this information isn't exactly new, but I can't find it compiled for anyone looking for a quick answer anywhere. I am writing this in hopes that it would help someone else configure their ESS Solo-1 card in pure DOS.

So a lot of people, including myself, has seen Phil's Computer Lab video about the PCI ESS Solo-1 card and bought one because it's quite cheap and has great compatibility with DOS games. (Personally I absolutely love the card and had great experiences with it so far) Supposedly you need to load some driver in CONFIG.SYS and then run a Windows applet to enable the card (which presumably writes ESSOLO.INI to C:\), but if you're running a pure DOS system you can create the ESSOLO.INI file yourself without the need of Windows or some ESSOLO.SYS driver. The big advantage of this is that you don't have to pray to the PNP gods and can set all the resources yourself. It is possible to enable/disable MPU401 and the Gameport, as well as even assign a new Sound Blaster address without Windows.

Running ESSOLO.COM without ESSOLO.INI will make the initializer complain and say:
"Please use Windows Software Applet to enable Sound Blaster, MPU401 and Game port for Real/Windows DOS"
However, if we create a file called ESSOLO.INI at C:\, we can use a hex editor such as Hexit to configure our card.
You can acquire Hexit here: http://mklasson.com/hexit.php

Our ESSOLO.INI file will contain 16 bytes. If you already have an ESSOLO.INI file it might look something like this.
40 02 01 00 88 03 05 00 01 02 30 03 02 00 00 00
In this example, Sound Blaster Address is set to 240h, DMA is 1, FM is 388h, IRQ set to 5, Gameport enabled (at 201h), MPU401 is enabled (at 330h), and we're using SB-Link.

Keep in mind that these bytes are read in Little Endian. Littlest side first. Here is a list of what each byte is responsible for and the possible values:
00: Sound Blaster IO (20 = 220, 40 = 240)
01: Sound Blaster IO (02 = 2xx (Cannot be changed))
02: DMA (00, 01, 03)
03: DMA (Not used and don't change, default 00)
04: FM Address (Default is 88 for 388h (Cannot be changed))
05: FM Address (Default is 03 for 388h (Cannot be changed))
06: IRQ (05, 07, 09, 10 (0A), 11-14 (0B-0E, serialized IRQ only))
07: IRQ (Not used and do not change, default 00)
08: Gameport Address (Default 01 for 201h (Cannot be changed)))
09: Gameport Address (Default 02 for 2xxh, change this to anything else to disable the Gameport)
0A: MPU401 Address (Default 30 for 330h, can be 00, 20, 30, 40)
0B: MPU401 Address (Default 03 for 3xxh, change this to anything else to disable MPU401)
0C: DDMA/TDMA/SB-Link (00 (DDMA), 01 (TDMA), 02 (SB-Link aka PC/PCI, set to this if using SB-Link connector on board))
0D: DDMA/TDMA/SB-Link (Not used and don't change, default 00)
0E: Not Used
0F: Not Used

It seems kind of wasteful to use two bytes for each parameter but hey, I'm not the one who designed this.

ALSO: If using SB-Link, make sure your BIOS has 'PNP OS Installed' set to Yes in your 'PNP/PCI Configuration' or else ESSOLO.COM will leave a TSR in memory when you run it.

So at the end of the day, place your SET BLASTER in AUTOEXEC.BAT, ignore ESSOLO.SYS. Leave ESSOLO.INI in C:\, and just run ESSOLO.COM in AUTOEXEC.BAT. You can of course still use ESSVOL.EXE if you want to set volumes too.

I hope you enjoy! And if anyone has anything to add (maybe there is a use for the final two bytes) or would like to make a correction please let me know! Thanks!

Reply 1 of 5, by henk717

User metadata
Rank Newbie

I certainly have something to add for the TDMA IRQ5 supported users, specifically my own zip file that i made to very easily setup the ESS Solo-1 on my retro computers.
Its based on the ESSINIT method already known on the forum, but with the settings suitable for my machine. I get a lot better game compatibility out of this than i get on the ESSOLO driver but the games that fail then do work on the solo. So combining the two is the best of both worlds.

I also set this up in such a way that the installation is incredible easy, simply extract this to a folder and run ESSINIT it will now initialize the ESS-Solo 1 and you should have working sound if your motherboard supports this method (Indeed enable PNP support, this should help with the IRQ stuff). My modified ESS-Init correctly uses 16-Bit instead of 10-Bit meaning that games like Doom 1 now work with music and sound. I have yet to try a game that fails on both the ESSINIT and the ESSOLO driver, most of them work on both. Out of the two the ESSINIT method is the better option because it leaves nothing behind in RAM and supports more games. But if your audio begins to cut out after a short while, or if it fails to detect the card you will need the ESSOLO driver for that game. When you run my version of ESSINIT it will automatically copy the configuration files for the ESSOLO driver to the correct place, and it will also setup a Audigy 1 in a driverless audio passtrough mode if you have one. Given the Audigy 1 + ESS Solo-1 combination does not conflict with each other and you then get the best of both worlds. If you do not want this you can remove the EK2M part of the script and zip file.

I hope this helps people with similar motherboards to mine to more easily get the most out of this card, it really is a phenomenal DOS card if you have the tools to utilize it fully. Oh and if your DOS game has a option for the ESS Enhanced FM make sure to pick it instead of the Yamaha OPL3 / ADLib / Soundblaster options. It will make the card sound even better!

And yes, you can use the ESSINIT before you load the ESSOLO driver since the ESSOLO driver resets the card. It won't reliably work the other way around though so if you do want to add this to your autoexec add the ESSINIT and that is all you have to do.


  • Filename
    File size
    71.83 KiB
    File comment
    ESS Solo-1 DOS Driver (ESSINIT + ESSOLO)
    File license
    Public domain

Reply 3 of 5, by henk717

User metadata
Rank Newbie

I also used Kamarat's method as well (ESSINIT) but Kamerat's file in WBDMA gave me worse results than setting it to TDMA with 16-bit addressing.
On TDMA and 16-bit Addressing its giving me great results in games like Doom.

Reply 5 of 5, by henk717

User metadata
Rank Newbie

Its from here : Re: Multichannel DOS mixer for DOS sound builds v0.49 for Live, v1.01 for Audigy
Doesn't need anything, you can use this without any memory messagers and it won't run in the background.
To my knowledge a Audigy 2 version was never made, so you will need either a soundblaster live using the version they provide, or an Audigy 1.