F.E.A.R.
Restore 3D Positional Surround Sound
I've been working on a project to restore positional audio in older games when playing them using Windows Vista or later. I call it "IndirectSound", and it can be found here:

http://www.indirectsound.com

I actually started working on it after playing F.E.A.R. and realizing that it no longer had surround sound with my new audio setup. Now that I have it working, though, I can finally play F.E.A.R. using all 7.1 speakers :)

If anyone has surround speakers that haven't been working with F.E.A.R. (or other older games) I'd be really interested for you to try it out and give me feedback if it works on other machines or not. I started it as a personal project, but I imagine there must be other people like me who still enjoy playing older games but miss the surround sound in some of them.
Legutóbb szerkesztette: jonpol; 2013. júl. 30., 16:28
< >
1630/106 megjegyzés mutatása
Sorry for not seeing your comment until now. I don't know why it wasn't working before, but I'm glad it's working for you now! Enjoy :-)
I personally love the original fear series. but for some reason i can't seem to get creative alchemy work with fear it the only game weird. and l know for a fact it supports my sound card hardware. weird because it worked in windows 7 but not in windows 8.1. anyways i have decided to use your software. as a nother means to try to get 5.1 restored in fear. i am getting the same exact issue as the previous commentor stated. with the fact that it did not magically fix itself. thank in advance Jompol!
No problem is adsolute i found a solution.
Cool! How did you fix it? It may help anyone else who reads this discussion later :-)

You don't mention which hardware you have, but if you have an actual Creative Soundblaster that supports EAX it may be worth spending more time trying to get ALchemy to work instead of using IndirectSound because the EAX effects are done really well in F.E.A.R. If not, though, then I think IndirectSound is the way to go.
Not sure if you still hang around here jonpol, but...

I stumbled upon your DLL, and attempted to use it with World of Warcraft. The archived compatibility page indicates that I need to run the game in the Windows XP SP2 Compatibility Mode to function.

So I placed the DLL in the Wow.exe folder, set the compatibility mode (and ran as Administrator, just to be safe), started up the game, and clicked the "Enable Hardware" checkbox. I received a crash to desktop, and an error message.

My WoW version is 3.3.5a (please don't ask me why). Is there other info I should post to you via your site email?
Legutóbb szerkesztette: Tal; 2015. júl. 15., 19:33
Hi! I don't really hang around the forum, but luckily Steam notified me that there was a response :)

There should be a log file called dsound.log generated in the same place that you put the dsound.dll. If you email that to me then we can try to figure out what's going wrong.
Will your file work will games that used XAudio2 ? as windows 10 dont seem to use XAudio2 anymore, i know there is a trick to change all the files will a hex editor, but i dont want to do that.
Daytrader eredeti hozzászólása:
Will your file work will games that used XAudio2 ? as windows 10 dont seem to use XAudio2 anymore, i know there is a trick to change all the files will a hex editor, but i dont want to do that.

I don't have Windows 10, but this link suggests that XAudio2 still works with Windows 10:

https://msdn.microsoft.com/en-us/library/windows/desktop/ee415802(v=vs.85).aspx

IndirectSound doesn't have any effect on games that use XAudio2, though; it only affects the behavior of games that use the older DirectSound.
Thx for reply, well i tried a few games, Quake4,Bioshock and Doom3 and all gave me logs, so i guess they should work, i noticed this at the very end of the log for each of the games, its like XAudio2 is telling DirectSound that i only have 2 speakers, any ideals.



Audio Device: Realtek Digital Output (Realtek High Definition Audio)
Role: Global default device
Device ID: {0.0.0.00000000}.{98437c21-06c0-413a-873e-1cf155704ece}
Speaker Configuration: 5.1 Home Theater
(Left, center, and right front speakers, left and right side speakers, and a subwoofer)
If you have rear speakers instead of side speakers consider changing your audio device properties
There is a discrepancy between the speaker configuration that DirectSound and XAudio2 think that your machine has!
DirectSound reports 6 and XAudio2 reports 2
Please contact indirectsound@gmail.com
EAX 2.0: The application queried whether support is available
EAX 3.0: The application queried whether support is available
EAX 4.0: The application queried whether support is available
EAX 5.0: The application queried whether support is available
EAX 2.0: The application set a value
IndirectSound is being unloaded because the process is terminating
Daytrader eredeti hozzászólása:
Thx for reply, well i tried a few games, Quake4,Bioshock and Doom3 and all gave me logs, so i guess they should work, i noticed this at the very end of the log for each of the games, its like XAudio2 is telling DirectSound that i only have 2 speakers, any ideals.

Audio Device: Realtek Digital Output (Realtek High Definition Audio)
Role: Global default device
Device ID: {0.0.0.00000000}.{98437c21-06c0-413a-873e-1cf155704ece}
Speaker Configuration: 5.1 Home Theater

There is a discrepancy between the speaker configuration that DirectSound and XAudio2 think that your machine has!
DirectSound reports 6 and XAudio2 reports 2

I haven't seen that output specifically, but it might be the result of a known issue with XAudio2. Are you using either Dolby Digital Live or DTS Connect? If so, XAudio2 has a bug (that has been known about for years but not fixed by Microsoft) where it thinks that only 2 speakers are available. You can see more info here (including some potential hack fixes if you're feeling adventurous):
http://www.indirectsound.com/knownIssues.html#dolbyDigitalLive

