Giter Club home page Giter Club logo

Comments (33)

bibendovsky avatar bibendovsky commented on May 20, 2024 1

Created the issue (#19) for Mass Effect.

from eaxefx.

jaysharp29 avatar jaysharp29 commented on May 20, 2024

I saw complaints that the xfi patch actually breaks EAX in favor of other things. https://forums.beyondunreal.com/threads/x-fi-patch-and-eax.192611/

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

I saw complaints that the xfi patch actually breaks EAX in favor of other things. https://forums.beyondunreal.com/threads/x-fi-patch-and-eax.192611/

The problem with that post from 2010 is they were most likely using Creative Alchemy to emulate the sound which could create its own problems, there is very little info I can find on the patch and I haven't seen any video footage of it running on a pre Vista machine with the patch, because of that and the post being the only reference to issues regarding EAX being broken I'd argue makes it somewhat irrelevant.

I did however test the game without the patch using the same methods I used in the original report.

EAXEFX on its own:
Without the patch HRTF, reverb and occlusion all seem to work fine.
With the patch reverb and occlusion didn't work using this method.

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.6
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I] Open device "DirectSound3D".
[EAXEFX] [I] Close device.
[EAXEFX] [I]
[EAXEFX] [I] >>>>>>>>>>>>>>>>>>>>>>>>
[EAXEFX] [I]

DSOAL + EAXEFX:
Without the patch HRTF and occlusion works however reverb does not.
With the patch reverb and occlusion didn't work using this method.

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.6
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I]
[EAXEFX] [I] >>>>>>>>>>>>>>>>>>>>>>>>
[EAXEFX] [I]

The DSOAL log is exactly the same as before and doesn't open DirectSound3D but does use occlusion without the patch.
Running EAXEFX on its own it appears to work flawlessly without the patch.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

UT2004 uses native openal, so... people using alchemy are doing it completely wrong.
https://www.pcgamingwiki.com/wiki/Unreal_Tournament_2004#Audio_settings

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

UT2004 uses native openal, so... people using alchemy are doing it completely wrong.
https://www.pcgamingwiki.com/wiki/Unreal_Tournament_2004#Audio_settings

Yes and no, it uses both OpenAL and DirectSound. EAX was largely tied to DirectSound 3D and many games at the time even if they used OpenAL natively required DirectSound to have EAX function properly including UT2004.
If this game didn't use dsound.dll it wouldn't spit out a log while using EAXEFX and DSOAL for this game with the way I named the dll files now would it?

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

Property buffer too small bugfix.
eaxefx_bin_win32_v1_0_6_4428006.zip

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

UT2004 EAX 5.0 Issues

Are you sure the game uses EAX 5.0?
Unpatched ALAudio.dll contains EAX2.0, EAX3.0 and EAX3.0Emulated extension names.
Patched ALAudio.dll contains EAX4.0 and EAX4.0Emulated extension names.

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

UT2004 EAX 5.0 Issues

Are you sure the game uses EAX 5.0?
Unpatched ALAudio.dll contains EAX2.0, EAX3.0 and EAX3.0Emulated extension names.
Patched ALAudio.dll contains EAX4.0 and EAX4.0Emulated extension names.

I believe so although I could be wrong, according to info I can find the Sound Blaster X-Fi cards were released with EAX 5.0 and to support 128 voices, the patch as far as I can tell was just to show off the capabilities of these new cards and explicitly state the 128 voice support https://xfi.blogspot.com/2006/07/unreal-tournament-2004-x-fi-patch.html
I'm not certain but I think EAX 4.0 supported the same amount of voices as EAX 3.0 which was 64, I can't really find info on it unfortunately.

I did just test the file you posted too, same lack of reverb and occlusion however the log does comes up nice and clean.

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.6
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I] Open device "DirectSound3D".
[EAXEFX] [I] Close device.
[EAXEFX] [I]
[EAXEFX] [I] >>>>>>>>>>>>>>>>>>>>>>>>
[EAXEFX] [I]

DSOAL still seems to hang after the Create EAXX line, it doesn't open or close the device

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.6
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I]
[EAXEFX] [I] >>>>>>>>>>>>>>>>>>>>>>>>
[EAXEFX] [I]

Love your work by the way.

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

-Same eaxefx_driver.dll
-Renamed EAXEFX OpenAL32.dll in UT2004 System folder to dsoal-aldrv.dll
-Pasted DSOAL r391 dsound.dll in UT2004 System folder

