Steam proton: Difference between revisions

From wikinotes
No edit summary
Line 1: Line 1:
Steam Proton wraps [[wine]] with the goal of running windows games on linux.
Steam Proton is a fork of [[wine]], that adds patches, DXVK primarily geared towards speed.<br>
It is bundled with [[steam]] and is intended for running games on linux.


= Documentation =
= Documentation =
Line 27: Line 28:
= Tools =
= Tools =
<blockquote>
<blockquote>
{|  
{|
|-
|-
| [[wine]] || wine
| [[wine]] || wine

Revision as of 15:06, 24 April 2022

Steam Proton is a fork of wine, that adds patches, DXVK primarily geared towards speed.
It is bundled with steam and is intended for running games on linux.

Documentation

proton db https://www.protondb.com/explore
issue tracker https://github.com/ValveSoftware/Proton/issues

Locations

~/.local/share/Steam default ${STEAM_DOWNLOAD_DIR}
~/.local/share/Steam/steamapps/common/* default game install dirs
${STEAM_DOWNLOAD_DIR}/steamapps/compatdata/${APPID}/pfx wine prefix for game (game saves, settings, etc here)
Z:\home\will\.local\share\Steam\steamapps\common\* games mounted from linux filesystem on Z: drive

Tools

wine wine
protontricks winetricks for proton wine prefixes
protonhax load multiple wine apps in same wineprefix (ex: cheat engine alongside game)

Install

Proton (official)

Steam proton is a wrapper built around wine.
It enables you to play unported windows games on linux.

FileMenu > Settings:
  - Account Tab:
    - Beta Participation: CHANGE
       - Beta participation: Steam Beta Update

Restart Steam

FileMenu > Settings:
  - Steam Play:
    - [x] Enable Steam Play for supported titles
    - [x] Enable Steam Play for All titles
    - Choose latest beta version

Now search the protondb for your game for additional hacks that may be necessary.

Proton-GE

An unofficial patched proton with extra features.
You can choose it as your proton-version within steam, and run it from the commandline with proton.

aura -A proton-ge-custom-bin

Usage

# use 'protontricks' to identify your game's ID
protontricks -s 'Elite'

# run regular wine commands within prefix
WINEPREFIX=~/.steam/steam/steamapps/compatdata/${APPID}/pfx/ \
    wineconsole cmd

I've been experimenting with overlayfs and bootscripts for mods.
If installing a mod that requires patching files in-place, mount your game and run installer from cmd.exe.

Controllers

DirectInput API

You may need to disable the wine controller driver for the game to work.

NOTE:

did not work for me, but both the stock xpad and xpadneo drivers both worked fine.

WINEPREFIX=~/.steam/steam/steamapps/compatdata/335300/pfx/ \
    wine control
Game Controllers:
  Connected:
     - (choose your controller, and disable)

Input should now come from linux, rather than be re-interpreted in wine.

Microsoft Xinput

should be fine once controller-type selected/enabled in steam settings.

Triple-Monitor Gaming

1. [nvidia] 3x monitors as 1x screen, restart Xorg


Disable nvidiaXineramaInfo in xorg.conf,
and restart your Display Manager (to restart Xorg with new options).

# /etc/X11/xorg.conf

Section "Screen"
  Option "nvidiaXineramaInfo" "Off"
EndSection
sudo systemctl restart lxdm.service


2. Share monitor resolution on all screens


# something like this
xrandr \
    --output DP-2 --left-of HDMI-1 --mode 1920x1080 \
    --output HDMI-1 --mode 1920x1080 \
    --output USB-C-0 --right-of HDMI-1 --mode 1920x1080


3. Configure game


The configuration will likely be different from windows, even when native.
You may need an ini tweak, it may magically work, etc.

Here are some games I have been able to make work with 3x monitors.


The easiest workflow is to symlink the used xorg.conf, and have 2x configurations available.
Restart your Display Manager to restart Xorg and re-login to your new configuration.

Mods

  • Install supplementary tools into the same wine prefix, identified by protontricks (TODO)
  • Game executable versions can be obtained with pev peres -v game.exe | grep 'File Version'
  • Use the steam ui#Disable Updates tricks to lock updates until you are ready
  • Consider using overlayfs for mods, or for evaluating game versions

Debugging

Enable Logging

rclick game:
  - properties:
    - general:
      - LAUNCH OPTIONS: PROTON_LOG=1 %command%

Logs will be written to ~/steam-*.log

cd ~/.local/share/Steam/steamapps/common/Proton X.XX
cp user_settings.sample.py user_settings.py

# run game

# see crash log in ~/steam-XXXXXX.log