kcat / dsoal

A DirectSound DLL replacer that enables surround sound, HRTF, and EAX support via OpenAL Soft
GNU Lesser General Public License v2.1
385 stars 51 forks source link

Knight Rider: The Game won't start with DSOAL's dsound.dll #41

Open Matthaiks opened 2 years ago

Matthaiks commented 2 years ago

Application Error Event ID 1000 Faulting module name: DSOUND.DLL

Demo version (the full version is affected too): https://www.gamepressure.com/download.asp?ID=2146

Needs dgVoodoo2 (or other Direct3D wrapper) to run on Windows 10: http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/

It does run with Creative ALchemy.

ThreeDeeJay commented 2 years ago

Hmm, even the latest DSOAL build crashes for me, too. Fortunately, the alternative fix I used in #40 also works in this game. So basically you just need to use DSOAL XP DLLs from here: https://github.com/pachuco/dsoal-XP/tree/master/release That should fix the crash, but it'll just be virtual stereo. So you'll also have to force EAX (2.0) by either:

The positional audio accuracy is still way off, tho. It seems the Z and Y axes are swapped or yaw is shifted to the right or something. So when the helicopter's flying in front, it sounds like it's coming from the right and when it's on top of me, it sounds like it's in front: https://youtu.be/m53MuvfRkC8

ThreeDeeJay commented 2 years ago

@Matthaiks Issue seems fixed in 910cf95edc7c36113e949fa073cae637d3b44557 so you can download the new dll from here or the whole package from here (might need to manually set hrtf = true in alsoft.ini).

So now all this game needs is probably just https://github.com/kcat/openal-soft/issues/674 👀

Matthaiks commented 2 years ago

@ThreeDeeJay Knight Rider starts with the new dll, but it does not with the dll from the whole package (no crash, but the process stays in Task Manager).

ThreeDeeJay commented 2 years ago

huh, that's odd. they're both using the same DSOAL build and work on my end Are you sure you used the Win32 build? It can be confusing cuz even if your system/processor is 64-bit, the DLLs have to match the game architecture (32-bit). Or perhaps the OpenAL Soft used in the package (latest at the time of the last DSOAL commit), or maybe it's some setting in alsoft.ini. 🤔 If you want, you can enabling logging (this tool makes it easier) Anyhow, at least now we know the latest official build works 👌

Matthaiks commented 2 years ago

Win32 build, default alsoft.ini, it doesn't create any log file ("the new dll" does). Yes, that's odd.