cdozdil / OptiScaler

OptiScaler is middleware that enables various upscaling technologies in DLSS2-only games. It allows non-Nvidia users to use upscaling by applying DLSS2 inputs to XeSS, FSR2, or FSR3.
MIT License
289 stars 5 forks source link

How to use this in a game like Star Wars Jedi: Survivor? #25

Open Fooughhy opened 1 month ago

Fooughhy commented 1 month ago

When installing this game through PC Game Pass, it installs it using the EA App.

The structure of the files for the game are very different from how it normally is. The game ".exe" file is in the folder:

\SwGame\Binaries\Win64\JediSurviror.exe

Normally the DLSS files would be somewhere close to that, if not in the same folder. But in this case the "nvngx" files are in:

\Engine\Plugins\Runtime\Nvidia\DLSS\Binaries\ThirdParty\Win64

Could you help me figure out how I should organize the OptiScaler files in this case?

cdozdil commented 1 month ago

Hi,

You can use DLSS 3.7 installation method.

  1. Extract OptiScaler to \SwGame\Binaries\Win64\ and rename nvngx.dll to dxgi.dll

  2. Copy nvngx_dlss.dll from \Engine\Plugins\Runtime\Nvidia\DLSS\Binaries\ThirdParty\Win64 to \SwGame\Binaries\Win64\ and rename to nvngx.dll.

It should be ok 👍

Fooughhy commented 1 month ago

If I am using SpecialK with this, is it possible to not have the OptiScaler be called dxgi? I have tried naming it "OptiScaler_dxgi.dll" and then loading it using SK as a "Proxy" for dxgi, but that hasn't worked. Though maybe I didn't copy that "nvgnx_dlss" correctly? I'll try it again.

cdozdil commented 1 month ago

Hi,

If you check installation guide at main page there is explanation for reshade and other mods.

If there is another mod (Reshade etc.) that uses the same filename (for example dxgi.dll), if you rename it with -original suffix (for example dxgi-original.dll), OptiScaler will load this file instead of the original library.

Alternatively you can create a new folder called plugins and put other mods files in this folder. OptiScaler will check this folder and if finds same dll file (for example dxgi.dll) will load this file instead of the original library. image

I would suggest using plugins folder for reshade, it works nicely.

Fooughhy commented 1 month ago

I didn't say ReShade, I said SpecialK. And SpecialK should, from my understanding, always load first. SpecialK will load ReShade, even.

But I will try loading the OptiScaler nvngx.dll in some other way, maybe. SpecialK doesn't use "dxgi.dll" directly, it has a global injection service. But if I have a dxgi.dll file in the game folder, SpecialK won't load.

cdozdil commented 1 month ago

Hi,

Try renaming OptiScaler to something else then, maybe version.dll or winmm.dll?

It will still hook dxgi.dll and try spoofing.

Fooughhy commented 1 month ago

That did not work either. I also tried to use it with "DLSS Enabler", just to see, but that didn't work either.

  1. In that case I extracted all files as normal. Both OptiScaler and DLSS Enabler.
  2. Renamed OptiScalers "nvngx.dll" to "dlss-enabler-upscaler.dll".
  3. Copied the games "nvngx_dlss.dll" file and renamed it "nvngx.dll".
  4. I then removed SpecialK completely, and started the game with just the JediSurvivor.exe file.

But that just produced these logs, and the game didn't start. dlss-enabler.log dlssg_to_fsr3.log

cdozdil commented 1 month ago

Hi,

For getting help on DLSS Enabler you can use Posts at Nexus or visit DLSS ENABLER MOD channel at DLSS2FSR. Artur is really helpful developer and most probably will help you to solve this issue.

I have tested OptiScaler (without SpecialK) on Jedi Survivor and was working without any issues.