-
Notifications
You must be signed in to change notification settings - Fork 15
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
Proper DX8 wrapper that only fixes Freelancer compatibility issues #14
Comments
I found a stable solution that utilizes a d3d8.dll from an older Windows 10 version. Simply add it to the EXE folder of the installation and it'll work. It's so ingenious and I can't believe I never thought of this before. Download it here: https://www.moddb.com/games/freelancer/downloads/freelancer-broken-interior-lighting-fix One of the downsides is that it doesn't fix the glass reflection map issue, as that has been a problem long before that d3d8.dll was created. Additionally, other Freelancer-related compatibility issues will still be present since this solution can't be combined with d3d8to9 afaik. |
Looks like it is possible to do this with dxwrapper. Unfortunately with my configuration this doesn't seem to work properly elishacloud/dxwrapper#134 . It's possible that I did something wrong here but I'm not sure. |
Hi, I would like to see if I can replicate the issue. What station did you take your screenshots at? From my own testing, using dxwrapper with the stub, everything looks fine on Planet Manhattan and Newark Station. Thanks. |
Hi, neither Planet Manhattan nor Newark Station are affected by the lighting bug AFAICT. The screenshots from this issue were taken at Freeport 1 in Omega-3 I believe. In case you didn't already know, you can beam yourself there using the I think the lighting bug is most noticeable at the Liberty Dreadnoughts like Battleship Missouri in New York ( Also, what version of Windows are you using? |
Thanks @BC46, I will check out both locations. I am using Windows 10 Enterprise 64-bit (10.0.19041). |
There's common code used between D3D9 and 8 in the fixed function to shader converter that tries to approximate the behavior on unified shader architectures (as a reminder, G80 and later do not have the fixed function and split pixel/vertex shader designs that 8 and 9 were designed with in mind) The spotlight math in it is rather fragile, so while i've seen comments here and there that its because d3d8 is now auto-promoting to d3d9, this is not the case, I must also point out that now that this has been brought to Microsofts attention the fixes made since might break in the future. |
In Windows 10 update 2004, Microsoft made changes to the DirectX rendering pipeline which caused the lighting in many base interiors to be broken. Additionally, the environment map materials for glass textures no longer work either. This particular issue has been present even before the Windows 10 update 2004.
Currently, we use dgVoodoo2 (a legacy DirectX wrapper) as an optional patch to fix all of the issues mentioned above. Unfortunately, its stability cannot be guaranteed as it may cause stutters, bugs and crashes while playing. Therefore, a custom DX8 wrapper that is both stable and focuses on fixing all of the issues mentioned would be a great replacement.
Edit:
A DirectX 8 wrapper can be created using the DirectX-Wrappers project. By intercepting the set light calls it's possible to fix the lighting bug directly. Here's a proof of concept: https://github.com/BC46/freelancer-lighting-bug-fix. With this wrapper it's also possible to force native AA and AF within DirectX 8, which is ideal.
Freelancer on Windows 10 update 2004 and later
What it's supposed to look like:
The text was updated successfully, but these errors were encountered: