Skip to content
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

Deus Ex - Environment Size out of range #1115

Open
siteod opened this issue Feb 22, 2025 · 6 comments
Open

Deus Ex - Environment Size out of range #1115

siteod opened this issue Feb 22, 2025 · 6 comments

Comments

@siteod
Copy link

siteod commented Feb 22, 2025

I don't know if it's even worth noting, I was just adjusting my config to 2ch speakers for streaming on twitch and noticed this in the alsoft-error log. Figured I'd post it up in case

[ALSOFT] (EE) EAXSetDirect [EAX_REVERB_EFFECT] Environment Size out of range (value: 0.482380; min: 1.000000; max: 100.000000).

alsoft_error.txt
dsoal_error.txt

@ThreeDeeJay
Copy link
Contributor

Might wanna try playing for longer to see what's the max value it reaches.
Because maybe 0.482380 could translate to 4.82380 or 48.2380. Not sure if this is a bug in OpenAL Soft, the wrapper (if any) or the game implementation, which maybe would require something like a game-specific environment size multiplier🤔
Also, might wanna set DSOAL_LOGLEVEL=4 which is needed on newer build for more verbose logging, because if I'm reading it right, right now it just shows the game querying for EAX support, but not actually setting parameters:

10f8:trace:dsound:BufferProp::QuerySupport (0x34824450)->(DSPROPSETID_EAX10_ListenerProperties, 0x0, 0x123c028)
10f8:trace:dsound:BufferProp::QuerySupport (0x3486f030)->(DSPROPSETID_EAX10_ListenerProperties, 0x0, 0x123c034)

@siteod
Copy link
Author

siteod commented Feb 27, 2025

Well dsoal loglevel 4 produced a 2.5GB file so I don't think I'm gonna be able to upload that one lol

e: okay i loaded it up and ran around for a couple minutes and got a smaller log

dsoal_error.zip

@ThreeDeeJay
Copy link
Contributor

There's probably a ton of redundant data so maybe max compression would've helped?

Anyhow, now there's
1044:debug:dsound:BufferProp::Set (0x33dc7430)->(DSPROPSETID_EAX10_ListenerProperties, 0x0, 0x0, 0, 0x13dbd90, 16)
Which doesn't tell me much but hopefully there's enough to give kcat a better idea of what's going on so you'll just have to wait for him to get a chance to respond. 👀🤞

@kcat
Copy link
Owner

kcat commented Feb 28, 2025

This is confusing. The game seems to only be using EAX1, which doesn't have access to the Environment Size property. The EAX1 listener property DSPROPERTY_EAX_ALL is 16 bytes, which contains an environment id/preset, volume/gain, decay time, and "damping" (relative hf decay rate). None of the EAX1 properties ever invokes EnvironmentSizeValidator's operator to throw the "Environment Size out of range" error, so I have no idea where it could come from.

Is it possible to generate a combined alsoft and dsoal log? You'll need to have them output to stderr instead of specifying DSOAL/ALSOFT_LOGFILE with filenames (otherwise they'll try to overwrite each other's log file if given the same name), and pipe the process's stderr to a file, which I'm not sure how to do on Windows. But if you can, it should show what DSound calls were made that cause the EAX error in OpenAL Soft.

@siteod
Copy link
Author

siteod commented Feb 28, 2025

I have no idea how to do that tbh. @ThreeDeeJay any thoughts?

@ThreeDeeJay
Copy link
Contributor

I know how to output to a file by appending instead of overwriting (program.exe >>log.txt), but only when the program is already printing to the console, but I'm not sure how to force DSOAL's log onto the console 🤔
Wonder if it'd be feasible to have something like DSOAL_LOGLEVEL=5 to include the OpenAL Soft log in the same log stream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants