proton-ge-custom
Compatibility tool for Steam Play based on Wine and additional components
Top Related Projects
Compatibility tool for Steam Play based on Wine and additional components
The wine-tkg build systems, to create custom Wine and Proton builds
Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Wine builds (Vanilla, Staging, TkG and Proton)
Quick Overview
GloriousEggroll/proton-ge-custom is a custom build of Valve's Proton compatibility layer for running Windows games on Linux. It includes additional patches, fixes, and features not found in the official Proton releases, aiming to improve compatibility and performance for a wider range of games.
Pros
- Includes additional patches and fixes not present in official Proton releases
- Often provides better compatibility for certain games compared to standard Proton
- Frequently updated with new features and improvements
- Easily installable through tools like ProtonUp-Qt or manually
Cons
- May introduce instability or unexpected behavior in some games
- Not officially supported by Valve or game developers
- Requires manual installation and updates (unless using a third-party tool)
- Some features may conflict with anti-cheat systems in online games
Getting Started
To use GloriousEggroll/proton-ge-custom:
- Download the latest release from the GitHub repository.
- Extract the downloaded tarball to
~/.steam/root/compatibilitytools.d/(create the directory if it doesn't exist). - Restart Steam.
- Right-click on a game in your Steam library, go to Properties > Compatibility, and select the GE-Proton version you installed.
- Launch the game and enjoy improved compatibility!
Alternatively, you can use ProtonUp-Qt for easier installation and management:
- Install ProtonUp-Qt from your distribution's package manager or Flathub.
- Open ProtonUp-Qt and click "Add version."
- Select "GE-Proton" from the list and choose the version you want to install.
- Click "Install" and wait for the process to complete.
- Follow steps 3-5 from the manual installation method above.
Competitor Comparisons
Compatibility tool for Steam Play based on Wine and additional components
Pros of Proton
- Official Valve support and integration with Steam
- Regular updates aligned with Steam client releases
- Extensive compatibility with a wide range of Steam games
Cons of Proton
- More conservative approach to implementing new features
- Slower to incorporate community-driven patches and fixes
- May not support some non-Steam games as well as custom versions
Code Comparison
While both projects share a common codebase, proton-ge-custom often includes additional patches and modifications. For example, in the wine submodule:
Proton:
git submodule update --init wine
cd wine
git reset --hard <official-wine-commit>
proton-ge-custom:
git submodule update --init wine
cd wine
git reset --hard <official-wine-commit>
git apply ../patches/wine-custom-patches/*.patch
This illustrates how proton-ge-custom applies additional custom patches to the Wine codebase, potentially offering improved compatibility or performance for certain games.
The wine-tkg build systems, to create custom Wine and Proton builds
Pros of wine-tkg-git
- Highly customizable with numerous build options
- Supports a wider range of Wine versions and patches
- Allows for fine-tuning performance for specific games or applications
Cons of wine-tkg-git
- Requires more technical knowledge to build and configure
- Less user-friendly for beginners compared to pre-built solutions
- May require more frequent manual updates and maintenance
Code Comparison
wine-tkg-git:
_PKGNAME_OVERRIDE="wine-tkg-git"
_EXTERNAL_INSTALL="false"
_EXTERNAL_INSTALL_TYPE="proton"
_COMPILEWITH="gcc"
_NUKR="false"
proton-ge-custom:
#!/usr/bin/env bash
set -e
export PROTON_VERSION="GE-Proton8-3"
export STEAM_RUNTIME_PATH="/home/runner/steam-runtime"
The code snippets show configuration options for wine-tkg-git and a build script for proton-ge-custom. wine-tkg-git offers more customization variables, while proton-ge-custom focuses on a streamlined build process for Proton.
Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
Pros of DXVK
- Focused specifically on DirectX-to-Vulkan translation, providing optimized performance for this use case
- More frequent updates and active development, potentially leading to faster bug fixes and improvements
- Lighter weight and can be used independently of Proton for other Wine-based solutions
Cons of DXVK
- Limited to DirectX translation, while Proton-GE provides a more comprehensive gaming solution
- May require more manual configuration and integration compared to the ready-to-use Proton-GE
- Less tailored for specific game compatibility compared to Proton-GE's curated patches and fixes
Code Comparison
DXVK (simplified example of D3D11 to Vulkan translation):
void D3D11DeviceContext::Draw(UINT VertexCount, UINT StartVertexLocation) {
D3D10DeviceLock lock = LockContext();
CommitDrawState<false>(VertexCount, StartVertexLocation, 0, 0);
m_context->draw(VertexCount, 1, StartVertexLocation, 0);
}
Proton-GE (example of a game-specific patch):
--- a/lsteamclient/steamclient_main.c
+++ b/lsteamclient/steamclient_main.c
@@ -1,5 +1,7 @@
void *create_win_interface(const char *name, ...)
{
+ if (strcmp(name, "SteamClient017") == 0)
+ return create_SteamClient017();
// ... (existing code)
}
Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Pros of vkd3d-proton
- Focused specifically on DirectX 12 to Vulkan translation
- More frequent updates and commits
- Potentially better performance for DX12 games
Cons of vkd3d-proton
- Limited scope compared to proton-ge-custom
- May require additional configuration for optimal performance
- Less comprehensive compatibility with older DirectX versions
Code Comparison
vkd3d-proton:
VK_DEFINE_HANDLE(VkSemaphore)
VK_DEFINE_HANDLE(VkFence)
VK_DEFINE_HANDLE(VkDeviceMemory)
VK_DEFINE_HANDLE(VkBuffer)
VK_DEFINE_HANDLE(VkImage)
proton-ge-custom:
typedef struct _steam_input_action_event_t
{
InputActionSetHandle_t actionSetHandle;
EInputActionOrigin eOrigin;
InputAnalogActionData_t analogActionData;
InputDigitalActionData_t digitalActionData;
} steam_input_action_event_t;
The code snippets demonstrate the different focus areas of the projects. vkd3d-proton deals with low-level Vulkan handles, while proton-ge-custom includes Steam Input-related structures, showcasing its broader scope for gaming compatibility.
proton-ge-custom offers a more comprehensive solution for running Windows games on Linux, including various compatibility layers and tweaks. vkd3d-proton, on the other hand, specializes in DirectX 12 to Vulkan translation, potentially offering better performance for specific DX12 titles but with a narrower focus overall.
Wine builds (Vanilla, Staging, TkG and Proton)
Pros of Wine-Builds
- Focuses on pure Wine builds, offering a more lightweight and versatile solution
- Provides a wider range of Wine versions, including older releases
- Easier to integrate into custom solutions or non-Steam environments
Cons of Wine-Builds
- Lacks Steam-specific optimizations and compatibility layers
- May require more manual configuration for gaming-specific use cases
- Does not include additional patches and tweaks for improved game compatibility
Code Comparison
While a direct code comparison is not particularly relevant due to the different nature of these projects, we can look at how they are typically used:
Wine-Builds:
WINEPREFIX="/path/to/prefix" wine /path/to/application.exe
proton-ge-custom:
STEAM_COMPAT_DATA_PATH="/path/to/compatdata" ~/.steam/steam/compatibilitytools.d/Proton-X.X-GE-X/proton run /path/to/application.exe
Both projects aim to improve Windows application and game compatibility on Linux, but they take different approaches. Wine-Builds provides standalone Wine versions, while proton-ge-custom offers a more integrated solution for Steam users with additional gaming-focused optimizations.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
[!Caution] Myself (GloriousEggroll) and this project (GE-Proton) are not affiliated with any other websites related to GE-Proton. There is no existing website for GE-Proton other than this GitHub repository.
[!Important] If you have an issue that happens with my GE-Proton build, provided from this repository, that does not happen on Valve's Proton, please do not open a bug report on Valve's bug tracker.
Instead, open an issue on this repository's issue tracker: https://github.com/GloriousEggroll/proton-ge-custom/issues
or contact me on Discord about the issue: https://discord.gg/6y3BdzC
GE-Proton
[!Warning] Running non-Steam games with GE-Proton outside of Steam is only supported using umu:
Proton runs in a container, which uses a runtime environment and libraries specifically built for use within that container. Not running it as intended results in the container and therefore its runtime not being used, which severely breaks library compatibility. It causes Wine to attempt to search for libraries on your system instead of those it was built with or intended for use with Proton. It may work if enough libraries match, but it is not the expected environment and not supported due to library differences across Linux distributions.
If you want Proton functionality outside of Steam, umu-launcher is a command-line tool that was designed to be able to mimic Steam in running the entire containerized runtime environment it needs in order to run Proton exactly as Steam does without needing Steam. Any other method is not supported.
Heroic has also enabled umu by default when using
GE-Proton.Lutris has integrated umu as the default backend used when
GE-Proton (Latest)is selected as a Wine runner either globally or for any specific game.
[!Note] (1) Please note, this is a custom build of Proton, and is not affiliated with Valve's Proton.
(2) Please also note I will not assist with unofficial builds of GE-Proton. The only version of GE-Proton that I provide and will assist with builds of is the one provided within this repository, using the build system documented here.
(3) I cannot validate the accuracy or functionality of other builds that have not been built using the build system included here.
Table of contents
Overview
This is my build of Proton with the most recent bleeding-edge Proton Experimental Wine.
Things it contains that Valve's Proton currently does not:
- Additional media foundation patches for better video playback support
- AMD FSR patches added directly to fullscreen hack that can be toggled with WINE_FULLSCREEN_FSR=1
- FSR fake resolution patch details here
- NVIDIA CUDA support for PhysX and NVAPI
- Raw input mouse support
- 'protonfixes' system -- this is an automated system that applies per-game fixes (such as winetricks changes, environment variables, Easy Anti-Cheat workarounds, overrides, etc)
- Various upstream Wine patches backported
- Various wine-staging patches applied as they become needed
- NTSync enablement if the kernel supports it.
Notes
- Warframe is problematic with VSync. Turn it off or on in game, do not set to
Auto - Warframe should have a frame limit set in the game. An unlimited framerate may cause slowdowns
- Warframe on NVIDIA: you may need to disable GPU particles in game otherwise the game can freeze randomly. On AMD they should work fine.
Full patches can be viewed in protonprep-valve-staging.sh.
Installation
You must have the proper Vulkan drivers and packages installed on your system. VKD3D on AMD requires Mesa 22.0.0 or higher for the VK_KHR_dynamic_rendering extension. Check here for general driver installation guidance.
Manual
Via asdf, the version manager
There is an unofficial plugin for installing and managing GE-Proton versions
with asdf (the universal version manager), it follows
the same process as the manual installation but makes it a lot easier. Managing
versions by removing and updating to newer versions also becomes easier.
To install by it first install asdf,
and then proceed to add the 'asdf-protonge' plugin and install the version you want.
asdf plugin add protonge
# Or install a version from a tag
asdf install protonge latest
It's also possible to use the asdf plugin in Flatpak installations, by customizing the target compatibilitytools.d path. For more settings check the plugin's official documentation.
After every install you need to restart Steam, and enable proton-ge-custom.
Native
This section is for those that use the native version of Steam.
-
Download a release from the Releases page.
-
Create a
~/.steam/steam/compatibilitytools.ddirectory if it does not exist. -
Extract the release tarball into
~/.steam/steam/compatibilitytools.d/.tar -xf GE-Proton*.tar.gz -C ~/.steam/steam/compatibilitytools.d/.
-
Restart Steam.
Get the latest release of GE-Proton through your terminal. It is assumed that you have all of the necessary software to use these commands installed:
# Make a temporary working directory
echo "Creating temporary working directory..."
rm -rf /tmp/proton-ge-custom
mkdir /tmp/proton-ge-custom
cd /tmp/proton-ge-custom
# Download the tarball for the latest release
echo "Fetching tarball URL..."
tarball_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .tar.gz)
tarball_name=$(basename $tarball_url)
echo "Downloading tarball: $tarball_name..."
curl -# -L $tarball_url -o $tarball_name --no-progress-meter
# Download the checksum for the latest release
echo "Fetching checksum URL..."
checksum_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .sha512sum)
checksum_name=$(basename $checksum_url)
echo "Downloading checksum: $checksum_name..."
curl -# -L $checksum_url -o $checksum_name --no-progress-meter
# Verify the downloaded tarball with the downloaded checksum
echo "Verifying tarball $tarball_name with checksum $checksum_name..."
sha512sum -c $checksum_name
# If result the verification succeeds, continue
# Make a Steam compatibility tools folder if it does not exist
echo "Creating a Steam compatibility tools folder if it does not exist..."
mkdir -p ~/.steam/steam/compatibilitytools.d
# Extract the GE-Proton tarball to the Steam compatibility tools folder
echo "Extracting $tarball_name to the Steam compatibility tools folder..."
tar -xf $tarball_name -C ~/.steam/steam/compatibilitytools.d/
echo "Done"
The shell commands above can be run as a script by pasting the commands in a file and adding the following to the top of the file assuming you have 'bash' installed:
#!/bin/bash
set -euo pipefail
Save the file and make the script executable by adding the executable bit:
chmod +x file.sh
Flatpak
This section is for those that use the Steam Flatpak.
Flathub
The Steam Flatpak and the unofficial build of GE-Proton provided by Flathub are not supported by GloriousEggroll nor Valve and were not tested with all possible games and cases. They can behave differently from the upstream builds. Use at your own risk.
- Add the Flathub repository.
- Run:
flatpak install com.valvesoftware.Steam.CompatibilityTool.Proton-GE - Enable proton-ge-custom in Steam.
Manual
- Download a release from the Releases page.
- Create a Steam compatibility tools directory at
~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/if it does not exist. - Extract the release tarball into
~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/.tar -xf GE-ProtonVERSION.tar.gz -C ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/
- Restart Steam.
- Enable proton-ge-custom in Steam.
Get the latest GE-Proton release through your terminal. It is assumed that you have all of the necessary software to use these commands installed:
# Make a temporary working directory
echo "Creating a temporary working directory..."
rm -rf /tmp/proton-ge-custom
mkdir /tmp/proton-ge-custom
cd /tmp/proton-ge-custom
# Download the tarball for the latest release
echo "Fetching tarball URL..."
tarball_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .tar.gz)
tarball_name=$(basename $tarball_url)
echo "Downloading tarball: $tarball_name..."
curl -# -L $tarball_url -o $tarball_name --no-progress-meter
# Download the checksum for the latest release
echo "Fetching checksum URL..."
checksum_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .sha512sum)
checksum_name=$(basename $checksum_url)
echo "Downloading checksum: $checksum_name..."
curl -# -L $checksum_url -o $checksum_name --no-progress-meter
# Verify the downloaded tarball with the downloaded checksum
echo "Verifying tarball $tarball_name with checksum $checksum_name..."
sha512sum -c $checksum_name
# If result the verification succeeds, continue
# Make a Steam compatibility tools folder if it does not exist
echo "Creating a Steam directory if it does not exist..."
mkdir -p ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d
# Extract the GE-Proton tarball to the Steam compatibility tools folder
echo "Extracting $tarball_name to the Steam compatibility tools folder..."
tar -xf $tarball_name -C ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/
echo "All done :)"
The shell commands above can be run as a script by pasting the commands in a file and adding the following to the top of the file assuming you have 'bash' installed:
#!/bin/bash
set -euo pipefail
Save the file and make the script executable by adding the executable bit:
chmod +x file.sh
Snap
This section is for those that use the Steam Snap.
This unofficial build isn't supported by GloriousEggroll nor Valve and wasn't tested with all possible games and cases. It can behave differently from the upstream builds. Use at your own risk.
Manual
- Download a release from the Releases page.
- Create a
~/snap/steam/common/.steam/steam/compatibilitytools.d/directory if it does not exist. - Extract the release tarball into
~/snap/steam/common/.steam/steam/compatibilitytools.d/.tar -xf GE-ProtonVERSION.tar.gz -C ~/snap/steam/common/.steam/steam/compatibilitytools.d/
- Restart Steam.
- Enable proton-ge-custom in Steam.
Building
- Clone this repository by executing:
git clone --recurse-submodules https://github.com/gloriouseggroll/proton-ge-custom
-
Drop any custom patches into patches/, then open patches/protonprep-valve-staging.sh and add a patch line for them under
#WINE CUSTOM PATCHESin the same way the others are done. -
Apply all of the patches in patches/ by running:
./patches/protonprep-valve-staging.sh &> patchlog.txt
in the main proton-ge-custom directory. Open patchlog.txt and search for "fail" to make sure no patch failures occured. An easy way to do this is like so:
grep -i fail patchlog.txt
grep -i error patchlog.txt
-
Navigate to the parent directory containing the proton-ge-custom folder.
-
Type the following:
mkdir build && cd build
../configure.sh --build-name=SOME-BUILD-NAME-HERE
make redist &> log
The build will be placed within the build directory as SOME-BUILD-NAME-HERE.tar.gz.
Enabling
- Right click any game in Steam and click
Properties. - At the bottom of the
Compatibilitytab, CheckForce the use of a specific Steam Play compatibility tool, then select the desired Proton version. - Launch the game.
Options
Enable HDR
It should work if you have:
- A compositor with HDR support
- A game with HDR support.
- A monitor with HDR support.
PROTON_ENABLE_HDR=1 %command%
[!NOTE] Enabling HDR auto-enables the wine-wayland driver as it is a requirement. As of right now, in-game Steam overlay WILL NOT work with Wayland enabled. Please also note that Steam Input also does not work properly with the wine-wayland driver due to the overlay being broken.
Enabling NTSync
For NTSync to work, your kernel must be version 6.14 or newer and built with CONFIG_NTSYNC=y or CONFIG_NTSYNC=m.
If using CONFIG_NTSYNC=m, a module loading configuration is required followed by a reboot:
/etc/modules-load.d/ntsync.conf
ntsync
You can also manually enable the module without reboot, just keep in mind the above configuration is needed for it to persist after reboots:
sudo modprobe ntsync
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. |
| nod3d12 | PROTON_NO_D3D12 | Disables DX12. |
| nod3d11 | PROTON_NO_D3D11 | Disables DX11. |
| nod3d10 | PROTON_NO_D3D10 | Disables DX10. |
| nod3d9 | PROTON_NO_D3D9 | Disables DX9. |
| 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.) |
| nontsync | PROTON_NO_NTSYNC | Do not use the ntsync kernel module for in-process synchronization primitives. |
| forcelgadd | PROTON_FORCE_LARGE_ADDRESS_AWARE | Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. |
| heapdelayfree | PROTON_HEAP_DELAY_FREE | Delay freeing some memory, to work around application use-after-free bugs. |
| HOST_LC_ALL | Set value to a locale to override all other system locale settings for a game. This variable should be used instead of LC_ALL. | |
| enablenvapi | PROTON_ENABLE_NVAPI | Enable NVIDIA's NVAPI GPU support library. |
| noforcelgadd | Disable forcelgadd. If both this and forcelgadd are set, enabled wins. | |
| 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. |
| cmdlineappend: | Append the string after the colon as an argument to the game command. May be specified more than once. Escape commas and backslashes with a backslash. | |
| xalia or noxalia | PROTON_USE_XALIA | Enable Xalia, a program that can add a gamepad UI for some keyboard/mouse interfaces, or set to 0 to disable. The default is to enable it dynamically based on window contents. |
| seccomp | PROTON_USE_SECCOMP | Enable seccomp-bpf filter to emulate native syscalls, required for some DRM protections to work. |
| nowritewatch | PROTON_NO_WRITE_WATCH | Disable support for memory write watches in ntdll. This should only be applied if you have verified that the game can operate without write watches. This can improves performance for some very specific games. |
| WINE_FULLSCREEN_FSR | Enable AMD FidelityFX Super Resolution (FSR), use in conjunction with WINE_FULLSCREEN_FSR_STRENGTH. Only works in Vulkan games (DXVK and VKD3D-Proton included). | |
| WINE_FULLSCREEN_FSR_STRENGTH | AMD FidelityFX Super Resolution (FSR) strength, the default sharpening of 5 is enough without needing modification, but can be changed with 0-5 if wanted. 0 is the maximum sharpness, higher values mean less sharpening. 2 is the AMD recommended default and is set by GE-Proton by default. | |
| WINE_FULLSCREEN_FSR_CUSTOM_MODE | Set fake resolution of the screen. This can be useful in games that render in native resolution regardless of the selected resolution. Parameter WIDTHxHEIGHT | |
| WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER | Set to 1 to enable. Required for video playback in some games to not be miscolored (usually tinted pink) | |
| COPYPREFIX | Set to 1 to enable. If -steamdeck is used on steam (or SteamDeck=1 is set), copies the game's prefix and shader cache from the game partition to the local steam steamapps folder. Logic is reversed if -steamdeck not enabled (or SteamDeck=0) | |
fsr4 | PROTON_FSR4_UPGRADE | Automatically download amdxcffx64.dll and upgrade games with FSR 3.1 to use FSR 4. Version to download can be specified by supplying it as a value, like so PROTON_FSR4_UPGRADE="4.0.1", instead of 1. Downloads version 4.0.2 of the required DLL by default. This option also disables AMD Anti-Lag 2 currently due to various issues. |
fsr4hud | PROTON_FSR4_INDICATOR | Enable the FSR4 watermark at the top left portion of the screen. |
fsr4rdna3 | PROTON_FSR4_RDNA3_UPGRADE | Identical to PROTON_FSR4_UPGRADE but for RDNA3 GPUs. Enables some required compatibility options and downloads version 4.0.0 of the DLL by default. |
fsr3 | PROTON_FSR3_UPGRADE | |
dlss | PROTON_DLSS_UPGRADE | Automatically download and use newer versions of nvngx_dlss(d|g).dll DLLs. Version to download can be specified by supplying it as a value, like so PROTON_DLSS_UPGRADE="310.2", instead of 1, to download version 310.2.1.0. This option also sets DXVK_NVAPI_DRS_SETTINGS to use the latest preset. If you provide your own config for it through this environment variable, your configuration is going to be applied.. |
dlsshud | PROTON_DLSS_INDICATOR | Enable the DLSS overlay at the bottom left portion of the screen. This is exactly the same as FSR4_WATERMARK=1 |
xess | PROTON_XESS_UPGRADE | |
sdlinput | PROTON_USE_SDL or PROTON_PREFER_SDL | Uses SDL input instead of HIDRAW/Steam Input. |
wayland | PROTON_USE_WAYLAND or PROTON_ENABLE_WAYLAND | Enables the Wayland driver. |
wow64 | PROTON_USE_WOW64 | Enables wow64. |
WAYLANDDRV_PRIMARY_MONITOR | Specify primary monitor where the value is something like eDP-1. Requires the Wayland driver. | |
PROTON_ENABLE_MEDIACONV | Enable media converter for winegstreamer. This is not needed for winedmo, since the mediaconverter implementation of the codecs doesn't override the underlying implementation. | |
WAYLANDDRV_RAWINPUT | A value of 0 disables unaccelerated input and uses accelerated input. Any positive real number (like 0.5) adjusts the sensitivity of rawinput. Requires the Wayland driver. |
Credits
The GE-Proton project contains some of my personal tweaks to Proton, but a large amount of the patches, rebases and fixes come from numerous people's projects.
While I tend to get credited for my builds, a lot of the work that goes into it are from other people as well. I'd like to take some time to point a few of these people out of recognition.
In future builds, I plan to make clearer and more informative Git commits, as well as attempt to give these people further crediting, as my README may not be sufficient in doing so.
TKG (Etienne Juvigny)
I and many others owe TKG. In regards to both Wind and Proton. He has dedicated a lot of time (2+ years at least) to rebasing Wine and Proton patches, as well as making his own contributions. Before he came along, I did some rebasing work, and mainly only released things for Arch. These days he almost always beats me to rebasing, and it saves myself and others a lot of work.
Guy1524 (Derek Lesho)
Derek was responsible for the original raw input patches, as well as several various game fixes in the past, just to name a few: MK11, FFXV, MHW, Steep, AC Odyssey FS fix. He has also done a massive amount of work on Media Foundation/MFPlat, which should be hopefully working very soon.
Joshie (Joshua Ashton)
Joshua is the creator of D9VK and also a huge contributor of DXVK. He is also known for his recent DOOM Eternal WINE fixes and also many of the Vulkan tweaks and fixes used, such as FS hack interger scaling.
doitsujin/ãã¤ã人 (Philip Rebohle)
Philip is the creator of DXVK and a heavy contributor of VKD3D. He also put up a lot of my bug reporting for Warframe years ago when DXVK started.
HansKristian/themaister (Hans-Kristian Arntzen)
Hans-Kristian is a heavy contributor of VKD3D and he also created a lot of WINE patches that allowed WoW to work.
flibitijibibo (Ethan Lee)
Ethan is the creator of FAudio, and he also listened to my Warframe bug reports years ago.
simmons-public (Chris Simmons)
Chris is the creator of the original 'protonfixes' project. The portions of 'protonfixes' I've imported are what allow customizations to be made to prefixes for various Proton games. Without 'protonfixes' many games would still be broken and/or require manual prefix modification.
wine-staging maintainers
I also of course need to thank the wine-staging maintainers: Alistair Leslie-Hughes, Zebediah Figura and Paul Gofman
They have contributed many patches to staging, far beyond what I have done, as well as kept up with regular rebasing. A lot of times when bug reports come to me, if it has to do with staging I end up testing and relaying information to these guys in order to get issues resolved.
Reporters
Additionally, a thank you is owed to Andrew Aeikum (aeikum), and kisak (kisak-valve) for regularly keeping me in the loop with Proton and fsync patches, as well as accepting pull requests I've made to fix Proton build system issues, or listening to bug reports on early Proton patches before they reach a Proton release.
Patrons
And finally - to all of my patrons that have supported me, thank you so much. It's because of you that I've been able to keep this project going, getting bug fixes reported, getting Proton/Wine issues fixed, getting various hardware and/or game fixes handled, and so on. Thanks to you, I have been able to use the spare budget in order to both help support the other people that make my project possible, as well as get things necessary for testing such as new game releases or specific hardware that hits odd issues. It's had a huge effect not just for this project, but a large trickle down effect.
My wine-staging co-maintainers are often able to ask me for testing games, or testing on different hardware if they don't have access to it. This also trickles into both Proton bug reporting and Lutris bug reporting, as I'm able to provide bug testing and feedback and custom builds and upgrades to them as well. I'm also able to test driver related issues for things such as mesa and getting things reported + patched. This in turn leads to early patches for Mesa, the kernel, VKD3D, and other packages on my copr repositories as well. The trickle down effect is just one gigantic awesome rabbit hole for getting things fixed. Thank you once again.
Donations
For anyone else interested, my Patreon can be found here:
https://www.patreon.com/gloriouseggroll
Tested games
| Name | SteamDB link | ProtonDB link | Steambase | Has protonfixes | Has Media Foundation fixes |
|---|---|---|---|---|---|
| Acceleration of SUGURI 2 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Age of Empires: Definitive Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Age of Empires II: Definitive Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Age of Empires III: Definitive Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Age of Mythology: Extended Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| AirMech Strike | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| American Fugitive | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Apex Legends | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Arkania | :x: | :x: | |||
| Assetto Corsa | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Astroneer | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Aven Colony | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Baldur's Gate 3 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Batman Arkham Asylum | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Batman Arkham Knight | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Battlefield: Bad Company 2 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| BeamNG.drive | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Bejeweled 3 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Beyond Good and Evil | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| BioShock 2 Remastered | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| BIT.TRIP BEAT | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| BIT.TRIP RUNNER | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| BlazBlue Centralfiction | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| BlazBlue: Chronophantasma Extend | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Blood and Bacon | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Bloodstained: Ritual of the Night | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Borderlands 2 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Borderlands 3 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Call of Duty (2003) | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Call of Duty: Black Ops III | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Catherine Classic | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Chantelise - A Tale of Two Sisters | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Conan Exiles | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Crashday Redline Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Crazy Machines 3 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Cryostasis | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Crysis | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Danganronpa V3: Killing Harmony | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Dark Souls: Prepare To Die Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Dark Souls: Remastered | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| DEAD OR ALIVE 5 Last Round: Core Fighters | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Destiny 2 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Devil May Cry 5 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Divinity Original Sin 2 - Definitive Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Doom (2016) | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Fall Guys: Ultimate Knockout | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Fallout 3 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Fallout 4 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Far Cry 5 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| FINAL FANTASY X/X-2 HD Remaster | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| FINAL FANTASY IX | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| FINAL FANTASY XIII | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| FINAL FANTASY XIV Online | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Forts | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Gears 5 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Gothic 1 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Gothic II: Gold Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Gothic 3 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Gothic 3: Forsaken Gods Enhanced Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Grim Dawn | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| GT Legends | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| GUILTY GEAR XX ACCENT CORE PLUS R | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Halo: The Master Chief Collection | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Haven | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Heavy Rain | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| HighFleet | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| IMSCARED | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Industries of Titan | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Injustice 2 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| JUMP FORCE | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| L.A. Noire | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| LEGO Batman 2: DC Super Heroes | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| LEGO The Lord of the Rings | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Little Nightmares | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Lord of the Rings: War in the North | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Mafia II Definitive Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Marvel's Avengers | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Mass Effect Legendary Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Metro 2033 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Microsoft Flight Simulator Game of the Year Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Monster Hunter Rise | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Mortal Kombat 11 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Mortal Kombat X | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Mutant Year Zero: Road to Eden | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Resident Evil 6 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Resident Evil 7 Biohazard | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Resident Evil 8 Village | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Resident Evil Revelations | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Resident Evil Revelations 2 | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Rise of Nations: Extended Edition | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Sacred 2 Gold | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Scrap Mechanic | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Serious Sam 4 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Serious Sam: The Random Encounter | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Seven: Enhanced Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Sleeping Dogs: Definitive Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Sonic CD | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| SOULCALIBUR VI | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :heavy_check_mark: |
| Space Engineers | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Spyro Reignited Trilogy | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| STAR WARS Galactic Battlegrounds Saga | SteamDB | ProtonDB | Steambase | :heavy_check_mark: | :x: |
| Stealth Inc 2: A Game of Clones | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Strange Brigade | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Super Lucky's Tale | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Super Meat Boy | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Syberia | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Tesla Effect: A Tex Murphy Adventure | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| The Bureau: XCOM Declassified | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| The Elder Scrolls Online | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| The Elder Scrolls V: Skyrim | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| The Elder Scrolls V: Skyrim Special Edition | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| The Evil Within | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| The Lord of the Rings Online | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Tokyo Xanadu eX+ | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Tomb Raider | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Tomb Raider I | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Tree of Savior | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Ultimate Marvel VS. Capcom 3 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Warframe | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Wasteland 3 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Watch_Dogs | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Watch_Dogs 2 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| WORLD OF HORROR | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Yakuza 0 | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Yakuza Kiwami | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| Yesterday Origins | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
| You Need A Budget 4 (YNAB) | SteamDB | ProtonDB | Steambase | :x: | :heavy_check_mark: |
Top Related Projects
Compatibility tool for Steam Play based on Wine and additional components
The wine-tkg build systems, to create custom Wine and Proton builds
Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.
Wine builds (Vanilla, Staging, TkG and Proton)
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot