-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Beyond Good and Evil Echo doesn't work? #82
Comments
Regarding those EAXSet errors, we might need to get some input from @bibendovsky. The docs I have for EAX2 clearly says Environment Diffusion ranges from 0 to 1, and the presets use that range. Though I do know some reverb APIs would have a Diffusion setting that ranges 1 to 100 (FMOD's reverb struct actually has two Diffusion members, Whatever the issue is, it seems to be preventing the reverb environment from changing since the game sets Something interesting I see in the DSOAL log, though, is this:
This is probably not the cause of this issue, but that propset looks suspiciously EAX-related. Besides being queried in between EAX2 and EAX3 listener queries, it's similar to |
The ranges mentioned in the error messages are correct. Creative's implementations (OpenAL and DirectSound) for Audigy Fx returns an error for values outside of the ranges. Though, EAX works in the game via Alchemy. |
Even when set through I'm not too worried about the |
Yes, I tried it with EAXREVERB_ALLPARAMETERS. |
I mean Alchemy or the hardware driver having a built-in workaround for this issue when it detects it's playing this game. It's not unusual for drivers to have workarounds for bugs in specific games, if the game's devs couldn't fix it on their end. This detection could be as simple as checking the executable name, or looking for other files in the same directory as the executable the game is expected to have, to matching the hash of some file(s) from the game. Then if it matches, change how it handles the diffusion parameter (ignoring it, clamping it, dividing it by 100, whatever). Or maybe there's something with that unknown propset that the game wants to use. |
Yes, something like this was done in EAXEFX for Doom 3, Quake 4 and Prey. |
Quick test in Peyj's Workshop area shows the following:
|
So there's possibly an issue with OpenAL Soft not having a generic reverb audible by default. The current behavior here is to initialize the default parameters for reverb on FXSlot0 and chorus on FXSlot1, but doesn't flag them as "dirty" so they don't get applied to EFX until an effect property changes (which avoids having reverb and chorus running when they're never used). This is normally fine since it's very unlikely that an app would use reverb without touching the effect parameters, but since this game is passing invalid parameters, it errors with no change to the effect, leaving the effect inactive until it successfully sets an effect parameter. I'm not sure this is worth worrying about this since it seems reverb is only missing when loading directly into the area, whereas in ALchemy/hardware it's the generic preset. If another area's reverb is set, going to that area would keep the same reverb in both DSOAL and ALchemy/hardware. |
Made a patch to fix reverb parameters. |
https://youtu.be/TPoonnbTw8A |
So, except the two errors unrelated to reverb it works fine? |
At the moment it's working fine. But I will have to complete the game with ALchemy and DSOAL. And I will send reports. |
https://youtu.be/hoOr3E6mNC8
https://youtu.be/K2LvZJ04QLE
dsoal_error.txt
alsoft_error.txt
alsoft.txt
I think echo works better in Alchemy. I don't hear echo in DSOAL.
The text was updated successfully, but these errors were encountered: