Skip to content

Compatibility tool for Steam Play based on Wine and additional components

License

Unknown, BSD-3-Clause licenses found

Licenses found

Unknown
LICENSE
BSD-3-Clause
LICENSE.proton
Notifications You must be signed in to change notification settings

khouriousgeorge/proton-ge-custom

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is my build of Proton with the most recent release of vanilla wine, has ffmpeg enabled for faudio by default, and all of Proton's patches ported over to be applied to wine, as well as wine-staging and vkd3d.

All patches:
-Warframe screenshot F6 patch -FFXIV Launcher patch -Mech Warrior online patch
-Assetto Corsa HUD patch -Vulkan child window patch
-sword art online gnutls patch
-d9vk integration
-vkd3d integration
-protonfixes integration
-FAudio with FFMpeg enabled (fixes audio/voices in multiple games)
-All of Valve's wine proton patches. Yes. All of them.
-wine staging patches
-various wine hot fixes for wine functionality that fix regressions per version

Full patches can be viewed in game-patches-testing/proton-prep.sh

How to install:

  1. Either follow the build guide below, or download a release from the Releases section of this git repo.
  2. Extract the release tarball into ~/.steam/root/compatibilitytools.d/, and restart steam. You will have to create the compatibilitytools.d folder.
    If using the flatpak version from flathub extract into ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/.
  3. Restart Steam.
  4. Right click any game in Steam and click Properties
  5. At the bottom of the General tab, Check "Force the use of a specific Steam Play compatibility tool" then select the new Proton version.
  6. Launch the game.

How to build:

  1. Install virtualbox and its kernel modules, make sure they are enabled at boot

  2. Install vagrant

  3. Clone this repo:
    git clone --recurse-submodules http://github.com/gloriouseggroll/proton-ge-custom

  4. Drop any custom patches into game-patches-testing/, then open game-patches-testing/proton-prep.sh and
    add a patch line for them under #WINE CUSTOM PATCHES in the same way the others are done.

  5. Apply all of the patches in /game patches/testing by running:

./game-patches-testing/proton-prep.sh &> patchlog.txt

in the main proton-ge-custom directory. Open patchlog.txt and search "fail" to make sure no patch failures occured.

  1. in a terminal and type:

vagrant up (this will take a while on the first run, as it prepares everything)
vagrant ssh (this will ssh you into the vagrant VM

To leave the VM at any time just type exit

NOTE ON MODIFICATIONS:
vagrant syncs the proton directory to any files in the cloned repo. So, if you want to make changes, close the VM with vagrant halt, make your changes, then launch vagrant again with vagrant up

  1. Edit the build name and build proton
cd ~/build
nano Makefile

Change the BUILD_NAME to whatever you want, then save & exit

  1. Build proton
cd ~/build
make all dist
  1. Rename the dist folder to your BUILD_NAME, then tar it for easier distribution:
mv dist Proton-Custom-Name
tar -cvzf Proton-Custom-Name.tar.gz Proton-Custom-Name/
  1. Move it to the /vagrant folder. This folder is accessible on your main system in the vagrant_share folder inside the cloned repository folder:

mv Proton-Custom-Name.tar.gz /vagrant/

  1. Shut down the VM:
exit
vagrant halt
  1. Now open vagrant_share inside the cloned repo folder on your main system and you will see your new proton version in a .tar.gz from here follow the install instructions listed in the first section of this README.

Environment variable options:

Compat config string Environment Variable Description
PROTON_LOG Convenience method for dumping a useful debug log to $HOME/steam-$APPID.log. For more thorough logging, use user_settings.py.
PROTON_DUMP_DEBUG_COMMANDS When running a game, Proton will write some useful debug scripts for that game into $PROTON_DEBUG_DIR/proton_$USER/.
PROTON_DEBUG_DIR Root directory for the Proton debug scripts, /tmp by default.
wined3d PROTON_USE_WINED3D Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11 and d3d10. This used to be called PROTON_USE_WINED3D11, which is now an alias for this same option.
nod3d11 PROTON_NO_D3D11 Disable d3d11.dll, for d3d11 games which can fall back to and run better with d3d9.
nod3d10 PROTON_NO_D3D10 Disable d3d10.dll and dxgi.dll, for d3d10 games which can fall back to and run better with d3d9.
d9vk PROTON_NO_D9VK Disable d9vk so that wined3d is used for dx9 games.
vkd3d PROTON_USE_VKD3D Use vkd3d for DX12 games. NOTE: This will disable DXVK since it relies on dxgi.dll
noesync PROTON_NO_ESYNC Do not use eventfd-based in-process synchronization primitives.
nofsync PROTON_NO_FSYNC Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.)
forcelgadd PROTON_FORCE_LARGE_ADDRESS_AWARE Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables.
oldglstr PROTON_OLD_GL_STRING Set some driver overrides to limit the length of the GL extension string, for old games that crash on very long extension strings.
DXVK_ASYNC Enable Asynchronous shader compiling in dxvk. Set to 1 to enable.
WINE_MEM_ALLOC_MOD Enables mem alloc mod. Fixes some games such as MK11 and the skyui status effect icons in skyrim se. Set to 1 to enable.

Credits to the proper people are deserved. Many people besides myself have contributed to various parts:

https://github.com/ValveSoftware/Proton
https://github.com/wine-mirror/wine
https://github.com/wine-staging/wine-staging
https://github.com/doitsujin/dxvk
https://github.com/Joshua-Ashton/d9vk
https://github.com/FNA-XNA/Faudio
https://github.com/Tk-Glitch/PKGBUILDS/tree/master/wine-tkg-git/wine-tkg-patches
https://github.com/simons-public/protonfixes

About

Compatibility tool for Steam Play based on Wine and additional components

Resources

License

Unknown, BSD-3-Clause licenses found

Licenses found

Unknown
LICENSE
BSD-3-Clause
LICENSE.proton

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 44.1%
  • Scala 37.4%
  • C 14.7%
  • SuperCollider 1.9%
  • C# 1.5%
  • Python 0.2%
  • Other 0.2%