(By the way, I didn't think that any of those three games you mentioned required IndirectSound in order to have 3D positional sound. Are you sure that they don't work as-is?)
Yeh thouse games i dont think do use indirectsound, they use openal or FMOD, but they did not work in 5.1, so i thought i would try your fix, but i think your logs have proved that the games are being told just to play in stereo as windows say i only have 2 speakers, and that is a XAudio2 problem that windows wont fix, and i know about the hex edit on the XAudio2 files, but i dont really want to mess with system .dlls ? thx for reply thou.
When I try using this a lot of sounds cut out, like gunfire etc sounds are completely missing
I recently had some emails with someone who couldn't hear the radio transmissions when using IndirectSound. I could never duplicate the problem, and the only difference we could figure out is that I was using the English version and he was using the Spanish version. In case it helps, though, he found that:
  • In windowed mode he never heard the radio
  • In fullscreen mode he didn't hear the radio when EAX was enabled but he did hear it when EAX was disabled
Since IndirectSound only pretends to emulate EAX (for the moment) it doesn't hurt to disable it in F.E.A.R., because you will still get 3D positional audio. I would recommend trying to disable EAX and make sure you're running in fullscreen mode.

Your situation sounds different than his and so I don't have a high level of confidence that it will work, but it's worth trying.

You may also want to check the dsound.log file that is generated to see if any errors are reported.
Hmm, I noticed your project and it was one of my first go to's to fix F.E.A.R.'s audio issues as I used to have an old Sound Blaster in my super old desktop I first used to play F.E.A.R. when it was new, suffice to say I never noticed how amazing the audio was in this game even then with all the EAX options enabled.

Fast forward to about 2012 when I re-bought the games again on Steam and I knew something was missing, used 3D SoundBack and it had surround sound but still didn't sound all that great but played through it anyways.

I recently began playing through it again and realized what I was missing. All the reverb and effects that EAX bring with it were completely absent in 3DSoundBack. 3DSoundBack is also horrible and doesn't work for most EAX games in my case and even stopped functioning in F.E.A.R., not to mention Realtek completely dropped support for it and hasn't even touched it in years.

I decided to do some research and found your solution which restores the surround sound but not full EAX support. After some further digging I managed to get ALChemy to work perfectly with my Realtek onboard sound.

I just wanted to give some background to my question before I asked it, really. My question is basically; Do you plan to emulate EAX fully? Is it even a possibility? I can understand ALChemy working perfectly since it's a Creative software emulating their own hardware but I can only imagine how hard it would be for a single programmer to do this.

