Compatibility tool for Steam Play based on Wine and additional components
Go to file
2018-03-29 12:13:22 -05:00
dxvk@873deed4a3 update dxvk 2018-03-27 12:39:18 -05:00
dxvk.win32 update dxvk 2018-03-27 12:39:18 -05:00
dxvk.win64 update dxvk 2018-03-27 12:39:18 -05:00
freetype2@67a42aa887 Add freetype2 submodule at version 2.9 2018-03-02 11:12:04 -06:00
glslang Add glslang binary 2018-02-12 08:08:53 -06:00
libjpeg-turbo@bf6c774305 Add libjpeg-turbo submodule at version 1.5.3 2018-03-02 11:12:04 -06:00
libpng@b78804f9a2 Add libpng submodule at version 1.6.34 2018-03-02 11:12:04 -06:00
lsteamclient steamclient: Give steamclient.dylib path explicitly on macos 2018-03-29 12:12:48 -05:00
openal-soft@ce6076091b Add openal-soft submodule at version 1.18.2 2018-03-08 12:52:57 -06:00
SDL-mirror@14531cf0fc Add SDL-mirror submodule at version 2.0.7 2018-03-02 11:12:04 -06:00
vrclient_x64 Support building for Mac 2018-02-08 09:21:25 -06:00
wine@2384dd9f75 update wine 2018-03-29 12:13:22 -05:00
.gitignore Build wine 2018-01-18 10:20:43 -06:00
.gitmodules Add openal-soft submodule at version 1.18.2 2018-03-08 12:52:57 -06:00
build_dxvk.sh dxvk: Give up building on debian 2018-02-23 10:57:38 -06:00
build_proton.sh build_proton: Require gcc >= 5.3 2018-03-23 09:11:38 -05:00
filelock.py proton: Lock on write access to the dist/ directory 2018-03-16 11:37:27 -05:00
LICENSE.lin Update license text 2018-03-13 14:18:43 -05:00
LICENSE.osx Update license text 2018-03-13 14:18:43 -05:00
proton proton: Add nod3d11 config option 2018-03-28 10:27:56 -05:00
README README: Document runtime options 2018-03-28 10:36:55 -05:00
toolmanifest.vdf toolmanifest: Fix syntax 2018-03-12 08:53:55 -05:00

Proton is a tool for use with the Steam client which allows games which are
exclusive to Windows to run on Linux and macOS operating systems. It uses Wine
to facilitate this.

To build Proton for Linux, set up a Debian machine with the Steam chroots as
documented in the Steam Runtime repository:

  https://github.com/ValveSoftware/steam-runtime

You should then be able to build Proton using the "build_proton.sh" script.
Some package installation will be necessary, for example the mingw-w64 cross
compiler will be needed, as well as various runtime libraries such as Vulkan.
Examine the output near the end of build/wine.win{64,32}/config.log to ensure
you have all of the relevant libraries installed in each chroot.

  TODO: Better document setting up the build machine.

To build Proton for macOS, install the latest Xcode command line tools, as
well as cmake (for openal-soft) and a recent nasm (for libjpeg-turbo). You can
use a packager like Homebrew to find these packages. Then run
"build_proton.sh".

Once built, the dist/ directory will contain the files which can be distributed
through Steam. For testing purposes, you should be able to clear out the files
in your steamapps/common/Proton directory and replace them with the contents of
dist/. The proton script will unpack the files on first run.

NOTE: For now, dxvk requires build-time components that are too new for Debian
9. It's recommended to build the DLLs on Arch Linux, where dxvk is actively
being developed. This may be resolved in dxvk in the future, or may be worked
around by using a newer Debian release. See comments in build_proton.sh.


----
RUNTIME CONFIG OPTIONS
----

Proton can be tuned at runtime to help certain games run. The runtime
configuration options are documented here. Options can either be defined in a
comma-separated list stored in the STEAM_COMPAT_CONFIG environment variable
when running Proton (the Steam client does this), or passed through the
presence of individual environment variables as documented below.

All of the below are runtime options. They do not effect permanent changes to
the Wine prefix. Removing the option will revert to the previous behavior.

----
Run game with DXVK instead of wined3d.
Compat config string: dxvk
Environment variable: PROTON_USE_DXVK

----
Disable d3d11.dll, for games which can fall back to and run better with d3d9.
Compat config string: nod3d11
Environment variable: PROTON_NO_D3D11