sonic2kk / steamtinkerlaunch

Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs
GNU General Public License v3.0
2.03k stars 69 forks source link

Override Reshade to version 6.1.1_Addon Not Working as Expected #1120

Closed Nano-Ocelot closed 3 weeks ago

Nano-Ocelot commented 3 weeks ago

System Information

Issue Description

Trying to override reshade version to 6.1.1_Addon doesn't seem to do anything. I checked "override reshade" and added "_Addon" like the wiki says but it doesn't install and use the Addon version of Reshade as one would expect.

Logs

steamtinkerlaunch.log

Screenshot of all Reshade Settings

image

Nano-Ocelot commented 3 weeks ago

I should note that I discovered that it does appear that STL did in fact download 'Reshade 6.1.1_Addon' into it's internal folder but it doesn't seem to properly override and place it into the game folder.

sonic2kk commented 3 weeks ago

I think this issue is because you have a previous ReShade installation, and you didn't enable "ReShade Update" to update the existing ReShade DLLs for that game. See the following line:

Fri Jun 7 02:10:51 AM EDT 2024 SKIP - installRSdll - Destfile '/home/USER/Games/SteamLibrary/steamapps/common/Sekiro/dxgi.dll' already exists and is tracked by us, but not checking the installed version, because RESHADEUPDATE is '0'

So there are ReShade files in your game folder it seems. But perhaps you installed the default ReShade version and then tried to use the _Addon version, and your issue is that the version didn't change. In that case, then enabling "ReShade Update" should resolve the problem.

The ReShade Override version allows you to set a per-game version of ReShade that is different from the global version. Just like if you change the ReShade version on the Global Menu, the ReShade Override version will not be updated unless you enable "ReShade Update".

If ReShade is not working for you at all, and it is not simply that the version is wrong, verify that the ReShade DLLs in the game folder are actually in the same folder as the Sekiro EXE. If not, you can set the "Alternative game exe path" ('ALTEXEPATH') option to change the folder that the DLLs are installed to so that it is the same as the one with the game EXE.

Good luck!

Nano-Ocelot commented 3 weeks ago

Reshade works perfectly fine it's just not using the Addon version like I want it to. It's just using the normal 6.1.1 like my other games are using. I've tried enabling 'reshade update' before as well and that doesn't do anything either. Here's another log after launching the game with that option enabled. steamtinkerlaunch.log

sonic2kk commented 3 weeks ago

Is the installed ReShade version in your prefix also 6.1.1 by any chance? If so, I think I see the problem.

The internal ReShade version for ReShade addon does not actually include the _Addon suffix. In fact, STL used to check for the _Addon suffix and we realised this caused issues: https://github.com/sonic2kk/steamtinkerlaunch/issues/873#issuecomment-1703610997

So I wonder if the problem is that your installed ReShade version and the ReShade Addon version are identical. In other words:

You can check the version of the currently installed ReShade by going to your game's EXE folder and running strings dxgi.dll | grep "^Initializing" (note: The dxgi.dll part comes from your log, I can see that the ReShade DLL has this name). This will give you the version string, if it says '6.1.1' in the string then I would say this is why the ReShade version is not updating.

If that is the case, not much can be done except to remove your ReShade dxgi.dll and ReShade.txt files and then re-run your game, so STL will see there is no ReShade installation and copy over the new _Addon files without issue.

Let me know how this goes :-)

Nano-Ocelot commented 3 weeks ago

Yeah I have 6.1.1 currently installed and decided to try out some addons which requires the full Addon version. That command returns this crosire's ReShade version '6.1.1.1848' (64-bit)

So if I'm understanding what you're saying, when the currently installed version is identical to the addon version it can't differentiate and so it does nothing. Like in this instance 6.1.1 is installed and I'm trying to install 6.1.1_Addon.

If that's the case then it's pretty minor. Manually removing the dll is a quick and easy fix. It's not like I'm constantly trying to swap between the normal reshade and addon version anyway.

I just manually removed them like you said and it properly installed the addon version of reshade. Thanks so much.

sonic2kk commented 3 weeks ago

That's great news that it works, happy gaming!

So if I'm understanding what you're saying, when the currently installed version is identical to the addon version it can't differentiate and so it does nothing. Like in this instance 6.1.1 is installed and I'm trying to install 6.1.1_Addon.

You've pretty much hit the nail on the head, yes.

As far as I know there is no reliable way to differentiate an _Addon DLL. So there is no way to know if the 6.1.1 DLL in the current folder is different from the _Addon one. I am no expert though and maybe there is something that strings reliably and consistently returns that allows us to make this distinction to say "This DLL is _Addon and the one in the game files is not, please replace it", or vice versa.

I am not an active ReShade user, so there could be a way to do this, but I think I checked this out a while back and there was not. But if there is, someone is free to come forward and implement it :-) I am not being dismissive, I just simply do not know how to accomplish such a distinction, if it is even possible.

There could be a hacky workaround with leaving the "raw" ReShade version in a text file or something in the game files, but that's not very clean, it would be better if there was something we could check directly on the DLL.

Nano-Ocelot commented 3 weeks ago

Yeah the only workaround I could think of is to list the reshade version installed perhaps in the reshade.txt file along with the name of the dll or something like that. Or perhaps a separate file that is created whenever reshade is installed to a games path. It's hacky but could definitely work.