ea.gif (17265 bytes)

 

Sound Problems

A lot of people are experiencing sound problems in DOS. Usually the reason is either that the sound card is not properly installed, or that the actual settings of the sound card are not adopted by DOS the way they are supposed to.

First of all many emulators do not work with sound by default. It is therefore necessary to switch to sound on. Refer to the readme text to find the appropriate command. If this is not the case, verify the following;

1) Making sure that your sound card is properly installed: in your Windows directory (c:\windows) you will find a file called: autoexec.bat. By right clicking on this file and choosing edit you can view the content of this file. It should contain a line which looks something like this: SET BLASTER=A220 I5 D1 H5 P330 E620 T6 (this particular line is for the Sound Blaster)

This indicates that your sound card has been installed. If this line is missing, use the software that came with your card to install it properly.

2) If you do find this line, or a similar one, but you still cannot hear any sound when playing your emulators in DOS the problem might be, that DOS is not properly applying the settings it should. In your Windows directory (c:\windows) there should be a file called ctcm.exe. You can run this from DOS by changing to the Windows directory, typing ctcm and pressing enter. This should make DOS use the appropriate settings for your sound card.

This command should be run automatically every time you start DOS. You can achieve this by editing your autoexec.bat. Just insert a line like this: c:\windows\ctcm.exe and saving before exiting.

PCI Card probs in DOS

Many people are experiencing sound problems with PCI cards in DOS. This is because PCI cards do not use memory addresses anymore like the ISA cards used to. Your emulator, however, will look for the use of these memory addresses and therefore refuse to initiate sound if it cannot find these. The way to prevent this, is to fake the use of a memory address, by assigning a virtual address to your sound card. If your sound card is properly installed there should be line referring to it in your autoexec file. Check the section on autoexec in this page in order to find out how to verify this.

If you do not find this line, insert the following line into your autoexec.bat file: SET BLASTER=A220 I7 D1 T2, or try a different IRQ with this line: SET BLASTER=A220 I5 D1 T2
These are both correct lines for a Sound Blaster PCI. Your emulator should now recognise your sound card in DOS.

If you're still having troubles you can also do the following(works for SB Live!, hopefully also for the rest of Creative's PCI cards):

1) Run the program sbeset.exe in the creative/sblive/dosdrv directory where your sblive files were installed and configure your sb16 emulation port to 220, irq to 5, low dma to 1, and high dma to 1 (read sbeset.txt for docs).

2) Restart your system and voila! Sound emulation should run in real DOS mode


This assumes you have sbeinit.com somewhere in your autoexec.bat (check above and below for details on how to use your autoexecbat) . It's also a good idea to confirm that your BLASTER variable is set from your autoexec.bat by typing 'set' in the dos prompt. You should see something that says 'BLASTER=A220 I5 D1 H1 P330 T6' somewhere depending on what sbeset.exe settings you set in real dos mode. If you're in a windows dos box, it should be your original pci irq, dma, etc which should be different from the sb emulation settings.

An alternative scenario was worked out by Shifty for those who are still having difficulties even with the previous procedure:

You'll need the sbeset command that should come with the dos drivers, I'm assuming it's in your c:\sblive\dosdrv directory. At the command line, type:

c:\sblive\dosdrv\sbeset -I10 -w0

That's an *upper case* letter "I" followed by a one and zero to set the IRQ to ten, then a lower case "w" followed by a zero to tell it to ignore your Windows configuration. Sbeset should also automatically set your blaster environment variable. Now all you need to do is make sure you have the line

c:\sblive\dosdrv\sbeinit

in your autoexec.bat, reboot into "pure" DOS and give it a go. Changing the IRQ to 10 did wonders for me, I have no idea why because there's nothing on the default of 5 that should be conflicting with it. Don't be scared of experimenting with different values under DOS, you're unlikely to be using other devices that would normal conflict under Windows.

One limitation other than the settings can also be your motherboard configuration and compatibility. You will need to check with the motherboard manufacturer and ask them does their motherboard fully support NMI (Non Maskable Interrupts) and if it does how to enable them. Some manufacturers of motherboards state that they do support NMI but when tested and used (like with the SB128/Live) they don't work. If you have a ALI/ASUS chipset/motherboard an updated BIOS is now available which supports NMI, check out www.asus.com.tw for this patch. Until the motherboard fully supports NMI then the software emulation simply cannot operate. Check with the respective motherboard supplier for NMI compatibility. (Tip from FRK)

DOS Sound in a Windoze DOS box works fine as long as your card is properly installed and doesn't require change to the sb16 emulation settings. (Thanks to
dodo for the latter procedure)

If you still cannot get any sound after al this the best solution is ot get a cheapo SB16 and stick it in there with your PCI card as explained just below. Check here for more details on the reasons for DOS incompatibility and limitations of PCI cards in DOS.

How to get 2 soundcards to work in one system

If you can't get your PCI card to do what you want in DOS, you can always disable the legacy emulation from the SB128, SB LIVE! etc. in the setup panel and then to put your old ISA SB16 card back into your system. In order to be backwards compatible the PCI card emulates an ols ISA card, a feature which does not always work or sound like the original. You can however make both cards work in your system so that the old SB16 kicks in with your emus.

Install the SB16 exactly as lined out in your manual with the proper drivers from CL. Make sure that there are no lines relating to the PCI card in you Autoexec.bat and everything should go smoothly. The best settings in your Autoexe.bat are the default settings: IRQ5 Low DMA 1 High DMA 5. (Check below if you don't know how to edit your autoexec.bat file) You can match these for both your Windoze and DOS settings and everything should work fine.

Set up your windows multimedia properties so that the SB128 is the preferred device for direct X and that the SB16 only kicks in when a program looks for a soundblaster.


You need to join the outputs from the two cards or have two sets of speakers (please note that if you join the amplified outputs i.e. for speakers/ headphones that are not externally amplified then you will get feedback interferrance which will distort the sound.) Two sets of seakers, or switching the speakers from one card to the other are the better solution.You will also have to balance the volume settings.


Once set up you will have the best of both worlds. PCI direct X acceleration and good old ISA sb16 compatability. (Thanks to
Looker for the advice)