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

[Feature Request] Allow Overriding Steam Linux Runtime Compatibility Tool Version for Native Games #1088

Closed sonic2kk closed 2 months ago

sonic2kk commented 2 months ago

System Information

Feature Description

Sometimes, a native game may be launched with a Steam Linux Runtime Compatibility Tool selected. This can be set by the user in the Properties dialog, or it may be selected by Valve Testing such as in the case of Counter-Strike 2 (#1084). If a game is launched with a Steam Linux Runtime specified in the incoming start command, this means the SLR version is specified by the compatibility tool, and so STL will use this instead of finding the SLR to use for the native game itself (#1086). It basically trusts whatever the incoming SLR is and uses that.

In 99% of cases, this is fine, because:

  1. If the user selected the SLR compatibility tool, they probably want to use this specifically and not the one STL will look for
  2. If this was selected by Valve Testing, it was likely for compatibility, and we would want to always use this by default (in the case of CS2, it will fail of SLR Sniper is not used, so it is a requirement to use the SLR specified by the launch command, which comes from the forced SLR 3.0 compatibility tool) a. If Valve Testing selects a compatibility tool, there is no way to really "disable" it -- In the case of CS2, you can't easily specify to not use SLR 3.0, as it is not forced under the Properties dialog. The compat tool selected by Valve Testing is never shown as forced under the Properties dialog, so it is always the default. b. STL still lets you disable the SLR though, so if you launch CS2 and untick "Use Steam Linux Runtime" from the STL Game Menu, it won't be used.

But a user may want to disable the forced SLR, and then they may want to override the SLR coming from the selected SLR compatibility tool launch command, and use whatever STL is using. We should offer a checkbox with the other SLR options to "Ignore Steam Linux Runtime from Launch Command", which basically means if the launch command contains an SLR (i.e. if the game was started with a Steam Linux Runtime compatibility tool selected) then we should ignore this and let SteamTinkerLaunch fetch the compatibility too.

A use case for this: If a title is selected by Valve Testing to use SLR 1.0, but a user wants to use SLR 3.0, then once #1087 is implemented they could select to use SLR 3.0, and then with this feature they can tick the box to ignore the Valve-forced SLR 1.0 for that game, and tell STL to instead fetch SLR 3.0 and use that to run the game.

sonic2kk commented 2 months ago

Implemented with #1090.