Reply 500 of 696, by zapbuzz
- Rank
- Oldbie
JazeFox wrote on 2020-03-13, 00:32:Hi there! […]
Hi there!
I made a DOS tool for my own use some time ago, but 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.78b (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!
About bug reporting here: Please, provide all info and details you can. Unisound version, text outpunt in screen, brand and model of your card(s), chips you can see there, system specs, CPU, board, other cards you have, photos...
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
AUTOEXEC.BAT lines.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.**IMPORTANT WARNING**:
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: 11If 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
be used.Usage: UNISOUND [options]
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) (Compatible cards)
/VBnn Set Bass level to 'nn' (00-99) (Compatible Creative cards)
/Xxxx eXtened cards settings (see section 5 for details)
/H /? Help screenThe /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 AudiodriveSome 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)
==============================Creative:
----------------------
- 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.ESS AudioDrive:
----------------------
- 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 cardsYamaha:
----------------------
- YMF71x single chip cards. OPL-SAX, OPL-SA3, AudioTrix XG-3D...
(Tested with YMF719-S, YMF718-S and YMF715 based cards)Avance Logic:
----------------------
- ALS007 chip based cards.
- ALS1xx chips (ALS100, ALS100+, ALS120)Diamond Technologies:
----------------------
- DT-0197H / DT-0196H chip cards (clone or re-branded ALS chips).Aztech:
----------------------
- AZT2320 chipRockwell:
----------------------
- RWA01x (WaveArtist) chip cardsOPTi:
----------------------
- 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...).Advanced Gravis:
------------------------------
- Gravis Ultrasound PnP (AMD Interwave chip). With some limitations (see UNISOUND.TXT)Roland:
------------------------------
- Roland Super MPU II MIDI PnP card. Not strictly a sound card, it's a MPU card only, but it's supported for initialization.Ensoniq:
------------------------------
- Limited support for Ensoniq Soundscape VIVO card. Only WSS digital
sound, line-in control, CD-in control and joyport are working. Any other
function will require the original TSR and drivers.Turtle Beach:
------------------------------
- Limited support for Turtle Beach Multisound Pinnacle card (PnP mode)
Only joyport and MPU (onboard Kurzweil wavetable) are available. There are
several board revisions of this card, with slightly different behaviours.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 cardsExtract From 5- EXtended settings. General or per-card (check TXT file for full explanation) ============================== 5.1- […]
Extract From 5- EXtended settings. General or per-card (check TXT file for full explanation)
==============================
5.1- General eXtended settings
5.1.1- General eXtended setting for 3D sound for compatible cards
5.1.2- General eXtended setting to control Output Gain / Loudness
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
5.7- EXtended settings for generic Crystal CS4237Latest changes (version history): […]
Latest changes (version history):
==============================
v0.77a
------------------------
- Improved card detection, now it's more reliable, especially on slow cards.
- New eXtended option /XNET : It's a workaround for Realtek (and compatible)
ISA PnP network cards when paired with ISA sound card(s). Those net cards
have a bad hardware PnP implementation that deactivates LDs (logical devices)
just when scanning for PnP cards without configuring them. Use this option
when initializing your sound card and then load packet driver.
- Fixed joystick port default values for some cards, like ES1868.
- Orpheus: New option /XOM0 to force-disable MPU if it's enabled in EEPROM.
- Orpheus fix: Now Line-in audio is not muted on SPDIF in games/progs.
- GUS PnP: New option /XGJ : Activate Joystick port
- GUS PnP: Now all IRQs up to 15 are selectable (0=disabled). Previously, only
5, 7, 11, 12 15 were available (as listed by original GUS setup and EEPROM)
Use with caution.
- Changed Opti 931 init method a bit to try to prevent issues with other
cards (experimental).
- Fixed very old bug that caused some cards to disable MPU if same IRQ was set
for SB and MPU manually.
- Fixed wrong calculation for Mic-in level on several SBPro compatible cards.v0.78b
------------------------
- Fixed ALS007 mixer, as it's only SBPro compatible, unlike other ALS cards.
- Fixed CMI card mixer to disable 3D spatial effect by default. (see below).
- Added support for Rockwell RWA Wavetable header. Now volume is working.
- Added STB Ultrasound card support as GUS PnP compatible (untested).
- Added (limited) support for Ensoniq Soundscape VIVO card. Only WSS digital
sound, line-in control, CD-in control and joyport are working. Any other
function will require the original TSR and drivers.
- Added (limited) support for Turtle Beach Multisound Pinnacle card (PnP mode)
Only joyport and MPU (onboard Kurzweil wavetable) are available. There are
several board revisions of this card, with slightly different behaviours.
If your card is not recognized, please add the option /FS and try again.
Also note that it's possible that your card revision doesn't work at all.
- Added feature to switch between internal and external FM/OPL on generic
Crystal CS4237 cards. Option are the same used for Orpheus: /XOFi and /XOFe
(untested). If no command line option is set, default is Internal FM.
- Added support for 3D sound on some cards that support it. Option: /X3Dn
Usage depends on the supported card (value of 'n'):
* CMI8330A: Sensaura HRTF 3D Positional audio ON (n = 1) or OFF (n = 0)
* ALS100+/ALS120: 3D Sound Effect Proccessor ON (n = 1) or OFF (n = 0)
* ES1869: (n = 0 to 9) 0 = disabled, 1-9 Spatializer 3D VBX effect amount.
* YMF71x: (n = 0 to 7) 0 = disabled, 1-7 3D Enhanced (Wide) effect amount.
* AD18xx: (n = 0 to 9) 0 = disabled, 1-9 Phat 3D effect amount.
* CS4237: (n = 0 to 9) 0 = disabled, 1-9 SRS 3D effect amount (center+space)
* Creative: 3D ON (n = 1) or OFF (n = 0). Only for Creative cards with 3D
capabilities (like AWE64, some AWE32 like CT3980 or some SB16 like CT2950)
- Added bass and treble control for Yamaha cards.
- Added eXtended option to control Output Gain / Loudness on some compatible
cards. Option is /XXGn ('n' value depends on the supported card):
* CMI8330: Loudness ON (n = 1) or OFF (n = 0)
* Creative: n = 1,2,4 (Gain x1, x2, x4 respectively). Some models don't have
gain control, on those, the setting won't have effect.e.g.: Vibra16C/S/XV
or some AWE64s like CT4520. Others like CT4500 do have it). Default: x2----------
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.78b): (Updated)
https://mega.nz/file/zMYhADAD#xAwK9nVbx6u1aK0 … WWF83MIa3tpmz2A
this is interesting can i ask for a pci version as well? or can it configure pci cards? it could completely save time hunting down pci dos drivers.