2019-04-14 19:30:44 (edited by musicalman 2019-12-19 09:10:20)

introduction

Have you ever played old games and noticed that sounds seemed to move not just in stereo, but around your head? Could you tell the difference between in front and behind, even if you were just on headphones? Have you also noticed that on later versions of Windows, this just doesn't happen? If you can relate to this, then this article is for you! In this article, I will be discussing several methods to allow old games to provide 2D or 3D audio positioning, and possibly other effects, on modern versions of Windows. If this doesn't seem to apply to you, you might still be interested in this article, especially if you want to experience old audio games in a new, hopefully more immersive way.

Note: These solutions will produce little or no difference with games that use software audio mixing, such as those made in BGT.

So what's actually happening here?

The sound in oldre games was often powered by the Direct Sound architecture, which can mix sounds using two methods. The first is software mixing which does not offer advanced audio effects, but is still sufficient for many tasks. It is capable of playing sounds and adjusting their volume, panning, and pitch. This is pretty much how BGT does it. The second uses additional hardware effects provided by many sound cards to provide 2D or 3D audio positioning, or other environmental effects such as reverberation. Nowadays, software can accomplish these effects too, but when Direct Sound was primarily used, CPU resources were more limited so sound cards were asked to do the work. If hardware effects aren't working, Direct Sound uses software mixing as a fallback, using volume and panning to approximate 2D or 3D effects for example. For the most part, that's enough to get by in audio games, but the experience is far more immersive if hardware effects are available.

With Windows Vista and beyond, a slight problem was introduced. Direct Sound is no longer supported natively. It's still emulated and it works for most things, but hardware effects are not possible because there is no path for Direct Sound to communicate with the audio drivers for your sound card. In plain English, your sound card isn't getting instructions on which effects to apply, so software mixing is always used. This is admittedly a simple explanation that leaves out many details, but it will suffice.

Why should I even care about these effects anyway?

This file demonstrates what happens without effects. In the recording, I am playing with Shades of Doom. I start out by playing with the night scope for a few seconds, and then I do a 360 degree turn around the emergency equipment. Then I exit the game. Listen carefully, especially during the 360 degree turn. The game audio is also set to virtual 3D full, however I have never found that setting to make a difference.

Now try to answer this question: Did the emergency equipment start out in front of me, or behind me? Based on this audio file, you can't really tell, because adjusting the volume and panning of the emergency equipment sound isn't enough for accurate 2D placement.

Yes, the emergency equipment started out moving to my right side. So the common assumption is that it started out in front of me and I turned left, thus it moved to the right. However, it could've just as easily started behind me and I turned right, which would've sounded very nearly the same in this case.

Of course, when you're playing a game, you'll always know what directions you are turning, and based on that, you can figure out where things are. For example if you turn left, sounds which are in front of you should move to the right. If they don't, then those sounds were behind you. Also, if you walk forward and sounds fade away, you'll know they're behind you and that you must turn around. With practice, this way of navigating is manageable, but it is always a little awkward.

To alleviate this, I have written this article to present four solutions for getting hardware effects back on modern versions of Windows. I hope that by the end of the article, and after listening to the audio examples throughout, you'll start to get a feel for how some old audio and mainstream games might have been intended to sound and you may experience them in a different way.

Primary Solution: ALchemy

This is the primary solution most people recommend and use. The catch is that since it's a Creative driver, it only works on Creative sound cards. However a patch has been made which allows it to be used on any sound card. It's probably not the most legal thing since you'll be sneakily bypassing Creative's protection to do it, but to my knowledge, ALchemy is a free download so this is not piracy.

From my testing, ALchemy produces some result on the following games.

  • Alchemy Games - Montezuma's Revenge Demo: not really necessary, but it does add positional audio

  • Alchemy Games - Mouse Targetting demo: it works well, but there are bugs in this game. Often, I find that I have to have a zombie facing 90 degrees to the right in order to hit it. I think this is a bug in the game though, not ALchemy.

  • Draconis Entertainment - Dynaman: seems to work, though I didn't test it well

  • Draconis Entertainment - Monkey Business: works well, but in front and behind seem to be reversed

  • GMA Games - GMA Tank Commander: works well

  • GMA Games - Shades of Doom: works well

  • Haunted Factory Demo: works well, adds a lot of positional audio including EAX (reverb). Note you must install Alchemy to the Klango directory, as Klango handles audio tasks.

  • Light Tech Interactive - Bop it Ultimate: I've heard it works, haven't tested

  • Light Tech Interactive - Treasure Mania 1. works well

  • Technoshock: works well, though I've left EAX disabled in the .ini file as it is pretty distracting to have it on

There are a handful of other audio games where it will probably work, but I haven't yet tested them. Feel free to try it, and if you find any that I should add to this list, please let me know!

