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

Steam Linux Runtime: Re-enable parsing Steam Linux Runtime from Compatibility Tool start command #1086

Closed sonic2kk closed 2 months ago

sonic2kk commented 2 months ago

Fixes #1084

Primarily (but not exclusively) allows native games that have a Steam Linux Runtime selected (either by the user, or by Valve as sometimes they force SLR 1.0 or 3.0 for games) to launch with the SLR selected.

Previously, the SLR would be ignored entirely if it came from the compatibility tool, but this causes incompatibilities with games that REQUIRE a specific SLR version (ex: CS2 requires SLR 3.0 and is selected by Valve, the user doesn't have a choice)

This change allows STL to read the SLR coming from the compat tool launch, so if a game is launched with a specified SLR version, we will use this instead of ignoring or building the start command ourselves.

TODO:

sonic2kk commented 2 months ago

Copied from https://github.com/sonic2kk/steamtinkerlaunch/issues/1084#issuecomment-2065480765

Tested and the following scenarios work:

This PR is ready to merge pending feedback from OP of original issue. In my testing this works as expected and fixes the issue, without causing regressions, and actually adds the benefit of STL being able to pick up the SLR for native games if enforced by the user, which can be handy! This means users that manually enable SLR 3.0 can use it too (STL cannot yet allow SLR 3.0 for native titles).

sonic2kk commented 2 months ago

In future, we should have a dropdown to select the Native Linux Steam Linux Runtime, and let the user decide to use 1.0 or 3.0. We should make it clear that this is for native titles only.

This value can override SLRAID, which should still default to 1070560 (AID for SLR 1.0 Scout) but we should have a dropdown to choose if it should be SLR 3.0 Sniper. Then the Pressure Vessel Funtime code can pick up and check for SLR 3.0. If the syntax is the same for the launch command for 1.0 and 3.0, then no code change should be needed, since Funtime will work with the ID for 3.0.

sonic2kk commented 2 months ago

Confirmed to fix the issue by OP, this needs a little bit of comment cleanup, version bump, and it's good to merge.