VOGONS

Common searches


Far Cry

Topic actions

Reply 320 of 389, by God Of Gaming

User metadata
Rank Member
Rank
Member
Kappa971 wrote on 2021-12-26, 18:17:

Is there reverb in this level on the Sound Blaster Audigy? https://www.youtube.com/watch?v=9wShr1XqP6o

Yes, thats exactly where I compared, since I remembered theres plenty of different reverb types in those first few halls and corridors at the start of the level. I could notice no difference between dsoal and audigy, and I compared them very carefully too

1999 Dream PC project | DirectX 8 PC project | 2003 Dream PC project

Reply 322 of 389, by Kappa971

User metadata
Rank Newbie
Rank
Newbie
RetroGamer4Ever wrote on 2021-12-26, 17:33:

It's the game map editor for the engine used in FarCry. You can load the maps and test out things, including audio sound effect placement and pretty much everything else.

I tested with the CryEngine Sandbox Editor by loading the Carrier level and it seems that EAX only works with ALchemy. There is no difference between DSOAL and software audio.

Reply 323 of 389, by Kappa971

User metadata
Rank Newbie
Rank
Newbie
God Of Gaming wrote on 2021-12-26, 18:31:

Yes, thats exactly where I compared, since I remembered theres plenty of different reverb types in those first few halls and corridors at the start of the level. I could notice no difference between dsoal and audigy, and I compared them very carefully too

Strange, I don't have reverb with DSOAL. What version of Windows did you use with DSOAL?

Underwater reverb in SS (dsoal-r418) : https://streamable.com/y7bmzg

Is it with DSOAL?

Reply 328 of 389, by jonpol

User metadata
Rank Newbie
Rank
Newbie
Kappa971 wrote on 2021-12-26, 09:25:
Interesting... However the fact remains that the reverb effect you hear in Level 2 Carrier with ALchemy (Sound Blaster Z), with […]
Show full quote
jonpol wrote on 2021-12-26, 04:11:
I ran across this post and was curious so I did a bit of testing. I installed the Steam version of Far Cry on my Windows 10 mach […]
Show full quote

