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

Vortex: Add option to use Steam Linux Runtime #807

Merged
merged 5 commits into from
May 27, 2023
Merged

Vortex: Add option to use Steam Linux Runtime #807

merged 5 commits into from
May 27, 2023

Conversation

sonic2kk
Copy link
Owner

@sonic2kk sonic2kk commented May 20, 2023

Vortex runs with Proton, but doesn't run inside of the SLR. This may be causing compatibility issues on Steam Deck.

This PR adds a new option to the Vortex options in the Global Menu to enable the Steam Linux Runtime with Vortex. The changes required to implement this were non-trivial, but a combination of Proton and native games were tested before and after launching Vortex from the Global Menu (to ensure SLRCMD from the Vortex launch was not being re-used for the game launch). Everything in testing appears to still work fine.

The setSLRReap function was changed significantly to enable this functionality. It can now take an option to force Proton (instead of falling back to ISGAME=3 which causes native Linux SLR to be selected). It can also take a custom Proton version to use, so we don't use RUNPROTON by default. This means we can pass the Vortex version to getSLRReap and fetch the correct Steam Linux Runtime specified in its toolmanifest.

This implementation has the issue of very old compatibility tools which pass the SLR to use from the launch command will probably not work, as Vortex cannot detect this. However, recent Vortex versions require an up-to-date Wine anyway, so I doubt this is a problem.

The changes made to setSLRReap here should make it more straightforward to integrate with One-Time Run, MO2, and any other third-party application. As a result, these changes will actually end up being a prerequisite to some of the work in #788. It could also help with a future custom command overhaul where custom-commands could have a dedicated Proton version separate from the game (#625).


Currently in my testing this has not caused any regressions with Vortex launches on my Linux Desktop (Arch Linux KDE Plasma Wayland), but mod compatibility etc remains to be seen.


TODO:

  • Further testing
  • Update langfiles

Vortex runs with Proton, but doesn't run inside of the SLR. This may be
causing compatibility issues on Steam Deck.

This PR adds a new option to the Vortex options in the Global Menu to
enable the Steam Linux Runtime with Vortex. The changes required to
implement this were non-trivial, but a combination of Proton and native
games were tested before and after launching Vortex from the Global Menu
(to ensure SLRCMD from the Vortex launch was not being re-used for the
game launch). Everything in testing appears to still work fine.

The `setSLRReap` function was changed significantly to enable this
functionality. It can now take an option to force Proton (instead of
falling back to ISGAME=3 which causes native Linux SLR to be selected).
It can also take a custom Proton version to use, so we don't use
RUNPROTON by default. This means we can pass the Vortex version to
getSLRReap and fetch the correct Steam Linux Runtime specified in its
toolmanifest.

This implementation has the issue of very old compatibility tools which
pass the SLR to use from the launch command will probably not work, as
Vortex cannot detect this. However, recent Vortex versions require an
up-to-date Wine anyway, so I doubt this is a problem.

The changes made to setSLRReap here should make it more straightforward
to integrate with One-Time Run, MO2, and any other third-party
application. It could also help with a future custom command overhaul
where custom-commands could have a dedicated Proton version separate
from the game (#625).
@sonic2kk
Copy link
Owner Author

There was one instance during development where Vortex warned me that the installation was corrupt and that I should reinstall. The warning has not come back and could have come up because of some changes/incorrect logic in how the SLR was being/not being applied.

This should be investigated before merging, to see if it is a real issue and reproducible or if it is just a case of Wine being weird.

@sonic2kk
Copy link
Owner Author

Merge conflict was just langfile from recent PRs, and STL version as usual.

@sonic2kk
Copy link
Owner Author

According to #806 (comment), Sniper runtime fixes Vortex (should be used by Proton 8 builds). Will do a little bit of further testing and probably merge this soon.

@sonic2kk
Copy link
Owner Author

Forgot to mention it in the commit, but 70af528 enables the SLR with Vortex by default. If it can't find the given SLR it should fall back to running without it, like we do for game launches, and it appears to fix more issues than it doesn't, so I figure it's safe to enable by default.

@sonic2kk
Copy link
Owner Author

Shellcheck looks good, version bumped, ready to merge.

@sonic2kk sonic2kk merged commit 78b5bff into master May 27, 2023
@sonic2kk sonic2kk deleted the vortex-slr branch May 28, 2023 03:34
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.

1 participant