X3 - 4k (upscaled GUI), Shaders, HDR with dgvoodo, Reshade, ASI Loader (unstable?)

The place to discuss scripting and game modifications for X³: Terran Conflict and X³: Albion Prelude.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

Post Reply
User avatar
Perahoky
Posts: 499
Joined: Fri, 22. Aug 08, 16:04
x4

X3 - 4k (upscaled GUI), Shaders, HDR with dgvoodo, Reshade, ASI Loader (unstable?)

Post by Perahoky »

Hello,

TLDR: I packed a mostly working (bit unstable) solution for dgvoodo+asi loader+ reshade to get (fake-) 4k with upscaled GUI, HDR support and shaders over DX12. See readme.txt for links.
I hope it works for others too.
https://drive.google.com/drive/folders/ ... drive_link
(updated 05-09-2024 01:58:00 MEST)

A few months ago i posted a thread about using reshade HDR in X3. While this first approach worked, i didnt like this custom HDR shader at all.
The Lilium HDR (AutoHDR.addon32) is far better but requires DX12 reshade to detect the real hardware HDR support instead of tricking color spaces.

Another problem for me was X3 resolution and non-upscaling GUI at 4k. I was forced to use a lower resolution to be able to read the GUI but this messed up my multi monitor setup everytime.

So i loaded dgvoodo into X3. This gave me DX12 and 4k upscaling with upscaled readable GUI because X3 is set to the normal resolution and 4k upscaling is forced in dgvoodo.
This worked like a charm.

But with using dgvoodo, reshade over Dx12 stopped loading. Works in other games (tested earth2150) but not in X3.
It seems X3 prevents the loading of other DX runtimes other than DX9 over dgvoodo.
When using DXVK (transforms DX12 calls to vulkan) reshade and HDR worked, but its missing upscaling.

So i tried using Windows DLL redirection ("X3.exe.local") to force applications to load existing dlls from local directory, bypassing the TargetPath of LoadLibrary win32 call.
This didnt work for dxgi.dll (dx10-12) - X3 wont initialize. In other games it worked.

So i started using ASI loader which injects other dll runtimes by bypassing other DX components (dinput8).
By renaming a dll to .asi it forces the application to load this file as dll at initialization.

This was originally funded for GTA modding and is now widely used in other modding scenes - like earth2150.

And this works! Reshade loaded and works!
... almost. Because X3 got a bit unstable.
While running smooth, after a few minutes (20-30?) of Alt+Tab & Shift+S it freeze and crashes.


Maybe someone want to try this solution to enjoy it, find improvements and has a idea to fix the instability?
I got debug dumb files from the crashes but didnt load it into VS debugger until now. I doubt i would understand it anyway ;)

But i'm glad i got it running so far except the instability issue.


I got X3 to ...
- DX12 (redirected from dx9)
- 4k (fake) with upscaled GUI
- HDR over color tone mapper with real hardware color channel detection (not just saturation and contrast)
- Not messing up multi screen setups
- ASI loader (loads dll's renamed to .asi as plugins, enabling bypassing or replacing whole functions like in Cities:Skylines in C#)
- Load Reshade with shaders at DX12 via asi loader

If you dont like using dlls from untrusted locations (me), i wrote how to install it on your own.

See you!
"Hope is the last force i have"
"This is how liberty dies, with thounderous applause"
***Modified***
Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts and Modding”