I ran across this post and was curious so I did a bit of testing. I installed the Steam version of Far Cry on my Windows 10 machine because I didn't have the motivation to go find my Far Cry discs and install on my Windows XP machine, but I used IndirectSound to see if EAX was being used.

  • Far Cry is definitely testing for EAX and using it (it tests for EAX 3 support first, but IndirectSound doesn't claim to support that, so it then uses EAX 2).
  • In the menus it intentionally turns the volume completely off for all of the EAX effects.
  • In the very room after starting a new game it intentionally sets EAX effects different from what it does in the menu, so some programmer is "using" EAX.
  • With that being said, though, you are correct Kappa971 that the volume is used is so quiet you can't really hear anything.
  • (Also, curious/amusing sidenote: The "room" type chosen is "psychotic", which has really crazy reverb. The room type is just a way to set defaults and everything can still be tweaked, but it's strange that someone chose a default that you would never use except for maybe a dream sequence or something.)

This is a sample size of one room, but it doesn't contradict your suspicions that there maybe isn't supposed to be any audible reverb.

Interesting... However the fact remains that the reverb effect you hear in Level 2 Carrier with ALchemy (Sound Blaster Z), with DSOAL is missing completely (I also tried to set boost = +12). ALchemy (on sound cards with EAX in software) is not accurate in reverb level, but it should be accurate to see where it should be present.
Could you try it on your Windows XP machine (if you have an old Sound Blaster on that PC)? Serious Sam TFE's Karnak level is also a good test.

EDIT
This is the Far Cry log file with DSOAL, there doesn't seem to be anything regarding EAX

Can you get me a save game at the spot that you would like to know what reverb is happening? If you can do that I can tell you what EAX settings are being used and whether it should be audible or not, at least with the Steam version. (Depending on how curious I get I might also try to find my original discs in my basement, but no promises hehe.) You can email it to me directly at indirectsound@gmail.com if you'd like, or post it here if you think others might also want to test.

I don't know how DSOAL works, sorry, so I don't know if one would expect to see anything about EAX or not. I am confident in the game's behavior that I described, but I don't know whether DSOAL would log any of that or not.

Reply 329 of 389, by Kappa971

User metadata
Rank Newbie
Rank
Newbie

I have some news. With DSOAL r418 the reverb in Serious Sam's Karnak level works (although I had to set boost = +12 to hear it). It contains OpenAL Soft 1.21.0. Since OpenAL Soft 1.21.1, the reverb stops working.
In Far Cry I still don't hear any reverb.

Can you get me a save game at the spot that you would like to know what reverb is happening? If you can do that I can tell you what EAX settings are being used and whether it should be audible or not, at least with the Steam version. (Depending on how curious I get I might also try to find my original discs in my basement, but no promises hehe.) You can email it to me directly at indirectsound@gmail.com if you'd like, or post it here if you think others might also want to test.

I don't know how DSOAL works, sorry, so I don't know if one would expect to see anything about EAX or not. I am confident in the game's behavior that I described, but I don't know whether DSOAL would log any of that or not.

Of course, I only tried two levels. The level where the reverb is present in ALchemy is Level 2 Carrier.

Attachments

  • Filename
    Profiles.7z
    File size
    1.58 MiB
    Downloads
    56 downloads
    File license
    Public domain

Reply 330 of 389, by jonpol

User metadata
Rank Newbie
Rank
Newbie
lowenz wrote on 2021-12-26, 07:27:

Hey Jon! Any news about indirect sound? Happy holidays meanwhile!

Hey there, happy holidays to you too!

I don't want to hijack the thread, but I can try to give a short summary of IndirectSound developement hehe.

XAudio2 turned out to not be able to give me the performance needed for EAX with how some games were using DirectSound. I decided to rewrite things using WASAPI, which should give me as low level control of Windows audio as is possible. That part is going very well; I am able to play buffers with very low latency (as low as possible, I think), and the design feels like an improvement.

I'm also a better programmer now than I was 10 years ago when I started IndirectSound, so the new version does a lot of things better. Performance has rarely been an issue with IndirectSound, but hopefully some of this improvement will pay off when I get to EAX stuff and have to do more computationally-heavy stuff.

Since I was doing a rewrite I decided to try and be much more conscientious about emulating the old DirectSound behavior exactly. Since IndirectSound works pretty well (I hardly ever get bug reports any more) and DSOAL has become popular so that no one is really waiting breathlessly for EAX support in IndirectSound, I figured it would be good for posterity to try and test as extensively as I could and emulate everything correctly, regardless of what the documentation says (except in cases that I presume are bugs, in which case I fix them hehe). That way the community can have something that we're confident does things exactly the way they would have behaved during the hey day of hardware accelerated audio. (As part of this I'm writing some test programs that others can run on their old systems to see if there are any discrepancies between my machine.) This part is also going well, but with a caveat: It feels very good to get a feature working where I feel confident that everything is exactly emulated, but it's also not particularly fun to do and so I think that has demotivated me a bit and made progress slow. A lot of the time is just spent writing tests; it's a good development technique but maybe not so good of a technique to keep me motivated for a hobby project in my spare time heh.

Reply 331 of 389, by jonpol

User metadata
Rank Newbie
Rank
Newbie
Kappa971 wrote on 2021-12-26, 22:44:
I have some news. With DSOAL r418 the reverb in Serious Sam's Karnak level works (although I had to set boost = +12 to hear it). […]
Show full quote

I have some news. With DSOAL r418 the reverb in Serious Sam's Karnak level works (although I had to set boost = +12 to hear it). It contains OpenAL Soft 1.21.0. Since OpenAL Soft 1.21.1, the reverb stops working.
In Far Cry I still don't hear any reverb.

Can you get me a save game at the spot that you would like to know what reverb is happening? If you can do that I can tell you what EAX settings are being used and whether it should be audible or not, at least with the Steam version. (Depending on how curious I get I might also try to find my original discs in my basement, but no promises hehe.) You can email it to me directly at indirectsound@gmail.com if you'd like, or post it here if you think others might also want to test.

I don't know how DSOAL works, sorry, so I don't know if one would expect to see anything about EAX or not. I am confident in the game's behavior that I described, but I don't know whether DSOAL would log any of that or not.

Of course, I only tried two levels. The level where the reverb is present in ALchemy is Level 2 Carrier.

There were two save games on that level, so I just chose the one that the game said had been loaded last.

These are the EAX settings the game is requesting when I load that save game:

room = 0
roomHF = 0
roomRollOffFactor = 0
decayTime = 0
decayHFRatio = 0
reflections = 0
reflectionsDelay = 0
reverb = 0
reverbDelay = 0
environment = 569393924
environmentSize = 0
environmentDiffusion = 0
airAbsorptionHF = 0
flags = 0

There are two things to note: 1) Almost all of the values are zero (this would generally indicate that either the programmer cleared everything to zero and then never filled in anything or that the programmer never filled in anything at all but the default memory happened to be filled with zeros) and 2) The environment, the only non-zero value, is a huge number.

