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.19k stars 73 forks source link

Do not download latest GE-Proton if it's already exists #1187

Open OlegAckbar opened 1 month ago

OlegAckbar commented 1 month ago

System Information

Feature Description

If you have checkbox "Auto-last GE-Proton" enabled it would download new GE-Proton version even if it's already existing in compatibility.d folder (for example, if downloaded by umu-launcher). Might be a great idea to check for its existence and only start to downloads when it is missing.

zany130 commented 1 month ago

It's not just proton ge it's several other tools like reshade that get always downloaded I made an issue about that somewhere I'll try to find it

Ahh here we go :https://github.com/sonic2kk/steamtinkerlaunch/issues/984

sonic2kk commented 1 month ago

Isn't GE-Proton a slightly different case here, because we install it to STLCFG/downloads/proton?

OlegAckbar commented 1 month ago

Isn't GE-Proton a slightly different case here, because we install it to STLCFG/downloads/proton?

Well, there is checkbox "Extract Proton in compatibilitytools.d" which also works for GE-Proton. But even if there's already latest version of GE-Proton in that folder STL will try to update it.

sonic2kk commented 1 month ago

I should've pinged, but I meant specifically in regards to @zany130's comment. #984 might be trickier to solve since we'd be dealing with unversioned files.

This is what I was running through in my head:

A broad solution to this is probably not ideal, because there are cases where we do want to download GE-Proton even if it already exists, so that we can manage it ourselves (i.e. for mod tools). Therefore I think we could have some logic only for "Auto-last GE-Proton" that will only download the latest GE-Proton version if it isn't in compatibilitytools.d. This would not apply to other places where we check for GE-Proton. This is because with game launches we do use the Proton script, so if we do fall back to using compatibilitytools.d:

Does that sound reasonable?

zany130 commented 1 month ago

Isn't GE-Proton a slightly different case here because we install it to STLCFG/downloads/proton?

Kind of, I guess; however, it can be solved similarly to my issue.

The problem we are trying to solve is that we don't want to download GE-Proton if it exists in the Steam compatibility tools. As I understand, we sometimes DO want to do that.

In my issue, I was going about it this way: We shouldn't download to STLCFG/downloads if the file already exists and is the same version. (same hash is prob easier)

Part two of my issue is that we shouldn't install the same exact file if it already exists.

so for GE-Proton that would be SROOT/compatibilitytools.d

and reshade/specialk the game's directory


Sidenote: we should probably also cleanup older versions of GE proton I noticed I was losing about 2GB in my STLCFG/downloads/proton/custom/

EDIT: actually don't we want to maybe keep older versions in case we want to use them?

OlegAckbar commented 1 month ago

How about umu integration and delegating all the Proton management to it?

sonic2kk commented 1 month ago

There is no reason for a tool that uses the Steam Client to use UMU to my understanding. SteamTinkerLaunch uses the Steam launch command and builds off of that, my understanding of UMU is that it is for Non-Steam Games and using games in the Steam Linux Runtime container outside of Steam. See #1183.

If this understanding is wrong, please correct me.

I also don['t understand how Proton management is really relevant here with UMU, which is primarily for the Steam Linux Runtime container. I think it has some kind of Proton version management, but that's more for it to be an all-in-one type launcher rather than something for use with the Steam Client.