Hitman Codename 47 ambient sound effects too loud
In Hitman Codename 47, the ambient background sound effects are way too loud and at low volume settings for them, they are way too quiet. With 'use hardware' and 'use eax' both checked in settings. This is how they sound in-game (turn down the volume as it is quite loud): https://streamable.com/wnwux9
Normally, they are supposed to sound like this: https://youtu.be/ucrjGqOvEWo?t=54
Edit: Reducing the number of channels in the settings seemed to calm that down a bit, but the sounds seem to loop constantly every second or two.
Seems like the background sound effects aren't being properly done in 3D. They sound like they're playing at full volume without any panning, where normally they're panned with more varying volumes from distance.
Are you able to generate a DSOAL log? If you set the DSOAL_LOGLEVEL environment variable to 4, and DSOAL_LOGFILE to a path\filename (make sure it's a folder you have write permissions for), then run the game, it should generate the named file.
In case you need help enabling logging, you can download this script then drag and drop the game .exe into it so that it runs it and creates log files: https://raw.githubusercontent.com/ThreeDeeJay/ALog/refs/heads/main/Drop%20exe%20to%20run%20with%20logging.bat
I don't think I did that right.
In case you need help enabling logging, you can download this script then drag and drop the game .exe into it so that it runs it and creates log files: https://raw.githubusercontent.com/ThreeDeeJay/ALog/refs/heads/main/Drop%20exe%20to%20run%20with%20logging.bat
I tried this as well, but it gives an error of "failed to find steam". Which I assume due to Steam's drm. It also does this even if you launch this and the other Hitman games directly from the exe. Suppose I could use a gog or other exe but I don't have it on there and want to sort of be relevant with the Steam exe (it might not matter though). Or not sure if there's another workaround for that.
You can also run the script directly (without drag and drop) and it'll give you options to enable logging globally Setting the log to be created in the steam game folder may fail if the exe doesn't have permission to write to that folder and might create it in a virtualstore folder that's harder to find, so just follow either method depending on whether you run the game as administrator and the folder is write-protected.
Here are the log files:
Thank you for the script. The log files weren't generating at first. I don't know if it was because I didn't name it the exact name as "logging.bat" or what, but now it works.
Edit: Now that the logs are able to generate, they will not stop generating even though they are not in my environment variables anymore. Is there any way to disable them?
My environment variables are clear of them as you can see, but they're still generating for some reason?
Edit: Now that the logs are able to generate, they will not stop generating even though they are not in my environment variables anymore. Is there any way to disable them?
If you ran the script directly, instead of dragging and dropping, run it again and it should say what to do.
As for the game, according to the log it seems it keeps setting properties using deferred mode without seeming to explicitly committing them. I do see it regularly calling IDirectSoundBuffer::SetVolume though... maybe some calls are supposed to implicitly commit deferred settings (I think something does with OpenAL EAX).
Yes I did. It says that "user environment variables have now been removed so logging is now disabled", which they are not in my environment variables anymore. Although regardless of that, log files are still being generated in my appdata>roaming>openal folder. I'm not sure if that's normal.
When drag and drop doesn't work so you run the script directly to set environment variables, the first thing it does is clear the variables, so you gotta press Enter to actually set them (perhaps I should swap that behaviour?). Also, it sets the variables differently depending on whether you run the script as administrator, so you can just try both methods to make sure logging is always enabled. And finally, you gotta run the game as usual (via Steam, launcher, etc) and it should run with logging enabled, though the logs might be generated in %APPDATA%/OpenAL/ so check that too. When done, you'll wanna disable logging because it might cause unnecessary slowdowns and drive usage if there's excessive logging in the background
Yeah, I was able to have the logs generated fine. It's the disabling I can't get working. They're supposed to be disabled, there's nothing related to dsoal or alsoft logging left in my environment variables, yet the logs are still being generated in appdata.
As you see in this image, there are none of them left, yet I'm still having dsoal_error.txt and alsoft_error.txt show up after they were deleted from before. New ones keep getting generated regardless of logging supposed to be disabled.
Did you also run the game or script as Administrator or a normal user?
@ZT-1 Huh, now that you mention it, I think I've encountered that quirk myself. Wonder if the variables linger in a background cmd process or something 🤔 Does it still happen if you reboot?
Did you also run the game or script as Administrator or a normal user?
I've ran the script as both admin and normal user. The game can't be ran as admin or else it'll say "failed to find steam" when you try to launch it.
@ZT-1 Huh, now that you mention it, I think I've encountered that quirk myself. Wonder if the variables linger in a background cmd process or something 🤔 Does it still happen if you reboot?
Yes, the log files still keep generating in appdata after restarting. I don't know if they got added to the registry or what.