Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Game Menu: Add option to disable Native Linux Steam Linux Runtime coming from Compatibility Tool #1090

Merged
merged 6 commits into from Apr 21, 2024

Conversation

sonic2kk
Copy link
Owner

@sonic2kk sonic2kk commented Apr 21, 2024

Implements #1088.
Soft prerequisite for #1087.

If a native game is launched with a Steam Linux Runtime Compatibility Tool selected, either by the user or Valve Testing, the Steam Linux Runtime will come in the game launch command. However a user may want to ignore this for any reason, so this adds a checkbox to allow users to ignore the incoming Steam Linux Runtime and let SteamTinkerLaunch find it.

This has only been minimally tested, and needs regression testing. Also, langfiles need to be updated. I noticed in testing DESC_USESLR, a string unrelated to this PR, has a typo, so I fixed it in the english.txt. This will also need to be fixed in other langfiles where appropriate alongside adding the new strings for the checkbox in this PR to the other langfiles.

This PR is a soft prerequisite for #1087 because it makes that feature more useful. By allowing to disable the incoming SLR in this PR, it means choosing a different SLR is much easier. Once #1087 is implemented it means a user could use this PR to disable a Valve Testing-selected SLR 1.0, and then use #1087 to select SLR 3.0 to let STL find that SLR for the game.


Following this PR and any work for related issue #1087, we need to update the Steam Linux Runtime wiki page to have more information about what it is, how SteamTinkerLaunch uses it (will attempt to find the required Steam Linux Runtime stipulated by a Proton version's toolmanifest.vdf, otherwise will default to SLR 1.0 for native games, and if an SLR is incoming for a native game from a selected SLR compatibility tool then STL will always use this unless this PR's checkbox is enabled).

…ing from Compatibility Tool

If a native game is launched with a Steam Linux Runtime Compatibility Tool
selected, either by the user or Valve Testing, the Steam Linux Runtime will
come in the game launch command. However a user may want to ignore this
for any reason, so this adds a checkbox to allow users to ignore the
incoming Steam Linux Runtime and let SteamTinkerLaunch find it.
@sonic2kk
Copy link
Owner Author

CI is running twice, god dammit...

@sonic2kk
Copy link
Owner Author

Okay, CI seems fixed now. It should only run on push for branches, and will run for pull request events if the branch is from a fork.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Apr 21, 2024

Tested the following games, eveything works as expected:

  • Tested CS2 (native)
    • Default, it launches with SLR 3.0 selected by Valve
    • SLR disabled, it crashes and no SLR in start command in log
    • SLR enabled and Ignore incoming SLR enabled, it crashes on launch and the log shows it's using SLR 1.0 and logging that it correctly ignored the SLR from the incoming start command
  • Tested To the Moon (native)
    • Default, it launches with no SLR from Steam but gets the SLR from SteamTinkerLaunch because the option is enabled, it correctly logs that it is getting it from Pressure Vessel Funtime and the SLR 1.0 is appended to the start command
    • SLR disabled, this works, although previously To the Moon required the SLR (I guess there was an update to fix that? All Freebird Games' games got an update not long ago to improve Linux compatibility on SteamOS). Launch command doesn't show SLR and the log shows it skipped fetching the SLR
    • With SLR 1.0 set from Compatibility settings, log shows that SLR is gotten from incoming launch command and appended correctly.
    • With SLR 1.0 set from Compatibility settings and the option to ignore incoming SLR enabled, log shows that incoming SLR got ignored and that SteamTinkerLaunch fetched and appended SLR 1.0 to the launch command
  • Tested PowerWash Simulator (Proton, should be zero change in functionality as this option should do nothing for Proton)
    • Tested default settings (SLR enabled, ignore incoming SLR disabled), game launches with Pressure Vessel Funtime being used to fetch the SLR and append it to the start command
    • Tested Ignore incoming SLR enabled, no change in functionality and nothing logged as HAVESLR should always be 0 for Proton since it never comes in the launch command.

This PR seems to be ready to merge pending a version bump.

EDIT: Oops, didn't push the change I had locally to make a change in logic to when we check HAVESLR -eq 1. Will push with the version bump and merge.

@sonic2kk sonic2kk merged commit 384544d into master Apr 21, 2024
2 checks passed
@sonic2kk sonic2kk deleted the ignore-compat-tool-slr branch April 21, 2024 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request] Allow Overriding Steam Linux Runtime Compatibility Tool Version for Native Games
1 participant