Since I saw you mention that IndirectSound pretends to emulate EAX I thought I'd ask if you don't mind. :D:
CheekyChan eredeti hozzászólása:
Hmm, I noticed your project and it was one of my first go to's to fix F.E.A.R.'s audio issues as I used to have an old Sound Blaster in my super old desktop I first used to play F.E.A.R. when it was new, suffice to say I never noticed how amazing the audio was in this game even then with all the EAX options enabled.

I decided to do some research and found your solution which restores the surround sound but not full EAX support.

My question is basically; Do you plan to emulate EAX fully? Is it even a possibility? I can understand ALChemy working perfectly since it's a Creative software emulating their own hardware but I can only imagine how hard it would be for a single programmer to do this.

Since I saw you mention that IndirectSound pretends to emulate EAX I thought I'd ask if you don't mind. :D:

Hi,

There are two steps to emulating EAX:
  1. Quantitative: Make IndirectSound react to a game's input the same way way that a real SoundBlaster would in terms of numbers (if a game makes a certain function call with a certain set of numbers then IndirectSound's internal numbers should match what real hardware would do)
  2. Qualitative: Make IndirectSound sound the same when specific EAX settings are set

Emulating EAX fully quantitatively is definitely possible. The current released version of IndirectSound does this fairly well, and the unreleased version I have been working on gets even closer. There are some tricky undocumented issues (some of the trickiest for me to figure out have been related to how changing settings in different EAX versions in the same program affect each other, for example), but for the standard functionality that most games use IndirectSound actually behaves correctly right now.

Emulating EAX qualitatively is much harder, unfortunately. Most of what IndirectSound does in order to make 3D surround sound work is pretty straightforward, and functionality from DirectSound can be mapped pretty directly to functionality in XAudio2. There were a few tricky things that I had to implement on my own, but in general the functionality that DirectSound exposes is pretty straightforward and doesn't require much audio programming expertise. (Side note: The one big exception to this is the way that sounds are positioned in 3D, which is significantly different on Creative's hardware than in Microsoft's software implementation that I am using.) Emulating EAX is completely different, however: The EAX specification gives certain quantitative requirements, but most of the actual reverb implementation is entirely unspecified and relies on the implementor figuring it out. This means that it is possible to create an implementation of EAX that technically follows the standard but doesn't sound good. (Side note: Your Realtek hardware also has this limitation; it may follow the EAX standard, but it uses its own reverb implementation and will not sound exactly the same as a SoundBlaster would.)

Ideally I would have used XAudio2 reverb and just translated the DirectSound calls to XAudio2 calls like I do with most of IndirectSound. Unfortunately, XAudio2 reverb is unusable for what EAX requires, and so that's not an option.

What I decided to do instead was to implement reverb on my own. This would theoretically lead to better results because I could try to make it match my actual SoundBlaster, but I also thought it would be a fun project to learn how reverb worked. The problem is that it turned out to be a much more difficult project than I had expected, which is why I've never released anything after so many years :steamsad:.

I actually have got it working. There are some missing features, but the basics do what they're supposed to. Unfortunately, it sounds terrible, and will require significant tuning and more experimentation to get to something that sounds acceptable. Right when I finally had a eureka breakthrough, though, and was excited to try and improve the qualitative sound, I hit up against a massive performance bug with the way I was doing things that stopped my progress. That was almost a year ago now, and I have since got a new Windows 10 machine for my main system (for Dark Souls 3 :praisesun: and the Vive), and with the new hardware I can no longer dual-boot into XP to test out my SoundBlaster; in order to do any actual comparisons now I would have to drag out my old machine and hook it up in place of my new machine. Sadly, hardly any progress has been made over the past year.

So, as a summary: Yes, emulating EAX is possible, but it will not be bit-perfect output to what ALchemy with actual hardware can do (although it could theoretically sound better depending on the reverb implementation). I have a working version that has most of the EAX 2.0 features, but it doesn't sound good. Progress has been slow for the last year.

Hope that answers your questions!
< >
1630/106 megjegyzés mutatása
Laponként: 1530 50