VOGONS


First post, by JazeFox

User metadata
Rank Newbie
Rank
Newbie

Hi there!

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 Driverfor DOS.
Current version is: v0.75b (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 ========================== […]
Show full quote

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 ========================== […]
Show full quote

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)

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
be used.

Usage: UNISOUND [options]

Options:
/Cn Select PnP card number 'n' to initialize/read (n = 2 to 5)
/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)
/VTnn 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 (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) ============================== […]
Show full quote

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

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 cards

Yamaha:
----------------------
- 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 chip

Rockwell:
----------------------
- RWA01x (WaveArtist) chip cards

OPTi:
----------------------
- 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)

Extract From 4- Special notes about some cards (readme for full explanation): ============================ […]
Show full quote

Extract From 4- Special notes about some cards (readme 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 ============================== […]
Show full quote

Extract From 5- EXtended settings. General or per-card
==============================

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

----------

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.75b): (Updated)

https://mega.nz/file/7Yg3BKwR#TZDNShv9xlug5Dj … FaFRx2IIZ6o20vY

Last edited by JazeFox on 2020-07-23, 18:01. Edited 12 times in total.

Reply 1 of 206, by cyclone3d

User metadata
Rank l33t
Rank
l33t

Pretty sweet! Thanks.

Yamaha YMF modified setupds and drivers
Yamaha XG resource repository - updated November 27, 2018
Yamaha YMF7x4 Guide
AW744L II - YMF744 - AOpen Cobra Sound Card - Install SB-Link Header
Epstein didn't kill himself

Reply 2 of 206, by weldum

User metadata
Rank Member
Rank
Member

i know you said "all x86 cpus" but there's support for 16 bit micros? (8088/86 and 286)

Ohh, the humanity 😢
386SX 25-C3 800-P3 900-Atom 1.6-C-D 2.13-P4 2.26-P4HT 3.0-P-DC 1.6-AFX 2.6-FX 3.3

Reply 6 of 206, by JazeFox

User metadata
Rank Newbie
Rank
Newbie
weldum wrote on 2020-03-13, 01:56:

i know you said "all x86 cpus" but there's support for 16 bit micros? (8088/86 and 286)

Yes! It supports 8088/8086/286 😀 I updated the first post to reflect this.
(some cards will work well in a 8-bit ISA slot, and some others will not, it depends on the card, if it uses 16 bit lines or not).

MAZter wrote on 2020-03-13, 05:17:

What about support Yamaha YMF744 and YMF754 chips? And specific cards like Roland Sound Canvas.