It's a strange combination.
If you wish to test how sounds the game with EAXEFX or DSOAL don't mix them.

Put DSOAL's dsoal-aldrv.dll into System directory, and then

to test EAXEFX:

  • Delete or rename DSOAL's dsound.dll in the System.
  • Put EAXEFX's OpenAL32.dll into the System.

to test DSOAL:

  • Delete or rename EAXEFX's OpenAL32.dll in the System.
  • Put DSOAL's dsound.dll into the System.

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

I did just test the file you posted too, same lack of reverb and occlusion however the log does comes up nice and clean.

You won't hear reverb with X-Fi patch neither with EAXEFX or DSOAL.
It's is either disabled by purpose or because ALAudio.dll checks for genuine hardware.

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

It may be strange but it does spit out a log for UT2004 as it still uses DirectSound, the combination seems to work flawlessly on Hitman 2 Silent Assassin and Grand Theft Auto: Vice City even Halo Custom Edition, they all spit out logs like this:

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.5
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I] Open device "{E2FEF7F0-223D-4D01-A8D5-6E99874970CF}".
[EAXEFX] [I] Close device.
[EAXEFX] [I] Open device "{E2FEF7F0-223D-4D01-A8D5-6E99874970CF}".

You won't hear reverb with X-Fi patch neither with EAXEFX or DSOAL.
It's is either disabled by purpose or because ALAudio.dll checks for genuine hardware.

That could be the case and wouldn't surprise me, like I've said earlier I have never seen it in action on a period machine running Windows XP and using the Sound Blaster X-Fi so until that happens we may never know, this is why I've been trying with DSOAL as I'm under the impression that it's supposed to trick games into thinking you have the hardware so you can use the full EAX support and UT2004 still uses dsound.dll.

Here's Halo Custom Edition running with the master build of DSOAL, OpenAL Soft and EAXEFX
https://www.youtube.com/watch?v=Oq_VBrXp2Do

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Yes and no, it uses both OpenAL and DirectSound.

OpenAL in turn can use directsound, so "both things being loaded" is true for 100% of games.
Still, that doesn't say anything about what gets used after device querying.

And last time I had checked, EAX5 didn't even have a directsound equivalent.

Are you sure the game uses EAX 5.0?

It should AFAIU?
To be fair, I cannot find any *explicit* official mention whatsoever of its version, but "128 voices" seems the hallmark of eax5.
Also, it doesn't really make much sense to call something "xfi patch" if you aren't using the whole of it.

https://satsun.org/audio/
https://youtu.be/qn9qRuKLNaI
https://web.archive.org/web/20061216041050/http://www.soundblaster.com/products/x-fi/technology/ut2004/
For as much as I can tell, you don't have to use the built-in dll, if you want all effects.

this is why I've been trying with DSOAL as I'm under the impression that it's supposed to trick games into thinking you have the hardware

Putting aside you really don't seem to have understood how openal works, checking for EAX support and version is not really the same about checking for some specific hardware (just wild speculation here for the moment, though it is demonstrably true they have such discrimination inside their own ALchermy)

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

The https://satsun.org/audio/ link you commented has this in the extended comments section.

Unreal Engine 2.5 games (Example: UT2004, Killing Floor) typically have an audio option to use the 'system driver'. If you >uncheck this box, the game is supposed to use its own OpenAL driver which should be the most compatible solution; >theoretically, it should be able to provide environmental effects and surround sound through OpenAL. I've found that if I check >the 'system driver' box (and restart the game) that I lose surround sound and EAX effects, but if I then use ALchemy, surround >sound and EAX are restored (with "H/W 3D + EAX" selected); this basically means that the game is then using DirectSound >instead of OpenAL. As for UT2004, when using the game's OpenAL driver, there were some issues with sound effects not >playing and the EAX effects were either very dull or weren't functioning. I felt like the audio experience was much better using >'system driver' and ALchemy together. Results may vary so test on your own system and find what works best for you. Also, if >you have an X-Fi card that likes to BSOD with OpenAL games, using 'system driver' with ALchemy can resolve that problem; >that's how I have to play Killing Floor.

This shows that DirectSound can definitely be a factor in weather or not EAX works properly for this game, if it can be relevant to the X-Fi patch too I have no idea.
The https://youtu.be/qn9qRuKLNaI link you commented doesn't have all the effects working, reverb is clearly missing.

