Closed AlexOxorn closed 3 years ago
The error message is a little misleading. The code that detects d3d8to9 works by detecting that d3d9.dll has been loaded, as seen here: https://github.com/michael-fadely/sadx-dc-lighting/blob/master/sadx-dc-lighting/mod.cpp#L482-L492 - there's no actual filesystem detection going on.
This works on native Windows because:
In the case of Proton, I could imagine d3d8to9's d3d8.dll actually might not be getting loaded at all, and if it is, there could be some dxvk trickery going on. This is ultimately what I would need to know in order to resolve the issue.
HOWEVER, if this and the Dreamcast Conversion Mod are enabled, upon entering Casino Night (update: and pre Egg Viper cutscene), the game crashes.
This is likely because Dreamcast Conversion is attempting to use Lantern Engine APIs. Lantern Engine doesn't have a way to communicate to other mods that initialization failed. The only thing other mods can do is check that Lantern Engine is loaded (which it still is in this scenario).
That's really interesting thank you.
In the case of Proton, I could imagine d3d8to9's d3d8.dll actually might not be getting loaded at all, and if it is, there could be some dxvk trickery going on. This is ultimately what I would need to know in order to resolve the issue.
Is there anything I can do to help with this? I want to help make things as Linux Compatible as Possible
Since Proton is Wine derived, I would imagine it shares the ability to prefer native DLLs over built-in DLLs. I haven't used Wine in a long time though, and I haven't really poked around with Proton, so I'm not sure this is the case. But maybe you can get it working with d3d8to9's d3d8.dll.
I looked into that and found the environment variable WINEDLLOVERRIDES
So i set the launch command to WINEDLLOVERRIDES="d3d8.dll=n,b" %command%
which tells wine to prefer the native d3d8.dll over a builtin.
This does cause the game to launch without the "can't find d3d8.dll" message, so that's good.
However, upon launching, the screen just displays a white background and freezes.
:")
i set the launch command to
WINEDLLOVERRIDES="d3d8.dll=n,b" %command%
which tells wine to prefer the native d3d8.dll over a builtin. This does cause the game to launch without the "can't find d3d8.dll" message, so that's good. However, upon launching, the screen just displays a white background and freezes.
you need to change the Proton version, i tried with Proton-6.9-GE-1 and its working, maybe it works with the latest version of Proton GE too
you need to change the Proton version, i tried with Proton-6.9-GE-1 and its working, maybe it works with the latest version of Proton GE too
Combining the new version of Proton and my launch command thing works. Plus the CGI cutscenes play again :) Thank you.
Glad it all worked out. Thanks you two!
Playing on Linux
Before I describe the bug, I want to start by saying that I'm playing SADX on Linux using Steam Proton. (Steam's Specialized version of Wine, optimized for gaming + DirectX translation layer) To that end, I understand that this might not be fixable considering how many layers of Windows Steam would have to go through, but I would still like your input if possible
Encountered behavior
There are sort of two bugs... kind of: First Issue) When trying to run SADX from steam, before it starts I get the error message
And when I went to github to find the file and add it to the folder, I noticed that I had a
d3d8.dll
I decided to replace it, yet I still get the same errorSecond issue) For the most part, after that error message, the game runs fine, seeming like it's not using the engine. HOWEVER, if this and the Dreamcast Conversion Mod are enabled, upon entering Casino Night (update: and pre Egg Viper cutscene), the game crashes. The level works fine with only one or the other (keeping in mind that the lighting mod isn't even working for me right now)
Expected behavior
To... uh, see the
d3d8.dll
that's right there Also to not crash Casino NightInstalled mods
Steps to reproduce:
Linux... Stuff
I took some liberty to do (admittedly mild) poking around for information that you might find useful First, using this as the launch options:
echo "%command%" > ~/sadx_exec.txt
I was able to figure out that this was the command used to start SADX from Steam
In addition, some of the folders thing are found in aren't consistent. For example, the Game Files are located at:
While the Steam Save data is saved in:
If you are able to help, or otherwise have questions for me, or want me to try something, let me know. Thank you for your time.