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
@@ -196,8 +196,10 @@ 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.
@@ -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