Yes I definitely don't understand how OpenAL works, my experience over the years has largely involved using various forms of dsound.dll to OpenAL wrappers and that's it.
Many years ago I had UT2004 running EAX with Alchemy which came as a standard program on my ASUS VX7 Laptop, if that Alchemy dsound.dll wasn't in the game folder EAX simply did not work for me back then.

from eaxefx.

jaysharp29 avatar jaysharp29 commented on May 20, 2024

On my winxp system all UE2 games ship with a openal to dsound wrapper, suggesting the games were never meant to be primarily openal accelerated. This default driver works even when openal is not installed on the machine. It doesn't work with any openal games outside of UE2. This is on an audigy2.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Good jesus.
All openal installs comes with the directsound wrapper.
That's the fallback for when the you don't use the native openal driver implementation.

It doesn't mean the games were supposed to use the "generic hardware" device as their main path (like, there's no point in shipping openal at all otherwise)
And efx-less openal-soft in 2018 didn't support eax, so of course reverb was broken.
EDIT: there's really a lot of caveats behind ut2k4

from eaxefx.

jaysharp29 avatar jaysharp29 commented on May 20, 2024

Openal games predate the openal installation package from creative. The device isn't even classified as generic hardware, but directsound3d.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Well, the earliest instance of the documentation page on the windows enumeration is december 2004, so I think it's pretty safe to say it at least applies here.
Also, those names are equivalent.

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

Updated "Known issues" in README for UT2004 with X-Fi patch.

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

Tested UT2004 with X-Fi patch on Sound Blaster X-Fi HD hardware.
There are no any EAX effects.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Lmaooo.
Did you try both "system driver" settings?

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

Lmaooo.
Did you try both "system driver" settings?

Yes, I did.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Ok so, assuming you also had "H/W 3D Audio + EAX".. did you try the 32-bit game version?
And if that also doesn't work, I'm afraid like I was hinting in the PR conversation, that you are gonna need older drivers.
EDIT: see also here

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

Ok so, assuming you also had "H/W 3D Audio + EAX".. did you try the 32-bit game version?
And if that also doesn't work, I'm afraid like I was hinting in the PR conversation, that you are gonna need older drivers.
EDIT: see also here

I did not use 64-bit patch for UT2004 at all.

Tried all available drivers from official site - same result.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Even the oldest one they have on the website still seems newer than the "cut off date" of the supposed openal bug.
So, I'd try this or this.
Also, it is argued effects may be tied to CMSS-3D for some reason.

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

Even the oldest one they have on the website still seems newer than the "cut off date" of the supposed openal bug.
So, I'd try this or this.
Also, it is argued effects may be tied to CMSS-3D for some reason.

Same result for USB Support Pack (the first link).
A driver from the second one (XUHD_PCDRV_1_02_0021.exe) could not detect the hardware.

Non-system driver in UT2004 resets CMSS setting to OFF.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

That's very odd, since it's like supposed to be the first driver for your soundcard.
Maybe you also need the older firmware... or maybe exactly the fact that it predates the W8/W10 code, is also why you aren't able to install it now.

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

That's very odd, since it's like supposed to be the first driver for your soundcard.
Maybe you also need the older firmware... or maybe exactly the fact that it predates the W8/W10 code, is also why you aren't able to install it now.

The oldest working version on the official site is XUHD_PCDRV_L11_1_02_0021a.exe (already tested earlier).

Firmware can not be applied.
image

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Well, then I'd just hope somebody else could test this with an EMU20K1 card...

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

Not sure if this will be helpful at all to track down any reasons behind this not working but Mass Effect 1 (not the remaster) will use EAXEFX natively however reverb will not work.

EAXEFX only log:

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.5
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I] Open device "DirectSound3D".
[EAXEFX] [I] Close device.
[EAXEFX] [I]
[EAXEFX] [I] >>>>>>>>>>>>>>>>>>>>>>>>
[EAXEFX] [I]

While running through the DSOAL wrapper it does seem to work correctly.

DSOAL + EAXEFX log:

