Difference between revisions of "Steam"
(33 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
== Enable Steam Play for all games == | == Enable Steam Play for all games == | ||
In order to run games that are not explicitly whitelisted by Valve, go to ''Steam -> Settings -> Steam Play'' and check ''"Enable Steam Play for all other titles"'' and then select ''"Proton Experimental''" in the drop down menu. | In order to run games that have no Linux version, and that are not explicitly whitelisted by Valve, go to ''Steam -> Settings -> Steam Play'' and check ''"Enable Steam Play for all other titles"'' and then select ''"Proton Experimental''" in the drop down menu. | ||
It's usually a good idea to use [https://github.com/GloriousEggroll/proton-ge-custom/releases Proton-GE]. It has lots of benefits like improved game compatibility, raw mouse input, and much more. Installation instructions are [https://github.com/GloriousEggroll/proton-ge-custom#installation= here]. | It's usually a good idea to use [https://github.com/GloriousEggroll/proton-ge-custom/releases Proton-GE] instead of Proton Experimental. It has lots of benefits like improved game compatibility, raw mouse input, additional codecs for cutscenes, and much more. However it can be unstable. So if you have stability issues, try something else, for example an older version. Installation instructions are [https://github.com/GloriousEggroll/proton-ge-custom#installation= here]. If you want the latest features, you have to update it manually, though. | ||
== ProtonUp-Qt == | == ProtonUp-Qt == | ||
Line 17: | Line 17: | ||
== Launch Options == | == Launch Options == | ||
You may find something like <code>- | You may find something like <code>mangohud AMD_VULKAN_ICD=RADV gamemoderun %command% -fullscreen -dx12</code> on protondb. These are ''launch options''. | ||
To use them, you right click on the game, and | To use them, you right click on the game, and go to the <code>general</code> tab. There you can paste them into the <code>launch options</code> field. | ||
<code>%command%</code> is the command to start the game. Some launch options go before this command (commands to execute programs, for example <code>gamemoderun</code> or <code>mangohud</code>), and some go behind it (flags that are passed to the game itself, typically stuff that starts with a <code>-</code>). | <code>%command%</code> is the command to start the game. Some launch options go before this command (commands to execute programs, for example <code>gamemoderun</code> or <code>mangohud</code>, or [[environment variables]] like <code>AMD_VULKAN_ICD=RADV</code>), and some go behind it (flags that are passed to the game itself, typically stuff that starts with a <code>-</code>, for example <code>-fullscreen</code> or <code>-dx12</code>). | ||
====== Explanation of the command above ====== | |||
# <code>%command%</code> is replaced by something like <code>wine /path/to/game</code>, so the whole command looks like this: <code>mangohud AMD_VULKAN_ICD=RADV gamemoderun wine /path/to/game.exe -fullscreen -dx12</code> | |||
# <code>mangohud</code> is started. This gives you a nice overlay that shows stuff like FPS and CPU utilization. MangoHud now runs the command <code>AMD_VULKAN_ICD=RADV gamemoderun wine /path/to/game.exe -fullscreen -dx12</code>. | |||
# <code>AMD_VULKAN_ICD=RADV</code> is added to the [[Environment variables|environment]]. This means that every program that is called behind this, is able to read this. It's up to the program what it does with this information. | |||
# <code>gamemoderun</code> is started. GameMode will tell your system that it should execute the game with priority, so you get more performance. GameMode executes the command <code>wine /path/to/game.exe -fullscreen -dx12</code>. | |||
# <code>wine</code> is started. It looks whether or not <code>AMD_VULKAN_ICD</code> is set to any value, and whether or not that value is <code>RADV</code>. Since this is the case, it executes <code>/path/to/game.exe -fullscreen -dx12</code> using the RADV driver. If the variable would not be set, it would just use the first driver that it finds - which might very well be RADV if no other driver is installed. | |||
# <code>/path/to/game.exe</code> is started. It gets two flags: <code>-fullscreen</code> and <code>-dx12</code>. This tells it to start in fullscreen, and to use dx12. | |||
=== Troubleshooting === | |||
Obviously, all of this only works if you specify things that are actually working. | |||
For example, if you try to run <code>gamemoderun</code> without GameMode being installed, the whole thing will just crash without doing anything. Note, that if you installed Steam as Flatpak, all other tools that you call from inside Steam also need to be installed as Flatpak. | |||
It's also not really useful to use <code>AMD_VULKAN_ICD=RADV</code> if you use an Nvidia GPU, or if you have an AMD GPU but you don't have RADV installed. You can find some interesting flags in the [[improving performance]] page, or in the documentation of a specific tool. | |||
And if you use the <code>-dx12</code> flag, your game needs to support this specific flag. You might find flags for a specific game on https://www.pcgamingwiki.com. | |||
<code>%command%</code> should always be part of the launch command and occur exactly once. If you leave it out, you basically tell Steam not to launch your game. | |||
== Steam Tinker Launch == | == Steam Tinker Launch == | ||
[https://github.com/frostworx/steamtinkerlaunch Steam Tinker Launch] is a swiss army knife tool that allows easy customization of multiple options for Steam games. | [https://github.com/frostworx/steamtinkerlaunch Steam Tinker Launch] is a swiss army knife tool that allows easy customization of multiple options for Steam games. | ||
It includes helpers for custom commands, Vortex, Mod Organizer 2, Proton GE, Proton/DXVK/wine options, winetricks, ReShade + easy selection for shaders, FSR, debugging, side-by-side VR automation, SteamGridDB, SpecialK, Proton KillSwitch, Gamescope, GameMode, and more. You can find a more comprehensive list of features in the [https://github.com/frostworx/steamtinkerlaunch/wiki wiki] (dropdownlist on the right). | It includes helpers for custom commands, Vortex, Mod Organizer 2, Proton GE, Proton/DXVK/wine options, winetricks, ReShade + easy selection for shaders, FSR, debugging, side-by-side VR automation, SteamGridDB, SpecialK, Proton KillSwitch, Gamescope, GameMode, and more. You can find a more comprehensive list of features in the [https://github.com/frostworx/steamtinkerlaunch/wiki wiki] (dropdownlist on the right). You can find instructions on how to install it [https://github.com/sonic2kk/steamtinkerlaunch#how-do-i-install-it here]. | ||
== File Locations == | == File Locations == | ||
The easiest way to find your games is to right click the game in your library, click ''manage'' and ''then browse local files''. | |||
If you want to find your game files manually, you first need to determine the steam folder, and then find the files inside it. | |||
=== Steam Folder === | |||
If you use the Steam Flatpak, your Steam folder is <code>~/.var/app/com.valvesoftware.Steam/data/Steam/</code> | |||
If you use the "normal" package, your Steam folder is in<code>~/.local/share/Steam/</code> | |||
=== Games and Save Files === | |||
The easiest way is to right click your game in your library, click ''manage'' and ''then browse local files''. | |||
Your games are in <code><steam_folder>/steamapps/common/<game_name></code>. | |||
Your save games and non-Steam games are in <code><steam_folder>/steamapps/compatdata/<some_number>/pfx/drive_c/<windows_path></code>. In order to know which number is correct, you can just use the search functionality of your file manager (probably <code>ctrl</code> + <code>f</code>) to search for the game name, or type <code>find <steam_folder>/Steam/steamapps/compatdata/ | grep -i "<game_name>"</code> in the [[terminal]]. | |||
You have to substitute ''<steam_folder>'' and ''<game_name>'' with the actual thing, of course. | |||
== | == Bugs & Workarounds == | ||
- if the friends list is open & in the background, the Steam client drops to less than 1 FPS | |||
* -> disable animated avatars in the friends list settings |
Latest revision as of 09:52, 3 June 2024
Steam runs natively on Linux. You can probably just install it from your App store.
Usually you want to use Steam (Runtime). Only use Steam (native) if you know why you want to use it. If you use the Flatpak version, you will also need to use the Flatpak version of other software that you want to use with it, like MangoHud.
Enable Steam Play for all games
In order to run games that have no Linux version, and that are not explicitly whitelisted by Valve, go to Steam -> Settings -> Steam Play and check "Enable Steam Play for all other titles" and then select "Proton Experimental" in the drop down menu.
It's usually a good idea to use Proton-GE instead of Proton Experimental. It has lots of benefits like improved game compatibility, raw mouse input, additional codecs for cutscenes, and much more. However it can be unstable. So if you have stability issues, try something else, for example an older version. Installation instructions are here. If you want the latest features, you have to update it manually, though.
ProtonUp-Qt
You can use ProtonUp-Qt to make the installation and update process of Proton-GE simple:
- 1. Download the ProtonUp-Qt AppImage
- 2. Mark the AppImage as executable
- 3. Double-click the AppImage to run ProtonUp-Qt
Alternatively, you can install it from Flathub.
Launch Options
You may find something like mangohud AMD_VULKAN_ICD=RADV gamemoderun %command% -fullscreen -dx12
on protondb. These are launch options.
To use them, you right click on the game, and go to the general
tab. There you can paste them into the launch options
field.
%command%
is the command to start the game. Some launch options go before this command (commands to execute programs, for example gamemoderun
or mangohud
, or environment variables like AMD_VULKAN_ICD=RADV
), and some go behind it (flags that are passed to the game itself, typically stuff that starts with a -
, for example -fullscreen
or -dx12
).
Explanation of the command above
%command%
is replaced by something likewine /path/to/game
, so the whole command looks like this:mangohud AMD_VULKAN_ICD=RADV gamemoderun wine /path/to/game.exe -fullscreen -dx12
mangohud
is started. This gives you a nice overlay that shows stuff like FPS and CPU utilization. MangoHud now runs the commandAMD_VULKAN_ICD=RADV gamemoderun wine /path/to/game.exe -fullscreen -dx12
.AMD_VULKAN_ICD=RADV
is added to the environment. This means that every program that is called behind this, is able to read this. It's up to the program what it does with this information.gamemoderun
is started. GameMode will tell your system that it should execute the game with priority, so you get more performance. GameMode executes the commandwine /path/to/game.exe -fullscreen -dx12
.wine
is started. It looks whether or notAMD_VULKAN_ICD
is set to any value, and whether or not that value isRADV
. Since this is the case, it executes/path/to/game.exe -fullscreen -dx12
using the RADV driver. If the variable would not be set, it would just use the first driver that it finds - which might very well be RADV if no other driver is installed./path/to/game.exe
is started. It gets two flags:-fullscreen
and-dx12
. This tells it to start in fullscreen, and to use dx12.
Troubleshooting
Obviously, all of this only works if you specify things that are actually working.
For example, if you try to run gamemoderun
without GameMode being installed, the whole thing will just crash without doing anything. Note, that if you installed Steam as Flatpak, all other tools that you call from inside Steam also need to be installed as Flatpak.
It's also not really useful to use AMD_VULKAN_ICD=RADV
if you use an Nvidia GPU, or if you have an AMD GPU but you don't have RADV installed. You can find some interesting flags in the improving performance page, or in the documentation of a specific tool.
And if you use the -dx12
flag, your game needs to support this specific flag. You might find flags for a specific game on https://www.pcgamingwiki.com.
%command%
should always be part of the launch command and occur exactly once. If you leave it out, you basically tell Steam not to launch your game.
Steam Tinker Launch
Steam Tinker Launch is a swiss army knife tool that allows easy customization of multiple options for Steam games.
It includes helpers for custom commands, Vortex, Mod Organizer 2, Proton GE, Proton/DXVK/wine options, winetricks, ReShade + easy selection for shaders, FSR, debugging, side-by-side VR automation, SteamGridDB, SpecialK, Proton KillSwitch, Gamescope, GameMode, and more. You can find a more comprehensive list of features in the wiki (dropdownlist on the right). You can find instructions on how to install it here.
File Locations
The easiest way to find your games is to right click the game in your library, click manage and then browse local files.
If you want to find your game files manually, you first need to determine the steam folder, and then find the files inside it.
Steam Folder
If you use the Steam Flatpak, your Steam folder is ~/.var/app/com.valvesoftware.Steam/data/Steam/
If you use the "normal" package, your Steam folder is in~/.local/share/Steam/
Games and Save Files
The easiest way is to right click your game in your library, click manage and then browse local files.
Your games are in <steam_folder>/steamapps/common/<game_name>
.
Your save games and non-Steam games are in <steam_folder>/steamapps/compatdata/<some_number>/pfx/drive_c/<windows_path>
. In order to know which number is correct, you can just use the search functionality of your file manager (probably ctrl
+ f
) to search for the game name, or type find <steam_folder>/Steam/steamapps/compatdata/ | grep -i "<game_name>"
in the terminal.
You have to substitute <steam_folder> and <game_name> with the actual thing, of course.
Bugs & Workarounds
- if the friends list is open & in the background, the Steam client drops to less than 1 FPS
- -> disable animated avatars in the friends list settings