The "environment" is the default environment type that I mentioned in the previous post about the start of the game (where it was set to "psychotic"). There are only 26 environments, and so the only valid values are 0-25. This means that the call to set the EAX properties will return E_INVALIDARG, none of them will be set, and the previous values will stay active. Those previous values are from the menu (or loading screen), and have the volume set to the minimum so that no EAX reverb is audible.
[Full disclosure: What I just described is how IndirectSound behaves, and I implemented that years ago. That was before my more rigorous approach to testing and documenting behavior with strange input and so I can't 100% guarantee that all of the other values would be ignored if the environment value were bad in Windows XP because I don't remember how I tested it. I can guarantee that the values that FarCry is requesting aren't the result of a carefully crafted sonic environment, though: It looks like a bug.)

It seems to me that DSOAL is behaving correctly. If you hear any reverb with ALchemy it seems like it is a bug with ALchemy accepting invalid values.
Also, from what I can tell, none of the EAX calls that FarCry makes (at least the ones that the Steam version makes) really make sense. It would be interesting to know the history here, but I don't think you're missing anything great. My advice would be to play without reverb and be content 😀

Reply 332 of 389, by Kappa971

User metadata
Rank Newbie
Rank
Newbie

First of all thanks for the explanation. I suspected Far Cry was doing weird things and figured that ALchemy could set the wrong reverb. The final test would be to try Level 2 Carrier on a Windows XP machine and hear whether or not there is reverb. Anyway, if DSOAL behaves correctly and it's a Far Cry bug, I don't think anything can be done (regardless of the result with the XP machine).

Also, from what I can tell, none of the EAX calls that FarCry makes (at least the ones that the Steam version makes) really make sense. It would be interesting to know the history here, but I don't think you're missing anything great.

This may explain why there are no EAX calls in the DSOAL log file... perhaps DSOAL is ignoring them as they are invalid.
In this case, using DSOAL in Far Cry only makes sense if you want to use headphones.

Reply 333 of 389, by jonpol

User metadata
Rank Newbie
Rank
Newbie
Kappa971 wrote on 2021-12-26, 23:43:
First of all thanks for the explanation. I suspected Far Cry was doing weird things and figured that ALchemy could set the wrong […]
Show full quote

First of all thanks for the explanation. I suspected Far Cry was doing weird things and figured that ALchemy could set the wrong reverb. The final test would be to try Level 2 Carrier on a Windows XP machine and hear whether or not there is reverb. Anyway, if DSOAL behaves correctly and it's a Far Cry bug, I don't think anything can be done (regardless of the result with the XP machine).

Also, from what I can tell, none of the EAX calls that FarCry makes (at least the ones that the Steam version makes) really make sense. It would be interesting to know the history here, but I don't think you're missing anything great.

This may explain why there are no EAX calls in the DSOAL log file... perhaps DSOAL is ignoring them as they are invalid.
In this case, using DSOAL in Far Cry only makes sense if you want to use headphones.

You got me so curious that I went down to the basement and finally dug up my original Far Cry CDs. These are NVIDIA OEM bundled with some graphics card I bought. I had to use a no-CD executable but otherwise didn't apply any patches, to try and see if early versions may have behaved differently from the Steam version.

The opening sets the exact same values.
Your save games wouldn't load, so I couldn't load that level (and I wasn't motivated enough to play through haha).

But this confirms our suspicions, I think, that FarCry doesn't have good EAX reverb. As I said before, I would bet that DSOAL is doing exactly the right thing.

(You've asked me to try it on Windows XP. I could try that with my SoundBlaster X-Fi now that I've found my CDs, but the problem with that is that I don't have any way to actually see what function calls are being made and so I'd have to solely trust my ears, which isn't as reliable. I think we can be pretty confident that any EAX settings that the game is trying to set with ALchemy/DSOAL/IndirectSound is going to be consistent in older operating systems with actual hardware that supports the same EAX level. I guess one possible difference would be if Far Cry does something different/better with EAX3. I think I mentioned earlier that it does query whether EAX3 is supported, but IndirectSound says that it's not; I don't know what the game would do if EAX3 was reported to be available and so I guess that's one thing I can't rule out with the tools I currently have available to me.)

Reply 334 of 389, by Kappa971

User metadata
Rank Newbie
Rank
Newbie

The saves are not loaded perhaps because the patch 1.4 is needed.
I have seen that when a game uses EAX, there are EAX calls in the log file. Even in Serious Sam you see some EAX 2 calls (although OpenAL Soft 1.21.1 broke the reverb in that game). In Far Cry there are no EAX calls so it is doing "nothing" with DSOAL. On the other hand I don't think EAX 3 would have changed the audio of this game much (especially without reverb). Anyway thanks.

Reply 335 of 389, by mirh

User metadata
Rank Member
Rank
Member
jonpol wrote on 2021-12-27, 01:03:

I think we can be pretty confident that any EAX settings that the game is trying to set with ALchemy/DSOAL/IndirectSound is going to be consistent in older operating systems with actual hardware that supports the same EAX level.

It's absolutely not a reasonable assumption.
A lot of time Creative drivers did their own thing.. be it because of mishaps (which could then eventually turn into de facto spec, see UT2k4), or even just because once a game ships broken the user doesn't really care whose fault it is and just wants the thing to work.

As the EAX Showcase I linked mentioned, once upon a time it at least did happen somehow that reverb was present.

Last edited by mirh on 2021-12-28, 18:56. Edited 1 time in total.

pcgamingwiki.com

Reply 336 of 389, by Kappa971

User metadata
Rank Newbie
Rank
Newbie
mirh wrote on 2021-12-27, 13:28:

It's absolutely not a reasonable assumption.
A lot of time Creative drivers did their own thing.. be it because of mishaps (which could then eventually turn into de facto spec), or even just because once a game ships broken the user doesn't really care whose fault it is and just wants the thing to work.

As the EAX Showcase I linked mentioned, once upon a time it at least did happen somehow that reverb was present.

I think that if Far Cry is buggy and DSOAL is working correctly, I don't think anything can be done. Also, in the link you mentioned, people on that forum are talking about problems with EAX.

Reply 337 of 389, by mirh

User metadata
Rank Member
Rank
Member

Driver problems with EAX (and anything else creative in general) go back to the dawn of time, I'm not sure how anybody could still be surprised.
There was also much more going on, but I just wanted to point out that reverb must be there somewhere.

I don't really know how they possibly solved it in ALchemy once (it doesn't seem to be through the usual simple game profiles), but something can definitively be done for as much as it might be complex.
Btw you can't even assume that different versions of ALchemy on different drivers than the ones they had in 2007 are equivalent, given how they seem to have completely lost the awareness of their own crap (from shipping newer cards with the wrong alchemy path, to keeping openal broken in UE for years and years).

Last edited by mirh on 2021-12-27, 19:58. Edited 2 times in total.

pcgamingwiki.com

Reply 338 of 389, by jonpol

User metadata
Rank Newbie
Rank
Newbie
mirh wrote on 2021-12-27, 13:28:
It's absolutely not a reasonable assumption. A lot of time Creative drivers did their own thing.. be it because of mishaps (whi […]
Show full quote
jonpol wrote on 2021-12-27, 01:03:

I think we can be pretty confident that any EAX settings that the game is trying to set with ALchemy/DSOAL/IndirectSound is going to be consistent in older operating systems with actual hardware that supports the same EAX level.

It's absolutely not a reasonable assumption.
A lot of time Creative drivers did their own thing.. be it because of mishaps (which could then eventually turn into de facto spec), or even just because once a game ships broken the user doesn't really care whose fault it is and just wants the thing to work.

As the EAX Showcase I linked mentioned, once upon a time it at least did happen somehow that reverb was present.

Hi mirh, I don't disagree with you! But I was trying to say something different: If the game is making function calls with a DirectSound wrapper that claims that EAX is supported then I think the same game installed from the same CDs would make the same function calls with a sound card that claimed that EAX is supported. You are of course correct that the result of those function calls can be very different.

Reply 339 of 389, by jonpol

User metadata
Rank Newbie
Rank
Newbie
mirh wrote on 2021-12-27, 15:55:

There was also much more going on, but I just wanted to point out that reverb must be there somewhere.

I don't really know how they possibly solved it in ALchemy once (it doesn't seem to be through the usual simple game profiles), but something can definitively be done for as much as it might be complex.

I have a theory after reading some of those posts you linked hehe. Some people say that they could run Far Cry once after rebooting, but then running it any subsequent times would result in missing sounds. I discovered back in the day that it's actually pretty easy to get my SoundBlaster into a state where EAX is enabled in some configuration and then stays that way until the machine is rebooted. For my own amusement I was able to run my own code, set it to something really echoey, and then run a real game (I was using Oblivion at the time) and hear the real game be really echoey. I don't remember now exactly how I did this, but it did have something to do with not cleaning up EAX stuff before exiting the process.
So, we know that it's possible to get at least some SoundBlaster cards with at least some Creative drivers to get in a state where the EAX settings are stuck and can't be changed without a reboot. We also know that Far Cry is setting EAX values, even though they aren't particularly good ones, and that they are turning the volume off on everything EAX in the menus. My theory, then, is that maybe they aren't cleaning something up in some cases when exiting, leading to the menu (or loading screen) settings getting stuck permanently until reboot.

Regardless, I still haven't seen any evidence that this is something to be solved by a wrapper. From the evidence I've seen (admittedly limited to just one sample each from the two opening levels) the game itself shouldn't have any audible reverb. If someone knows of a place in the game pre-Vista that clearly has reverb audible (i.e. there's a difference with EAX on and off) and can provide me a save game then I can look and see what the game is actually doing, but otherwise my working conclusion is that Far Cry doesn't have audible EAX reverb.