-
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
Thandor: The Invasion - no sound with dsoal #104
Comments
As a further information about this, the Windows 11 system dsound.dll returns an error code at the Play method like shown in the following DxWnd log:
Where 0x887d0009 corresponds to APOERR_INVALID_CONNECTION_FORMAT |
I have no idea if there's a solution, but here's a few more options to test in case it can offer more clues:
|
DsoalXP produces the same silence, here is the log.
But hey! This version works here in Win7. What is the difference? What's different in this version? I would like to find out. |
Currently DSOAL is being rewritten into C++ in a different branch which is technically newer than the main branch but I think not all features have been reimplemented yet. But hey, if it works, it works ™️ |
Just to clarify, DSOAL is being used to fix the "silence" that is present with the native DSOUND. There is a probability that it was never fixed in DSOAL in first place |
Now I tried it and I have no sound or music with this version (in Win7). Something must have made the difference between these versions. The previous version you sent works fine. |
I doubt DSOAL would have the same error. I see the app is calling
From the looks of the logs, it seems the app is creating a primary buffer with Newer/c++-rewrite DSOAL will succeed with trying to pan the primary buffer, storing the set value but otherwise ignoring the call, which makes the app happy and lets it continue as intended (though if it ever does set a non-0 pan on the primary buffer, that won't do what it's intended to and the sound won't change). |
@kcat, @ThreeDeeJay |
I did have an opposite effect and solution. On my Windows 11 machine, the menu effects play. However with @ThreeDeeJay 's build that worked for @huh02 I get no sound. IndirectSound, with at least 10 sound buffers return the menu effects and music. With 63 buffers (preferably 64 by Audigy2 standards), all the sounds (including the talking man) work. Is this feature of HardwareBufferCount available on DSOAL? |
@ThreeDeeJay I tried to use your version, and log the operations, but the file is just blank. Other DSOAL versions don't have this issue |
Not directly. By default, DSOAL requests 1024 sound sources from OpenAL, and reserves 128 as "hardware" buffers (I've run into an app that fails to play any audio if it's higher), leaving the rest as "software" (some apps pre-allocate a lot of software buffers, even though it doesn't play many at once). If OpenAL can only allocate 256 sources or less, DSOAL will instead reserve only 64 as "hardware" buffers. So you can create an
to limit the number of sources OpenAL Soft will allocate, reducing the DSound hardware buffers to 64. This will also reduce the number of software buffers that can be allocated, which may or may not be a problem for a given app. Currently DSOAL doesn't have any direct configuration options itself, as I've not made a configuration parser for it yet. It will only be affected by OpenAL Soft's capabilities, which can be configured via |
As unfortunate as it is, the game is still quiet with this configuration in alsoft.ini. If it helps, I am uploading my logs: |
You need to use the build from the c++-rewrite branch. The older version returns an error from |
As I said earlier, it creates an empty log file. It doesn't even bother creating the OpenAL log, even when explicitly put in as an env var. The non-c++ rewrite creates a dsoal log saying openal was loaded, and that's the only line. OpenAL log isn't yet generated. The last version that works is 0.9.5 from ThreeDeeJay |
@ghotik was kind enough to create a exclusive build to handle the SetPan capability. Coupled with 0.95, the last build that would "log" on my machine, it was "outputting" sounds!
|
That would suggest it's not using OpenAL Soft, then. Either
128 sources would still reserve 64 hardware buffers, only shrinking the number of software buffers it could create. Any less than 128 sources will fail with opening the device, as the number of available sources would make the available buffers very low, and inevitably cause problems for many apps. I don't really know how many hardware voices apps could expect from contemporary devices, but I can't imagine many apps would be happy with less than 64. Maybe 32, but would apps really accept (let alone require) less than that?
I doubt it has to do with being unsigned code. Neither the new or old versions are signed, so the behavior should be the same. Some apps do apparently have an issue with the way they load DSound that it won't recognize the dsound.dll in its own folder as an override for the system DLL, which can be fixed by setting some registry keys. However, if that was the issue, it'd affect the new and old versions alike as well, with the effect being it using the normal system dsound.dll as if DSOAL wasn't there. |
Yes I already tried putting 2, 3, 4 there. The result is always a 0KB file |
Hi, I would like to ask if it is possible to fix this. With dsoal dsound.dll there is no sound or music on Win7 or Win11. This works with indirectsound or with dsound.dll from WinXP. Since I can't compile dsound.dll alone, I used bulid version from http://vaporeon.io/hosted/dsoal-builds/ but not even with the version from https://ci.appveyor.com/project/ChrisRobinson/dsoal/build/job/gpn3b2x1t88ioodr/artifacts
it doesn't work. Here is the log with variable debug 3.
3dsoal_error.txt
Thanks.
The text was updated successfully, but these errors were encountered: