First post, by JazeFox
I made a DOS tool for my own use some months ago, but now I decided to release it, because I think it may be useful for someone else, so here it is:
It is called "Unisound", or Universal ISA PnP Sound Card Driver for DOS.
Current version is: v0.76f (Download link at the end of this post).
UNISOUND is a Freeware DOS-only tool useful to configure and initialize ISA PnP sound cards from serveral brands and models, like ESS, Creative, ALS, CMI, ADI, Yamaha, Diamond tech, Aztech, OPTi, Crystal, community-made ones like Orpheus, AWE64 Legacy... (And also some non-PnP cards, like early SB16 software configurable models which required DIAGNOSE.EXE, are supported). Works on all x86 CPUs (8088/8086/286/386... and higher). Check the TXT included in the ZIP file for full details. To get command line help, use: UNISOUND /H
It is not only an ISA PnP sound card configuration tool, it's more like a driver. To initialize some cards properly, the PnP part is not enough, as a lot of them need further initialization sequences that in most cases are bad documented or no documented at all, or are obscure. This tool tries to be (almost) all-in-one solution, trying to do a full card initialization, and set some mixer values, in only ~40Kb. (Some cards as AWE cards, GUS PnP, or Maxi sound 64+SAM, CS4232... require special inits or firmware uploading. That is covered in the tool).
This tool has taken a lot of time, researching over technical documentation of the card's/chip's manufacturers, reverse engeneering, and having some headaches, too.
I wrote a complete TXT (it is included in the ZIP file I attached at the end of the post) to explain it (background, usage, supported cards in this version, special notes, tested systems, version history...).
This tool is FREEWARE! You can use an distribute it freely. If you paid for it you have been scammed!
Here is a small extract of the important parts of the readme (read the TXT in the ZIP file for a more extense explanation):
Extract From 1- Background ========================== […]
Extract From 1- Background
The main problem when you want to use your sound cards, is the
configuration and initialization, as it depends on a lot of stuff, like:
The type of CPU , if the machine has a PnP BIOS or not the PnP software to
use (CTCM/CTCU for Creative, Intel ICU, propietary software for others)
so finally you end up having a lot of files and a big mess of CONFIG.SYS and
Tired of all that stuff, I wanted to do something to minimize everything
involved to my card's initialization. Only one file, very small size,
(in fact it could be used to be fitted even in a floppy disk together with
a game if you want), and no need for anything else to get a card working,
with mixer settings (Master vol, Wave/DAC vol, FM/Synth/WT vol, Line-in vol,
Mic vol, CD vol and some more for Creative cards like Trebble, Bass...).
Some "useless" stuff disabled by default (Modem, IDE...) Well, IDE is
disabled by default but it is user-configurable with a custom parameter in
BLASTER environment variable Cxxx. Check the Usage section (2) of the TXT
for more info on this.
This tool does *NOT* check for resource conflicts, so if you configure your
cards with already used ports, IRQs, DMAs... you may notice problems, like
hangs, corruptions, even damage to your data if you are not careful. You
have been warned!! I am not responsible for any damage.
In addition, this tool does not check if the settings you provide are right
or wrong (only very basic check like usual ranges of addresses and IRQs...,)
and will try to avoid some known issues with duplicated DMAs in some cards...
you are supposed to know what are you doing. *Use at your own risk!!*
Extract From 2- Usage ========================== […]
Extract From 2- Usage
UNISOUND (without options): initializes 1st PnP card found in the system
with internal default resource settings and the following Mixer volume
defaults: ~85% Master vol, 80% Wave vol, 80% FM/Synth vol, 0% Line in vol,
0% Mic vol, 0% CD vol. And for compatible Creative cards, Treble and Bass
levels are 50% by default, and PC SPeaker-in 0%.
Check below for command line options (for more than 1 card present, use
/Cn option, to select the n card to initialize)
The tool default values, if no environment variable is found, are (optional
args for some cards with special resources are between brackets):
For SB or SB compatible cards:
ADDR: 220, IRQ: 5, DMA1: 1, DMA2: 1, MPU: 330, (AWE: 620), (WSS: 530), (JOY: 200),
(CD-IDE: 0), (OPL: 388), (MPUIRQ: 9),(CMI WSSIRQ:0),(CMI WSSDMA:0)
For GUS PnP:
ADDR: 240, CODEC: 34x, DMA1: 3, DMA2: 3, IRQ: 11
If BLASTER (or ULTRASND for GUS PnP) environment var is found, UNISOUND will
use its values to configure the card. If not, Unisound default values will
Usage: UNISOUND [options]
/Cn Select PnP card number 'n' to initialize/read (n = 1 to 9) (optional)
/CS Initialize non-PnP Creative card (SB16 & AWE32)
/CL List all PnP cards present in the system
/F Faster PnP detection process
/R Read PnP card current settings only (can be used with /Cn)
/D Disable PnP sound card (can be used with /Cn)
/Vnn Set Master Volume level to 'nn' % (00-99)
/VWnn Set Wave Volume level to 'nn' % (00-99)
/VFnn Set FM/Synth/WT Volume level to 'nn' % (00-99)
/VLnn Set Line-in Volume level to 'nn' % (00-99)
/VCnn Set CD Volume level to 'nn' (00-99)
/VMnn Set Mic Volume level to 'nn' (00-99)
/VPnn Set PC Speaker-in Volume level to 'nn' (00-99) (Creative)
/VTnn Set Treble level to 'nn' (00-99) (Compat. Creative cards)
/VBnn Set Bass level to 'nn' (00-99) (Compat. Creative cards)
/Xxxx eXtened cards settings (see section 5 for details)
/H /? Help screen
The /D Command line option is useful to disable a PnP sound card.
This option will free all card's resources (I/Os, IRQs, DMAs) and will
disable all logical devices. The card will return to uninitialized state.
With /CL a numbered list of the cards is presented like this:
Card #1 [GRV0001] Ultrasound Plug & Play
Card #2 [ESS1868] ESS ES1868 Plug and Play Audiodrive
Some BLASTER env special parameters (optional) can be used for extra config. P.e.:
A220 I5 D1 H1 P330 E620 W530 J200 C168 Rxxx M310 F388 U9 Q0 K0 (explained in UNISOUND.TXT)
If you only want to check the current settings of a PnP card, use:
UNISOUND /R (or UNISOUND /R /C2 in the ESS example we saw before).
There are new eXtended command line options for special features or cards.
The format will be /Xxxx , xxx depends on the card and/or special setting. Check
section 5 in the TXT for more details (Special configs like Orpheus card...)
Extract From 3- Supported cards (check readme for the complete explanation) ============================== […]
Extract From 3- Supported cards (check readme for the complete explanation)
- All SB16 PnP and non-PnP (but software-configurable) cards, including all
ViBRA16/S/C/XV/CL, Phone Blaster... (No need for DIAGNOSE.EXE for non-PnP)
- SB AWE32 PnP and non-PnP, AWE64, SB32PnP. EMU8K initialization included
- Creative AWE Upgrade card (CT1920) init.
- ES1868F single chip cards
- Guillemot Maxi Sound 64 (ES1868 + SAM9407 versions only).
- ES1869F single chip cards (Compaq branded for now)
- ES968 + ES688 and ES968 + ES1688 dual chip cards
- YMF71x single chip cards. OPL-SAX, OPL-SA3, AudioTrix XG-3D...
(Tested with YMF719-S, YMF718-S and YMF715 based cards)
- ALS007 chip based cards.
- ALS1xx chips (ALS100, ALS100+, ALS120)
- DT-0197H / DT-0196H chip cards (clone or re-branded ALS chips).
- AZT2320 chip
- RWA01x (WaveArtist) chip cards
- OPTi 82C925 + AD1845 combo
- OPTi 82C931 and 82C933 chip based cards.
Crystal (Cirrus Logic)
- CS4232 / CS4235 / CS4236/B / CS4237/B chip based cards
- CX4236/B / CX4237/B chip based cards
- Special support for Orpheus and Turtle Beach Malibu cards (CS4237B)
C-Media / AD-CHIPS:
- CMI8330 chip based cards. (Audio Excel...)
- CMI8329A based cards (Zoltrix... )
AD SoundPort (Analog Devices):
- AD181x chips based cards (AD1816/A, AD1815, AD18max10...).
- Gravis Ultrasound PnP (AMD Interwave chip). With some limitations (see UNISOUND.TXT)
- Roland Super MPU II MIDI PnP card. Not strictly a sound card, it's a MPU card only, but it's supported for initialization.
Extract From 4- Special notes about some cards (check TXT file for full explanation): ============================ […]
Extract From 4- Special notes about some cards (check TXT file for full explanation):
*Notes about Gravis Ultrasound PnP
*Notes about cards with WSS (Windows Sound System) support
*Notes about using some of these cards on 8 bit ISA slots (or XT machines)
*Notes about Guillemot Maxi Sound 64 series (ES1868 + SAM9407 only!)
*Notes about ESS ES1869 cards in very slow systems (XT/8088/8086/286)
*Notes about Crystal CS4232 based cards
Extract From 5- EXtended settings. General or per-card (check TXT file for full explanation) ============================== […]
Extract From 5- EXtended settings. General or per-card (check TXT file for full explanation)
5.2- EXtended settings for Orpheus card
5.3- EXtended settings for Turtle Beach Malibu
5.4- EXtended settings for Opti 925 cards
5.5- EXtended settings for GUS PnP
5.6- EXtended settings for ES1868/ES1869 cards
Latest changes (version history): […]
Latest changes (version history):
- Bugfix: AWE upgrade card CT1920 was misidentified as a regular AWE32.
- Added support for Roland Super MPU II PnP MIDI card initialization.
- Changed PnP detection process slightly. Now it is faster and more
compatible with existing PnP management (like PnP BIOSes). PnP RD port is
not overwritten if it was already set before running UNISOUND.
- Fixed bug that listed all cards detected as "Bad checksum" when /XXF was
used under certain circumstances.
- Other minor cosmetic changes.
- Added option to disable onboard GM chip sound on AD1816 cards (use /VF00)
- Fixed MPU base address assignation when non-PnP ViBRA16S (CT2504 chip) is
detected. Now it is set properly. (accepted P values: 0, 300, 330).
- Added new user-configurable options via BLASTER var for CMI cards:
Qx (WSS IRQ) and Kx (WSS DMA). Examples: Q11 K0 (set WSS IRQ to 11 and
WSS DMA to 0).
- Fixed wrong IDE logical device detection on ES1868 cards with IDE port.
- Fixed MIDI port detection bug on some ES186x cards after initialization,
now MPU will work on games like Descent.
- Fixed some typos and missing info (tool and docs)
- About Terratec EWS64 L/XL/XXL cards: now the tool assigns PnP resources
correctly, but output will be silent, because firmware support is being
investigated yet. So for now, these cards are not supported. WIP, no ETA.
- Added new eXtended option (/XEA) for ES1868 cards, to try an alternate init
method if normal init does not work.
- AWE64 Legacy: Only for this card, when its unique PnP ID is detected,
Creative FM is now shown as "CQM". Also if CQM is remapped to a port
different than 388, and an OPL chip is detected at 388h it will be shown.
- Added new eXtended option for GUS PnP (/XGL) to limit RAM to 512K for
compatibility with some games.
- Fixed detection of AD181x cards on some systems (regression bug).
- Fixed Card listing /CL stopped running when conflictive cards were present.
- Fixed CMI incorrect master volume was present in some apps
- Added support for some fake Yamaha cards (crystal chip based)
- Now up to 9 PnP cards can be initialized per system
- Other minor optimizations and cosmetic changes
If it has been useful for someone else than me, I will be pleased 😀
Sorry for the (multiple) bugs the tool could have.
The download (v0.76f): (Updated)