[EAXEFX] [I]
[EAXEFX] [I] <<<<<<<<<<<<<<<<<<<<<<<<
[EAXEFX] [I] EAXEFX v1.0.5
[EAXEFX] [I] ------------------------
[EAXEFX] [I]
[EAXEFX] [I] Load AL driver.
[EAXEFX] [I] Try to load a driver "eaxefx_driver.dll".
[EAXEFX] [I] Load AL symbols (AL 1.1; ALC 1.1; EFX 1.0).
[EAXEFX] [I] Create EAXX.
[EAXEFX] [I] Open device "{2B104E4C-8563-4533-907B-12F8B67D43AE}".
[EAXEFX] [I] Close device.
[EAXEFX] [I] Open device "{CA2E0DD5-C24F-4800-A9AB-75C075C46663}".
[EAXEFX] [I] Close device.
[EAXEFX] [I] Open device "{2B104E4C-8563-4533-907B-12F8B67D43AE}".
[EAXEFX] [I] Close device.
[EAXEFX] [I] Open device "{2B104E4C-8563-4533-907B-12F8B67D43AE}".
[EAXEFX] [I] Close device.
[EAXEFX] [I] Open device "{2B104E4C-8563-4533-907B-12F8B67D43AE}".
[EAXEFX] [I]
[EAXEFX] [I] >>>>>>>>>>>>>>>>>>>>>>>>
[EAXEFX] [I]

I figured since they are both running some form of Unreal Engine and use EAX 5 it could be helpful information. I'm not sure how to tell if Mass Effect was actually using EAX 5 with DSOAL + EAXEFX or falling back to 3 but all I know is it definitely worked with that configuration.

Also it appears that UT2004 does indeed use EAX 5 with the patch https://en.wikipedia.org/wiki/List_of_games_with_EAX_support

from eaxefx.

mirh avatar mirh commented on May 20, 2024

Wikipedia has the credibility of a minion here to be honest... Though anyway, as always it's unclear how else you could have "eax" and "128 voices" without the fifth version.
(side note here: I think game developers always just marketed "EAX ADVANCED HD", without any version number, because at the end of the day that's what you were buying into with the eax proprietary sdk. On the other hand, it was creative to push the 3/4/5 distinction, when talking about the cards, in order to better sell newer ones)

Anyhow, I guess maybe focusing on ME could be better than UT2004 in order to focus on eax 5 shenanigans (it's UT3, and aside of the usual "DeviceName" glitch, it never had any major problem).
Also, now that I think to it.. did you try to force first of all the updated openal router?

from eaxefx.

Phantom-Aspekt avatar Phantom-Aspekt commented on May 20, 2024

I already have OpenAL 1.1 installed from https://openal.org and have had the whole time, if I enable EAX on Mass Effect without using dsound.dll I get glitchy audio, inconsistent weapon sound volume, randomly muffled audio, no reverb etc. These are the same issues I've had on multiple systems over the years from Windows 7 to my current Windows 10 system. this will happen regardless of the default OpenAL32.dll being in the game folder, replaced or not there at all. Tried Windows XP compatibility mode with no change, you name it I've probably tried it.

As far as I understand my OpenAL installation should be fine with these in my SysWOW64 folder:

OpenAL32.dll (File version 6.14.357.24)
wrap_oal.dll (File version 2.2.0.7)
soft_oal.dll (File version 1.21.1.0)

The most effective setup I've had for Mass Effect was using Sound Blaster X-Fi MB3's Alchemy with sens_oal.dll renamed to ct_oal.dll in SysWOW64 to get Alchemy to work correctly and have "Using Native OpenAL Renderer" show up in the log and enable full EAX 5 support with perfectly clear audio. This was a long time ago however and Sound Blaster X-Fi MB3 isn't even something you can get from Creative anymore.

from eaxefx.

mirh avatar mirh commented on May 20, 2024

"Openal 1.1" is just the major api version since (checks notes) october 2005.
The build/minor version of the dlls providing that is a quite different thing.
And you are in fact using 2.0.7.0 as opposed to 2.1.0.0.
Not that I really know of any actual improvement or even just change between the two, but that's what creative ships in their drivers, so.. I don't think it hurts.

With this said, back to the game at hands.. Last time I checked, you don't "enable eax".
You just have it pick up whatever implementation you have (it's a bit complex, and kcat/openal-soft#574 could be slightly better here, but long story short just set DeviceName), and it will use the features accordingly.
What you are using can can be verified in the logs inside the savegame folders.

Did you just mean using eaxefx as opposed to just openal-soft?

from eaxefx.

bibendovsky avatar bibendovsky commented on May 20, 2024

It seems, setting EAX properties is not implemented in the X-Fi patch.


Regular ALAudio.dll.
SetEAXEffect function has some code.
ut2004_non_x_fi_ualaudiosubsystem_seteaxeffect


ALAudio.dll from X-Fi patch.
SetEAXEffect function returns immediately, i.e. does nothing.
ut2004_x_fi_ualaudiosubsystem_seteaxeffect

from eaxefx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.