So how do we actually use it? Well I'll present two methods. The first, and by far the easiest, is to simply copy a dll into the game's folder. Don't worry, it's very simple!

First, download this 7zip file and extract it. I've used a 7zip file to hopefully reduce the likelyhood that Google will flag it as mallicious. Inside the file, you'll find dsound.dll. This version of the dll contains the necessary patching I mentioned above. Simply copy this dll file to the folder where the game's executable is. Windows should see that you want to use this version of Direct Sound instead of its stock one. And believe it or not, the game will already have 3D sound. No hastle, no installation, nothing! So far, I have not seen this fail. To revert to the stock Direct Sound, simply delete dsound.dll and optionally dsound.ini from the game's folder.

In case this method does fail, I'll show you how to install and patch ALchemy manually.

Note: The patch may perhaps get your antivirus mad, but it is completely safe, and my friends and I have used it across multiple computers without issue.

I originally found ALchemy and the patch here, however I have also uploaded a 7zip here for easier access. Once ALchemy is downloaded, follow the installation instructions. To actually get it working, keep reading this article.

The procedure for adding and enabling a game is fairly simple. To add a game, first launch ALchemy. Tab to the add button and a new dialog will come up. Enter a game title, then tab to a group of radio buttons. By default, the program will be browsing for a registry path, but you want to change this to use a game path. Unfortunately, I haven't found a way to select the game path radio button with the keyboard, so you'll have to use your screen reader's mouse movement facilities to find the radio button and click it. It is clearly labeled so you shouldn't have trouble finding it. Select it, then tab to the button which will let you browse for the path where the game's executable is located. Once the path is set, I don't change anything else, so just hit OK.

Now tab to the installed games list. Select the game you have added. Shift tab once and you will be on the enable button. Pressing this button will install ALchemy's version of dsound.dll and dsound.ini into the game's path. The entry will also be moved out of the installed games list, and into the ALchemy enabled games list. If everything went well, your game should now have 3D sound! And the nice part is that you should, by all accounts, be able to copy this dsound.dll generated by ALchemy to other games without adding them in the program.

Here's what ALchemy sounds like on Shades of Doom. As you can hear, it's a respectable representation of objects in a 2D space! If I have to nitpick, ALchemy does introduce a very slight amount of lag, and a few other oddities that audiophiles might pick up on, but those are very easily overlooked.

Now, I'll talk about three other solutions. Admittedly, they didn't work too well for me, but I have taken some time to document them anyway in the hopes that they will be useful to someone. I am only one person after all, so your results may be better than mine.

Solution 2: Indirect Sound

The second option is Indirect Sound. To use it, simply download it, and copy the dsound.dll and dsound.ini files that come with it to the folder of the game's executable. You can also tweak the ini file to change many different options.

Unfortunately, Indirect Sound seems to only work for surround sound setups, and not through stereo speakers or headphones. In fact, it will make games unplayable with stereo setups because the panning and volumes will be all messed up. I have never played games through a surround sound setup, so I can't speak for the effectiveness of Indirect Sound. But if you are having problems with games on your surround sound setup, you might want to give this a shot.

Solution 3: Realtek's 3D Sound Back

3D Sound Back is, essentially, Realtek's version of ALchemy. It's only applicable if you're on a Realtek sound card. You can still download it directly from Realtek's web site, however there's a captcha which I can't get past so I have downloaded it from elsewhere and put it on my Google Drive. To install the program, unzip the file and run setup.exe.

Installing the program is simple enough, however it's pretty old now and doesn't launch unless you set its compatibility mode to Windows Vista. To do this, navigate to the executable file it installs, (usually C:\Program Files (x86)\Realtek\3D Sound Back Beta0.1\3DSoundBack.exe). Press alt enter on this file to open the properties dialog, and go to the compatibility page. Check the "run this program in compatibility for" check box. Then press tab and you should be in a list of Windows versions. Set this to Windows Vista, then tab to the "run this program as an administrator" check box and check that too. Now we can use it.

To actually get it working with a game, first launch the program, either by running the .exe file directly, or launching it from the shortcuts it installed. You'll then be in a setup program that allows you to add, edit, or remove games from the list of games you want 3D Sound Back to work with.

To add a game, simply press the add game button, and give your game a title. If you tab from here, you should see a game path edit field, and then a button. If you know the path to the game's executable, type it in the game path edit field, or else press the button to browse a tree view to locate it.

The next two edit fields control buffer settings, and I usually leave those alone. The only thing to do after this is to hit the OK button. When you do, you'll be brought back into the initial dialog. Tab to the game list, and select your game. Then shift tab once and you'll be on the enable button. Press this button to enable 3D Sound Back on the game. As per usual, it copies its own version of dsound.dll and dsound.ini files to the game's executable path. You can probably also copy this file to other games too just like ALchemy.