Yamaha YMF74x and 75x are PCI sound chipsets, so no, they are not supported. This tool works with ISA cards only.
About the Roland, there are not PnP Roland cards (at least, I don't know any), so, no.

Reply 7 of 206, by Tiido

User metadata
Rank Oldbie
Rank
Oldbie

This looks like a pretty interesting tool, I will try it at some point ~

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 9 of 206, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Very nice! I have always hoped for such a tool to exist! Thank you for making this, I'll try to remember that it exists when I configure software.

I flermmed the plootash just like you asked.

Reply 10 of 206, by MN_Moody

User metadata
Rank Newbie
Rank
Newbie
jmarsh wrote on 2020-03-14, 20:12:

Maybe you should consider building this as a device driver instead so it could be loaded from config.sys?

Where I grew up, if someone buys me a free lunch I'm not inclined to tell them if I don't like the way it tastes, rather I appreciate the gesture and the full belly that I didn't have to pay for. You are certainly free to do the research, learn how to code and develop a driver based solution for this issue, or pay someone to do so if you don't like the way this free utility works?

Anyway, the intent of this tool, as I understand it, is to invoke the PnP configuration parameters for a broad range of audio cards that are usually impossible to find the original PnP configuration utilities for. It was not uncommon for generic / OEM / budget cards to lack a "driver" component that can be loaded in CONFIG.SYS either (the wedge shaped Aztech ISA cards that HP pumped out in the thousands, for example). The Aztech cards require that you invoke a proprietary PnP configuration utility at boot to initialize the hardware and set configuration, and then a separate .EXE mixer file to set volume levels... exactly like this utility. Instead of having to track down card-specific utilities for the numerous unmarked ISA sound cards that are otherwise impossible to configure for use in DOS games, this utility has you covered. I have at least 3 currently "DOS unusable" OPTI / Crystal / Analog Devices PNP ISA audio cards sitting in a pile that I haven't been able to find compatible drivers/config utilities for, so I'm stoked to give this utility a try. Providing a low footprint, generic solution to initialize a broad range of PnP ISA sound hardware is incredibly useful, like the CuteMouse driver it's sure to become a staple for making hard to ID hardware useful again without the fuss and drama of tracking down original or "close enough" configuration and driver software for each card you find out in the wild.

Thank you OP, what a great contribution to the retro/DOS hardware gaming community!

Reply 11 of 206, by EcoPeeko

User metadata
Rank Newbie
Rank
Newbie

Hi, I'm new to dos and I'm trying to use unisound to configure my pc's pnp soundblaster 16 card (CT2980).

How exactly do I install it? The .zip download contains unisound.com - okay - then I put it on a floppy disk and stick it into the pc - so far so good - but then what? Sorry if this is a dumb question.

Reply 12 of 206, by JazeFox

User metadata
Rank Newbie
Rank
Newbie
EcoPeeko wrote on 2020-03-23, 21:13:

Hi, I'm new to dos and I'm trying to use unisound to configure my pc's pnp soundblaster 16 card (CT2980).

How exactly do I install it? The .zip download contains unisound.com - okay - then I put it on a floppy disk and stick it into the pc - so far so good - but then what? Sorry if this is a dumb question.

Hi,

Why are you putting the file on a floppy disk?
If you plan to use it to configure your SB16 permanently in your HDD, simply do this:

Copy UNISOUND.COM to your HDD (where you want, root, a folder..)

Edit your C:\AUTOEXEC.BAT file, and put this two lines (assuming you put UNISOUND.COM in C:\ ):

SET BLASTER=A220 I5 D1 H1 P330
C:\UNISOUND.COM /V80

That's it. Card will be initialized on every boot, and will work perfectly if values are not in conflict with any other card. (/V80 parameter is optional, is the volume of mixer master output. If it is too loud, you can lower the value.. to 60, 50.. or what you want. Range is from 00 to 99).

Now the details:

If you have more cards in your system that could use any of the resources of the card equal to the ones i put in the SET BLASTER line (Base address 220h, IRQ 5 , DMA 1, HDMA 1) the you may change it to other values, example: A220 I7 D1 H5 P330)....

In addition, if your card has an IDE header and you plan to use a CD-ROM drive connected to it, you must do this:

- Download VIDE-CDD.SYS and DEVLOAD.COM from here: https://www.hiren.info/downloads/dos-files
- Copy them to your HDD
- The C:\AUTOEXEC.BAT modifications are now:

SET BLASTER=A220 I5 D1 H1 P330 C168
C:\UNISOUND.COM /V80
DEVLOAD VIDE-CDD.SYS /D:MSCD001
MSCDEX /D:MSCD001

That's all. (The new parameter in the BLASTER line C168 will enable the IDE port on the card, and set it to quaternary).

Tell us if you got it working well.

Reply 14 of 206, by EcoPeeko

User metadata
Rank Newbie
Rank
Newbie
JazeFox wrote on 2020-03-23, 21:44:
Hi, […]
Show full quote
EcoPeeko wrote on 2020-03-23, 21:13:

Hi, I'm new to dos and I'm trying to use unisound to configure my pc's pnp soundblaster 16 card (CT2980).

How exactly do I install it? The .zip download contains unisound.com - okay - then I put it on a floppy disk and stick it into the pc - so far so good - but then what? Sorry if this is a dumb question.

Hi,

Why are you putting the file on a floppy disk?
If you plan to use it to configure your SB16 permanently in your HDD, simply do this:

