protonscr

Per-game Proton Settings

steamopen Feature RequestSteam clientProton
ValveSoftware/steam-for-linux#5874 · opened 2018-11-03 by Rabcor · updated 2020-08-25 · 8 comments · github
RRabcor 2018-11-03 github

Feature Request

Games that use proton should have a number of options available to tweak the prefix. This is necessary to run non-whitelisted games among other things, and may be necessary to run whitelisted games if updates break their proton compatibility later on.

I confirm:

  • [x] that I haven't found another request for this feature.
  • [x] that I have checked whether there are updates for my system available that
    contain this feature already.

Description

There's a lot of games that need workarounds to be able to run in proton, and it is vital in order for proton to be able to reach it's full potential that those workarounds are easily accessible without relying on hacks to get there, as those are generally only going to be accessible to experienced users.

Suggested implementation: When you go to the properties window for a game from the library, if that game uses proton to run on the system, that game should have a tab for proton options.

Suggested options:

  • Installation of native Windows DLLs/Components/Runtimes (See winetricks)
  • Toggling libraries between using native or built-in DLLs. (See winecfg)
  • Enabling a 32-bit prefix instead of 64.
  • Running 3rd party executables from the game's prefix (some games may have unofficial patches or mods that need to be installed this way, that is assuming that all official patches are installed via steam (there may be corner cases where they aren't))
  • Configuring specific games to use older versions of proton to work around regressions (Implemented)
  • Configuring specific games to use custom/patched versions of proton (This could be very helpful for users to test pull requests/patches before they are implemented, and in the worst cases, enable games that do not work properly without patches to wine to be run safely without the risk of breaking anything else if the patches have unintended side effects for other games; this idea would probably deserve it's own feature request later on.)
  • Configuring DXVK & Toggling ESync.
  • Toggling EAX (An option available in wine staging, may improve sound in some older games)
  • Configuring which sound devices to use
  • Support for showing hidden (dot) files (maybe this one should just be on by default though)
  • Setting Windows Version Compatibility Mode (95/98/XP/7/10)
  • Virtual Desktop Emulation
  • A 'Browse Prefix' button to edit game settings and save files and similar things if need be.
  • Toggle between steam and native runtimes (should probably not just be for proton)
  • Toggling pulseaudio latency fixes (this should NOT be enabled by default, the proper solution for pulseaudio latency issues is fixing up the pulseaudio configuration; and when users have fixed that configuration the latency fixes may cause sound issues)
  • SDL2 Custom Gamepad Mapping support
  • Community Configuration Presets (not necessary, but would be a nice option for quick configuration for people who have no idea what they're doing here :P)

This could also be used to enable the use of proton for user added non-steam games.

Now I know this is a lot of missing functionality, but just a 32-bit prefix toggle, and access to winetricks and winecfg, and that browse prefix button, would be a great starting point for this which could be built upon further over time.

Justification

While it would be ideal if all of the workarounds above simply wouldn't be needed and proton would auto-configure everything for every game. That may very well be a great end-goal, but the fact of the matter is that Proton will not be able to do this for every single game that needs it for a very, very long time, and the default configuration chosen by Proton's developers for certain games might have issues on some systems, or after the game receives some update, and this would allow users to more easily fix such issues. This would make it easier for users to run unsupported games, and if the community configuration presets were to be added, give Valve some direction for how each game should be configured when the time comes that proton is actually ready to have default configurations for all of them.

Even then however, there will be new games, and these new games may require the kinds of workarounds this would enable to run, and if this is implemented players will more quickly and easily find their way around to playing those games before they become officially supported in Proton.

Risks

Inexperienced users could misconfigure things.
Bad community presets (if that is implemented)
Might take some time to develop (but it's probably worth it all things considered)

References [optional]

https://github.com/ValveSoftware/Proton/issues/1786
https://github.com/ValveSoftware/Proton/issues/1714
https://github.com/ValveSoftware/Proton/issues/1011
https://github.com/ValveSoftware/Proton/issues/1715
https://github.com/ValveSoftware/Proton/issues/449

Kkisak-valve maintainer 2018-11-03 github

Hello @Rabcor, this is a feature request for the Steam client rather than Proton itself, so I've transferred this issue to the steam-for-linux issue tracker.

This feature request will only be used to track the general request for having per-game settings and not any specific options past that.

RRabcor 2018-11-04 github

@kisak-valve Yeah that makes sense. I don't really care how it's implemented as long as these things (or at least most of them) can be done, I just thought it would be good form to suggest a sensible approach while at it :smile:

If this is how the issue will be used, I'll edit it a bit to make it reflect that.

RRonnieTiger 2018-11-29 github

I +1 this, good feature request and I think a definite must-have for most if not all of them.
a lot of this can be done already but as correctly mentioned, it means delving in to the terminal and manipulating some environment variables to get wine-tricks to target a proton prefix etc. which is not user friendly unless you're a seasoned Linux user! (Hell even a button to open winetricks/PlayOnLinux against a games proton prefix would be a simple, temp option to put in here for the short term to make life easy.)

Llucifertdark 2018-11-30 github

Being able to choose a different Proton version per game would be very useful.

FForsakenNGS 2018-12-29 github

Please, at least allow to override the used Proton version like it is possible globally in the Steam Play settings. I currently have to change the used Proton version globally in order to have Doom (2016) run properly, which (unintensionally) affects all other Games as well.

Worst case is having to keep track of and setup the correct Proton version before every game launch. This should be done by Steam automatically, but Doom is the perfect example where the automatically chosen Proton version for the game (3.16-4 I guess) introduces massive input-related performance issues (https://github.com/ValveSoftware/Proton/issues/2019) that are not present in the one prefered by me. (3.7-8)

ZZamundaaa 2019-01-18 github

The latest beta allows for game-specific selection of Proton version. Also if you set a proton version for a game with native version it'll install the proton/Windows version

Llucifertdark 2019-01-18 github

It's working, sadly the first game I tried it on (Black The Fall) crashed within 5 minutes, I think it's the game though not Proton that's the problem, the Native Linux Port is just as bad for performance. Oh Well! At least the Proton part of it is working as intended.

Ffrostworx 2020-08-25 github

Hi, just browsed some tickets to see what could be implemented into my stl wrapper,
and thought you might find it useful, as it already has several features you are requesting here:
https://github.com/frostworx/steamtinkerlaunch
hf!