One thing I don't know is whether you need 3D Sound Back installed to play games with 3D sound. As you'll se below, it is pretty buggy, and thus I didnt' yet have the desire to test it. When I'm not feeling lazy, or if someone decides to test it, I'll update this article to clear that up.

To hear 3D Sound Back in action, listen to this audio file. While 3D Sound Back does introduce enhanced positioning, it also has some bugs on my system. The night scope is simply blaring, and no it's not because an enemy is around. The audio sounds good, but the night scope volume issue is a huge downer, plus other minor problems surface when I go through menus, as the menu wrap sound is very distorted and sometimes there is an annoying glitch at the ends of speech prompts.

Unfortunately, these issues are not isolated to Shades of Doom on my system. In fact on other games things tend to be far worse; in Technoshock, the volumes of footsteps are erratic, and the driver crashes Monkey Business. But maybe it'll work better for you.

Solution 4: Using a Virtual Machine

The last solution is to run a Windows XP virtual machine with VM Ware. On its own, this has no advantage, but vMWare can emulate the Creative SBPCI128, which is an old Soundblaster sound card. With this emulation, you can get somewhat convincing enhanced effects. If you cannot use virtual machines for some reason, then this solution may not be for you.

Obtaining and configuring VM Ware  and virtual machines is outside the scope of this article. However, I will cover how to get the sBPCI emulation working. It's not hard if you're familiar with XP, but there are a lot of steps.

First, download the driver installation at this link, which will download it from my Google Drive. The file is also available on the product's support page on Creative's web site, however there is a captcha on that page which I can't get past. Once the file is downloaded, put it on your virtual machine and install it there.

Eventually you will reach an online registration step, asking for your name, e-mail address and other things. This is not mandatory, so just hit cancel, and in the dialog that comes up asking when you'd like to do the registration, select the don't remind me option. At this point, the software installation will be finished and your virtual machine will reboot.

When the machine is booted, the driver should be working. You'll know it's working if you hear an interesting stereo effect being applied. I don't like it so I normally turn it off.

The quickest way to turn it off is to press Windows R to go into the run dialog and type mmsys.cpl. This takes you to sounds and audio devices settings. Admittedly there are more intuitive ways to get here such as through Control Panel, but mmsys.cpl is the quickest.

In this dialog, go to the audio tab, then in the playback devices selection, select the PCI128. Tab to the volume button and press it. A new dialog will come up. Press alt P to go to the options menu and make sure advanced controls is checked. When it is, tab to the advanced button and press it. There are actually two advanced buttons, one for audio settings and one for midi settings (you get a cool midi synth with the PCI128 too). In this case we want the one for audio. You'll know you've found the right one if you are brought into a dialog with tone controls and a spatial check box. Uncheck the spatial check box and your sound will return to normal. Then it's just a matter of closing all the dialogs.

You should, in theory, be able to play games on your virtual machine with enhanced positioning. If there's no difference in the positioning, you might want to check hardware acceleration settings. To do this, type mmsys.cpl into the run dialog again and go to the audio tab. Press the advanced button and you should be brought into a dialog with two tabs: speakers and performance. Go to the performance tab and set both sliders to 100. This will use the best sampling rate conversion, and full hardware acceleration. (I'd recommend this for real XP machines as well if possible.)

Here is what Shades of Doom sounds like on the VM. You should definitely be able to tell a difference between being in front as opposed to being behind. Sounds which are behind have a distant muffled character. On the whole it sounds reasonable, however I don't like the positioning as much. But if you must play these old games on a virtual machine, this is probably your best bet.

If you're experiencing lag on the virtual machine, there are some steps you can do to minimize that, but that is outside the scope of this article because lag is a generalized side effect of using a virtual machine.

Closing Thoughts

As I said, I prefer ALchemy, but I'm also really interested to hear from you. Have you found other solutions I haven't yet mentioned? Do one of the other solutions work better for you? If you have any suggestions, questions, probloems or criticisms, feel free to contact me and I will try my best to accomodate!

Thanks

Firstly, I'd like to thank you, the reader, for making it this far. You've made it through nearly 17,000 characters of text! That's quite something, isn't it? If you actually tried one, two or all these solutions, even cooler! That means I'm not the only one who's a bit crazy big_smile
I'd also like to thank people who pointed out some things about ALchemy I didn't know. Special thanks go to Slender who told me that you didn't need ALchemy installed to use it, and for testing other games with it so I could update the list.

Changes

2019/12/19:

  • moved ALchemy from the bottom to the top of the article

  • changed ALchemy files from .zip to .7z to hopefully reduce the chance they'll be flagged as mallicious

  • added info about ALchemy compatible games and easy installation of ALchemy

  • improved a few minor points and did some fine editing

2019/04/14

  • initial publication

Make more of less, that way you won't make less of more!
If you like what you're reading, please give a thumbs-up.

Thumbs up +10