Copy UNISOUND.COM to your HDD (where you want, root, a folder..)

Edit your C:\AUTOEXEC.BAT file, and put this two lines (assuming you put UNISOUND.COM in C:\ ):

SET BLASTER=A220 I5 D1 H1 P330
C:\UNISOUND.COM /V80

That's it. Card will be initialized on every boot, and will work perfectly if values are not in conflict with any other card. (/V80 parameter is optional, is the volume of mixer master output. If it is too loud, you can lower the value.. to 60, 50.. or what you want. Range is from 00 to 99).

Now the details:

If you have more cards in your system that could use any of the resources of the card equal to the ones i put in the SET BLASTER line (Base address 220h, IRQ 5 , DMA 1, HDMA 1) the you may change it to other values, example: A220 I7 D1 H5 P330)....

In addition, if your card has an IDE header and you plan to use a CD-ROM drive connected to it, you must do this:

- Download VIDE-CDD.SYS and DEVLOAD.COM from here: https://www.hiren.info/downloads/dos-files
- Copy them to your HDD
- The C:\AUTOEXEC.BAT modifications are now:

SET BLASTER=A220 I5 D1 H1 P330 C168
C:\UNISOUND.COM /V80
DEVLOAD VIDE-CDD.SYS /D:MSCD001
MSCDEX /D:MSCD001

That's all. (The new parameter in the BLASTER line C168 will enable the IDE port on the card, and set it to quaternary).

Tell us if you got it working well.

I copied the UNISOUND.COM file from the floppy disk I had put it on into C:\ and edited C:\AUTOEXEC.BAT like you said, but now MS DOS fails to load properly.

Here is the entirety of my autoexec.bat file:

LH /L:0;2,45456 /S C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\WINDOWS;C:\DOS
SET TEMP=C:\DOS
SET BLASTER=A220 I5 D1 H1 P330
C:\UNISOUND.COM /V80

The last two lines are what I added. Everything else is the same as before when it was working. As far as I'm aware there's only one sound card, and the pc has no CD ROM drive.

Reply 15 of 206, by JazeFox

User metadata
Rank Newbie
Rank
Newbie

@EcoPeeko

Ok, let's do some checks...

First of all, when you say that MS-DOS fails to load properly, what do you mean exactly?
It throws any error? in that case, what error? the computer hangs? could you explain what happens with details?

And, if you can, download the great HWiNFO tool from HWiNFO for DOS resurrected !
and run it as: hwinfo -r
it should create a HWINFO.LOG file. Upload it here to see what can be interferring with the initialization.

If you can not work in DOS properly to run HWiNFO, edit autoexec and delete the unisound line. If you can not edit it properly, press F5 while booting, before MS-DOS boots, to avoid autoexec execution. Then edit the file.

Let us know when you have results.

Reply 16 of 206, by Oetker

User metadata
Rank Member
Rank
Member

Seems like a great tool! However, my AZT2320 card doesn't work with it (unknown pnp card, not compatible). It's actually reported as an AZT1008 by the tool (and other PNP stuff). It's this card: https://www.philscomputerlab.com/hp-mm-pro-16v-a.html and the chip does read 2320.

Also, support for the AZT2316 would be nice 😀

Edit: I hex-edited AZT1022 to AZT1008 in the .com file and that made it detect and initialize the card. Unfortunately games still can't play any sound (Duke3D setup complains about a possible DMA error), which is the same result I get with the Aztech PNP tool or Intel ICU, so it's 99% sure working fine and there's something else wrong.

Last edited by Oetker on 2020-03-24, 21:20. Edited 1 time in total.

Reply 17 of 206, by EcoPeeko

User metadata
Rank Newbie
Rank
Newbie

@JazeFox

It says "Starting MS-DOS..." and then nothing happens and it won't respond to key presses. I guess hanging is the word.

