How to Juggle Sound Cards

Thanks to the ingenuity of the Dragons, there are now two options open to those who are (un)fortunate enough to own a Sound Blaster Live. It may be one of the greatest sound cards around, but it just won't run with Ultima 7. Here are two possibilities you may like to try. Both involve purchasing another card (we haven't got around that one yet...); the details in each are slightly different.

The first explanation is thanks to Samson Dragon, who was the first to devise a way of using two sound cards in a bid to hear the music from Ultima 7 parts 1 and 2. It involves using two cards, and switching from one to the other as the need arises.

First, get yourself a generic 16-bit sound card. Sound Blaster is best, as the Ultimas speak to them easily. They can be found secondhand in many shops for about $US10-20.

Next, temporarily decommission your current sound card. Get into Control Panel, System, Device Manager and select your sound card's properties. Click on "Disable in this hardware profile." The computer will now ignore this card.

Turn your computer off, and install the 16-bit card in any available ISA slot. Reboot your machine, and Windows 95 will autodetect the card and assign IRQ and DMA numbers to it. Re-enter Control Panel etc (as described on my main Ultima 7 page) and make sure the IRQ and DMA numbers are appropriate - change them if necessary. Make sure your shortcut has the appropriate numbers, and plug speakers etc into the sound card. Click the shortcut and the game should run, using the older soundcard.

Once you have finished playing Ultima, you will have to reassign the cards. Boot up to Windows again, get into Control Panel, System, Device Manager etc - Disable the 16-bit card and re-enable the SB Live (or whatever you have). Reboot, and everything will be back to normal.

To play Ultima 7 again, just get back into Device Manager; disable the new card and enable the old.

With this system it does not matter if the cards share IRQ numbers etc, as they will not be running simultaneously.

The second method is from Aquamarine Dragon, who has achieved the unachievable, and started Ultima 7 from a Restart in MS-Dos mode, with SB Live still activated. His post to RGCUD is below - it involves using 2 cards; the output from the SB16 is plugged into the line-in socket of the SB Live.

"However, it's a bit more complicated than I had hinted at, the trouble being that the SBLive is reset at boot time, turning off the Line-In.

Short summary of the setup, for those who didn't follow the thread:
- SBLive doesn't give sound with U7
- Have an SB16 (or any other old card) for Ultima 7
- Plug the output into the Line-In of the SBLive to save the hassle of manually switching the output everytime.

So here's how you get the sound in U7:
- make a U7-suitable config.sys and autoexec.bat, but start into Windows, not the command line, as this is necessary to activate the SBLive and the Line-In [1].
- set the mixer settings so that you can hear the SB16 on the Line-In
- "Restart in DOS mode". In my config, this just quits to DOS, without a reboot [2].

Anyway, now you're in DOS with a U7-suitable config, *and* the SBLive is active. All that remains is to start U7. It worked in my case.
One note, with this setup you need 10KB more memory than usual, because win.com remains in memory. Apart from the additional memory, this is harmless however, and I had more than enough memory with UMBPCI anyway (615KB free + 86KB free upper memory), and that with smartdrive!

For the record, here's my config.sys and autoexec.bat I used:

------config.sys-----------
device=c:\windows\himem.sys /TESTMEM:OFF
device=d:\dos\umbpci.sys /I=CC00-EFFF
dos=high,umb
files=80
buffers=70
---------------------------
In most cases, you can use /I=C800-EFFF with umbpci, but my graphics card
(Ati All-in-Wonder) has 48KB of rom, so I can only use cc00-efff.

------autoexec.bat-----------
@echo off
path C:\WINDOWS;C:\WINDOWS\COMMAND;c:\dos;d:\dos;
SET BLASTER=A220 I5 D1 H5 P330 T6
SET TEMP=e:\temp
SET TMP=e:\temp
lh smartdrv 4096 /q a- b-
-----------------------------

(the mouse driver was loaded automatically by Windows, you may have to add it here though. The "a- b-" in smartdrv are necessary with umbpci)

One caveat, if you keep this setup even for working in Windows, you won't have EMS in DOS programs, because EMM386 is not loaded. You could put it in there, and choose to disable it when playing U7 (press F8 then Shift- F8 during the boot). I don't know whether it can coexist with umbpci though.

Comments and suggestions welcome. This public service announcement is hereby donated to the public domain.

[1] It would definitely be possible to write a program to set the mixer of the SBLive without EMM386, but it doesn't exist yet. I'm neither knowledgable in PCI programming, nor do I have the necessary specs from Creative, so I can't do it at the moment.

[2] I'm not sure, but some Windows versions reboot in all cases. If that's true in your case, your SOL. You have to get to DOS *without* a reboot. See [1]."

Thank you Samson and Aquamarine. As with the remainder of this site, feedback and suggestions are always appreciated.

Back To Top