Skip to content
Snippets Groups Projects

Document the Steam compatibility tool interface

Merged Simon McVittie requested to merge wip/smcv/document-compat-tools into master
@@ -32,7 +32,7 @@ Each compatibility tool can have these fields:
necessary files, for example
`/path/to/steamapps/common/Proton - Experimental` for Proton
`display-name`
`display_name`
: Name to display in the Steam user interface
`from_oslist`
@@ -45,8 +45,8 @@ Each compatibility tool can have these fields:
For the compatibility tools provided by Steam itself, such as
Steam Linux Runtime and Proton, the equivalent of this information is
downloaded out-of-band, so the depot downloaded into the Steam library
will not contain this file.
downloaded out-of-band and stored in `~/.steam/root/appcache/appinfo.vdf`,
so the depot downloaded into the Steam library will not contain this file.
Third-party compatibility tools can be installed in various locations
such as `~/.steam/root/compatibilitytools.d`.
@@ -196,12 +196,14 @@ pointing to mixed host and soldier libraries.
This is the simplest situation and can be considered to be the baseline.
In recent versions of Steam, the game process is wrapped in a `reaper`
process which sets itself as a subreaper using **PR_SET_CHILD_SUBREAPER**
(see **prctl**(2) for details).
process which sets itself as a subreaper using `PR_SET_CHILD_SUBREAPER`
(see
[**prctl**(2)](https://manpages.debian.org/unstable/manpages-dev/prctl.2.en.html)
for details).
Version 1 compat tools are not invoked specially.
Version 2 compat tools are invoked with a `%verb% in the `commandline`
Version 2 compat tools are invoked with a `%verb%` in the `commandline`
(if any) replaced by `waitforexitandrun`.
The game is expected to run in the usual way. Conventionally, it does not
@@ -225,7 +227,7 @@ Some Windows games, such as Soldat (638490), do not have an
"install script" in their metadata. Running these games behaves much the
same as a native Linux game: it is wrapped in a subreaper, version 1
compat tools are not invoked specially, and version 2 compat tools
are invoked with a `%verb% in the `commandline` (if any) replaced by
are invoked with a `%verb%` in the `commandline` (if any) replaced by
`waitforexitandrun`.
The environment variable `STEAM_COMPAT_SESSION_ID` is not set.
@@ -240,7 +242,7 @@ game's Steam metadata, as usual.
## Windows games with an install script (since Steam beta 1623823138)
Other Windows games, such as Everquest (...), have an
Other Windows games, such as Everquest (205710), have an
[install script](https://partner.steamgames.com/doc/sdk/installscripts),
conventionally named `installscript.vdf`, which must be run by an
interpreter.
@@ -332,14 +334,14 @@ to run before it could be launched. They were invoked like this:
Version 1 compat tools are not invoked specially.
Version 2 compat tools are invoked with a `%verb% in the `commandline`
Version 2 compat tools are invoked with a `%verb%` in the `commandline`
(if any) replaced by `waitforexitandrun`.
The environment variable `STEAM_COMPAT_SESSION_ID` is not set.
Historically, it was set to a unique token that was not used in any
previous invocation.
`STEAM_COMPAT_APP_ID` is set to `0`.
`STEAM_COMPAT_APP_ID` is set to `0`. `SteamAppId` is not set.
`STEAM_COMPAT_DATA_PATH` is set to a unique directory per non-Steam game.
It is currently in the same format as Steam games' equivalent directories,
Loading