About HWiNFO. Honestly, I barely know how to use MS DOS - Running HWiNFO feels equally as daunting as running Unisound, or any other program for that matter. I removed the Unisound lines from autoexec.bat, and I know enough to copy files into directories, but it's the "get the program running without breaking something" step that keeps tripping me up. If I try to run HWiNFO I worry I'll be back at square one troubleshooting why that too won't work. Like, say I copy the HWiNFO files into C:\, then what do I do with them ? Do I edit some file like config.sys or autoexec.bat to load it? Do I run hwinfo.exe? I hate to be difficult but you really need to go step by step or you'll lose me.

Reply 18 of 206, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie

Ill try and check it out on the weekend. Will it enable more than one sound card? I have GUS PnP and AWE32 in one machine and I have to run iwinit and ctcu/diagnose..

--/\-[ Stu : Bloody Cactus :: http://kråketær.com :: http://mega-tokyo.com ]-/\--

Reply 19 of 206, by JazeFox

User metadata
Rank Newbie
Rank
Newbie
Oetker wrote on 2020-03-24, 20:39:

Seems like a great tool! However, my AZT2320 card doesn't work with it (unknown pnp card, not compatible). It's actually reported as an AZT1008 by the tool (and other PNP stuff). It's this card: https://www.philscomputerlab.com/hp-mm-pro-16v-a.html and the chip does read 2320.

Also, support for the AZT2316 would be nice 😀

Edit: I hex-edited AZT1022 to AZT1008 in the .com file and that made it detect and initialize the card. Unfortunately games still can't play any sound (Duke3D setup complains about a possible DMA error), which is the same result I get with the Aztech PNP tool or Intel ICU, so it's 99% sure working fine and there's something else wrong.

I updated to version 0.65c with support for new vendor IDs for Aztech 2320 compatible cards (like your AZT1008).
About your problem with no sound... I don't know what could be happening, it works well with my AZT1022 card and other user tested it with a AZT1006 ID card and worked well too...
Are you sure you don't have conflicts with any other hardware? Are you sure your card is not faulty? did you test it in a different PC? is it working under windows9x?

EcoPeeko wrote on 2020-03-24, 21:02:

@JazeFox

It says "Starting MS-DOS..." and then nothing happens and it won't respond to key presses. I guess hanging is the word.

About HWiNFO. Honestly, I barely know how to use MS DOS - Running HWiNFO feels equally as daunting as running Unisound, or any other program for that matter. I removed the Unisound lines from autoexec.bat, and I know enough to copy files into directories, but it's the "get the program running without breaking something" step that keeps tripping me up. If I try to run HWiNFO I worry I'll be back at square one troubleshooting why that too won't work. Like, say I copy the HWiNFO files into C:\, then what do I do with them ? Do I edit some file like config.sys or autoexec.bat to load it? Do I run hwinfo.exe? I hate to be difficult but you really need to go step by step or you'll lose me.

I'm sorry, you're right, I'll try to explain everything with more detail in a new post later.

BloodyCactus wrote on 2020-03-24, 21:48:

Ill try and check it out on the weekend. Will it enable more than one sound card? I have GUS PnP and AWE32 in one machine and I have to run iwinit and ctcu/diagnose..

Yes! In fact, I use it just like you want. It is easy:

- Set the environment variables for both cards *first*: BLASTER and ULTRASND, remember to use different values to avoid conflicts. Example: BLASTER=A220 I5 D1 H1 P330, and ULTRASND=240,3,3,11,11
- With both cards plugged, run: UNISOUND /CL , that will list the 2 cards and will show you the order, card #1 and card #2.
- Once you located each #, (let's assume GUS is card #1 and AWE is card #2) you have to run unisound 2 times, one for each card (/C2 is to init 2nd card):
UNISOUND
UNISOUND /C2

- Optionally if you want classic GUS Wavetable music support, you only have to add the ULTRADIR env variable pointing to a directory with 2 items:
the ULTRASND.INI file and the MIDI directory with the instrument patches inside. Remember that this tool disables GUS PnP SB emulation resources, MPU emulation resources and IDE port. It is centered in the classic GUS use. Remember to have RAM slots populated for it to work.