GloriousEggroll's Proton has been rebased on Proton 11

Hacker News Top Tools

Summary

GloriousEggroll's GE-Proton custom build has been rebased on Proton 11, providing the latest Wine improvements and additional patches for better gaming performance on Linux.

No content available
Original Article
View Cached Full Text

Cached at: 06/25/26, 11:14 PM

GloriousEggroll/proton-ge-custom

Source: https://github.com/GloriousEggroll/proton-ge-custom

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.

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

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.

(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.

Via ProtonPlus, a proton version manager

ProtonPlus is a GUI Frontend for managing proton versions, including GE-Proton. It is a great tool for those who want a more user-friendly way to manage their proton versions.

To install Proton-GE, Select the Proton-GE dropdown, and select the version you want to install, or Proton-GE Latest to install the latest version and automatically update it when new versions are released.

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.

  1. Download a release from the Releases page.
  2. Create a ~/.steam/steam/compatibilitytools.d directory if it does not exist.
  3. Extract the release tarball into ~/.steam/steam/compatibilitytools.d/.
    • tar -xf GE-Proton*.tar.gz -C ~/.steam/steam/compatibilitytools.d/.
  4. Restart Steam.
  5. Enable proton-ge-custom in Steam.

Get the latest GE-Proton release through your terminal. It is assumed that you have coreutils and curl installed:

# Make a temporary working directory
echo "Making sure temporary directory exists..."
mkdir -p /tmp/proton-ge-custom
cd /tmp/proton-ge-custom

steam_dir=~/.steam/steam

# Verify Steam data directory exists
if [[ ! -d "$steam_dir" ]]; then
    echo "Error: Steam (native) data directory not found." >&2
    echo "Please launch Steam at least once to populate it." >&2
    exit 1
fi

# Make a Steam compatibility tools folder if it does not exist
mkdir -p "$steam_dir/compatibilitytools.d"

# Fetch release info
echo "Fetching release info..."
release_json=$(curl -s --max-time 10 \
    https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest)

if [[ -z "$release_json" || "$release_json" != *'"tag_name"'* ]]; then
    echo "Error: Failed to fetch release info from GitHub." >&2
    exit 1
fi

# Resolve release URL for current architecture
echo "Fetching release for your arch..."

case "$(uname -m)" in
    aarch64|arm64) tarball_pattern='\-aarch64\.tar\.gz$' ;;
    x86_64)        tarball_pattern='GE-Proton[0-9]+-[0-9]+\.tar\.gz$' ;;
    *)
        echo "Error: Unsupported architecture: $(uname -m)." >&2
        echo "GE-Proton is only available for x86_64 and aarch64." >&2
        exit 1
        ;;
esac

tarball_url=$(echo "$release_json" |
    grep browser_download_url |
    cut -d\" -f4 |
    grep -E "$tarball_pattern" |
    head -n1 || true)

tarball_name=$(basename "$tarball_url")
release_name=${tarball_name%.tar.gz}

if [[ -z "$tarball_url" ]]; then
    echo "Error: Could not find a matching release for your arch ($(uname -m))." >&2
    exit 1
fi

# Skip if already installed
if [[ -d "$steam_dir/compatibilitytools.d/$release_name" ]]; then
    echo "Latest release $release_name is already installed."
    exit 0
fi

# Resolve checksum URL
checksum_url=$(echo "$release_json" |
    grep browser_download_url |
    cut -d\" -f4 |
    grep "$release_name.sha512sum$" || true)

if [[ -z "$checksum_url" ]]; then
    echo "Error: Could not find a checksum for $tarball_name in the release." >&2
    exit 1
fi

# Use cached tarball from tmp if valid, resume if incomplete
if [[ -f "$tarball_name" ]]; then
    echo "Found cached release: $release_name"
    echo "Verifying download..."

    if curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
        echo "Cached release OK, skipping download."
    else
        echo "Cached release is incomplete, resuming download..."
        curl -C - -L "$tarball_url" -o "$tarball_name" --progress-bar
        echo "Verifying download..."

        if ! curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
            echo "Resumed download corrupt, falling back to fresh download..."
            rm -f "$tarball_name"
            curl -L "$tarball_url" -o "$tarball_name" --progress-bar
            echo "Verifying download..."

            if ! curl -sL "$checksum_url" | sha512sum -c -; then
                echo "Error: Verification failed! The downloaded release may be corrupt." >&2
                exit 1
            fi
        fi
    fi

# Nuke the temporary working directory and download the tarball
else
    echo "Cleaning temporary directory..."
    rm -rf /tmp/proton-ge-custom
    mkdir /tmp/proton-ge-custom
    cd /tmp/proton-ge-custom
    echo "Downloading release: $release_name..."
    curl -L "$tarball_url" -o "$tarball_name" --progress-bar
    echo "Verifying download..."

    if ! curl -sL "$checksum_url" | sha512sum -c -; then
        echo "Error: Verification failed! The downloaded release may be corrupt." >&2
        exit 1
    fi
fi

# 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_dir/compatibilitytools.d/" \
    || { echo "Error: Extraction failed!" >&2; exit 1; }

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
trap 'echo "Error" >&2' ERR

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.

  1. Add the Flathub repository.
  2. Run:
    flatpak install com.valvesoftware.Steam.CompatibilityTool.Proton-GE
    
  3. Enable proton-ge-custom in Steam.
Manual
  1. Download a release from the Releases page.
  2. Create a Steam compatibility tools directory at ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/ if it does not exist.
  3. 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/
  4. Restart Steam.
  5. Enable proton-ge-custom in Steam.

Get the latest GE-Proton release through your terminal. It is assumed that you have coreutils and curl installed:

# Make a temporary working directory
echo "Making sure temporary directory exists..."
mkdir -p /tmp/proton-ge-custom
cd /tmp/proton-ge-custom

steam_dir=~/.var/app/com.valvesoftware.Steam/data/Steam

# Verify Steam data directory exists
if [[ ! -d "$steam_dir" ]]; then
    echo "Error: Steam (flatpak) data directory not found." >&2
    echo "Please launch Steam at least once to populate it." >&2
    exit 1
fi

# Make a Steam compatibility tools folder if it does not exist
mkdir -p "$steam_dir/compatibilitytools.d"

# Fetch release info
echo "Fetching release info..."
release_json=$(curl -s --max-time 10 \
    https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest)

if [[ -z "$release_json" || "$release_json" != *'"tag_name"'* ]]; then
    echo "Error: Failed to fetch release info from GitHub." >&2
    exit 1
fi

# Resolve release URL for current architecture
echo "Fetching release for your arch..."

case "$(uname -m)" in
    aarch64|arm64) tarball_pattern='-aarch64\.tar\.gz$' ;;
    x86_64)        tarball_pattern='GE-Proton[0-9]+-[0-9]+\.tar\.gz$' ;;
    *)
        echo "Error: Unsupported architecture: $(uname -m)." >&2
        echo "GE-Proton is only available for x86_64 and aarch64." >&2
        exit 1
        ;;
esac

tarball_url=$(echo "$release_json" |
    grep browser_download_url |
    cut -d\" -f4 |
    grep -E "$tarball_pattern" |
    head -n1 || true)

tarball_name=$(basename "$tarball_url")
release_name=${tarball_name%.tar.gz}

if [[ -z "$tarball_url" ]]; then
    echo "Error: Could not find a matching release for your arch ($(uname -m))." >&2
    exit 1
fi

# Skip if already installed
if [[ -d "$steam_dir/compatibilitytools.d/$release_name" ]]; then
    echo "Latest release $release_name is already installed."
    exit 0
fi

# Resolve checksum URL
checksum_url=$(echo "$release_json" |
    grep browser_download_url |
    cut -d\" -f4 |
    grep "$release_name.sha512sum$" || true)

if [[ -z "$checksum_url" ]]; then
    echo "Error: Could not find a checksum for $tarball_name in the release." >&2
    exit 1
fi

# Use cached tarball from tmp if valid, resume if incomplete
if [[ -f "$tarball_name" ]]; then
    echo "Found cached release: $release_name"
    echo "Verifying download..."

    if curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
        echo "Cached release OK, skipping download."
    else
        echo "Cached release is incomplete, resuming download..."
        curl -C - -L "$tarball_url" -o "$tarball_name" --progress-bar
        echo "Verifying download..."

        if ! curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
            echo "Resumed download corrupt, falling back to fresh download..."
            rm -f "$tarball_name"
            curl -L "$tarball_url" -o "$tarball_name" --progress-bar
            echo "Verifying download..."

            if ! curl -sL "$checksum_url" | sha512sum -c -; then
                echo "Error: Verification failed! The downloaded release may be corrupt." >&2
                exit 1
            fi
        fi
    fi

# Nuke the temporary working directory and download the tarball
else
    echo "Cleaning temporary directory..."
    rm -rf /tmp/proton-ge-custom
    mkdir /tmp/proton-ge-custom
    cd /tmp/proton-ge-custom
    echo "Downloading release: $release_name..."
    curl -L "$tarball_url" -o "$tarball_name" --progress-bar
    echo "Verifying download..."

    if ! curl -sL "$checksum_url" | sha512sum -c -; then
        echo "Error: Verification failed! The downloaded release may be corrupt." >&2
        exit 1
    fi
fi

# 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_dir/compatibilitytools.d/" \
    || { echo "Error: Extraction failed!" >&2; exit 1; }

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
trap 'echo "Error" >&2' ERR

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
  1. Download a release from the Releases page.
  2. Create a ~/snap/steam/common/.steam/steam/compatibilitytools.d/ directory if it does not exist.
  3. 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/
  4. Restart Steam.
  5. Enable proton-ge-custom in Steam.

Building

  1. Clone this repository by executing:
git clone --recurse-submodules https://github.com/gloriouseggroll/proton-ge-custom
  1. Drop any custom patches into patches/, then open patches/protonprep-valve-staging.sh and add a patch line for them under #WINE CUSTOM PATCHES in the same way the others are done.

  2. 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 
  1. Navigate to the parent directory containing the proton-ge-custom folder.

  2. 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

  1. Right click any game in Steam and click Properties.
  2. At the bottom of the Compatibility tab, Check Force the use of a specific Steam Play compatibility tool, then select the desired Proton version.
  3. 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%

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. On non-systemd systems, you must also have a ulimit -Hn of 524288 or higher. 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

If on a non-systemd system with an inadequate ulimit -Hn, adjusting limits is required followed by a reboot:

/etc/security/limits.d/26-steam-nofile.conf

*               hard    nofile             524288

Environment variable options:

Compat config stringEnvironment VariableDescription
PROTON_LOGConvenience method for dumping a useful debug log to $HOME/steam-$APPID.log. For more thorough logging, use user_settings.py.
PROTON_DUMP_DEBUG_COMMANDSWhen running a game, Proton will write some useful debug scripts for that game into $PROTON_DEBUG_DIR/proton_$USER/.
PROTON_DEBUG_DIRRoot directory for the Proton debug scripts, /tmp by default.
wined3dPROTON_USE_WINED3DUse 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.
nod3d12PROTON_NO_D3D12Disables DX12.
nod3d11PROTON_NO_D3D11Disables DX11.
nod3d10PROTON_NO_D3D10Disables DX10.
nod3d9PROTON_NO_D3D9Disables DX9.
noesyncPROTON_NO_ESYNCDo not use eventfd-based in-process synchronization primitives.
nofsyncPROTON_NO_FSYNCDo not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.)
nontsyncPROTON_NO_NTSYNCDo not use the ntsync kernel module for in-process synchronization primitives.
forcelgaddPROTON_FORCE_LARGE_ADDRESS_AWAREForce Wine to enable the LARGE_ADDRESS_AWARE flag for all executables.
heapdelayfreePROTON_HEAP_DELAY_FREEDelay freeing some memory, to work around application use-after-free bugs.
HOST_LC_ALLSet value to a locale to override all other system locale settings for a game. This variable should be used instead of LC_ALL.
enablenvapiPROTON_ENABLE_NVAPIEnable NVIDIA’s NVAPI GPU support library.
noforcelgaddDisable forcelgadd. If both this and forcelgadd are set, enabled wins.
oldglstrPROTON_OLD_GL_STRINGSet 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 noxaliaPROTON_USE_XALIAEnable 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.
seccompPROTON_USE_SECCOMPEnable seccomp-bpf filter to emulate native syscalls, required for some DRM protections to work.
nowritewatchPROTON_NO_WRITE_WATCHDisable 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_FSREnable 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_STRENGTHAMD 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_MODESet 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_MANAGERSet to 1 to enable. Required for video playback in some games to not be miscolored (usually tinted pink)
COPYPREFIXSet 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)
fsr4PROTON_FSR4_UPGRADEAutomatically 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.
fsr4hudPROTON_FSR4_INDICATOREnable the FSR4 watermark at the top left portion of the screen.
fsr4rdna3PROTON_FSR4_RDNA3_UPGRADEIdentical to PROTON_FSR4_UPGRADE but for RDNA3 GPUs. Enables some required compatibility options and downloads version 4.0.0 of the DLL by default.
fsr3PROTON_FSR3_UPGRADE
dlssPROTON_DLSS_UPGRADEAutomatically 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..
dlsshudPROTON_DLSS_INDICATOREnable the DLSS overlay at the bottom left portion of the screen. This is exactly the same as FSR4_WATERMARK=1
xessPROTON_XESS_UPGRADE
sdlinputPROTON_USE_SDL or PROTON_PREFER_SDLUses SDL input instead of HIDRAW/Steam Input.
waylandPROTON_USE_WAYLAND or PROTON_ENABLE_WAYLANDEnables the Wayland driver.
wow64PROTON_USE_WOW64Enables wow64.
WAYLANDDRV_PRIMARY_MONITORSpecify primary monitor where the value is something like eDP-1. Requires the Wayland driver.
PROTON_ENABLE_MEDIACONVEnable media converter for winegstreamer. This is not needed for winedmo, since the mediaconverter implementation of the codecs doesn’t override the underlying implementation.
WAYLANDDRV_RAWINPUTA 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)

  • https://www.patreon.com/tkglitch
  • https://github.com/Frogging-Family/wine-tkg-git

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)

  • https://github.com/Guy1524

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)

  • https://github.com/Joshua-Ashton/d9vk

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)

  • https://github.com/doitsujin/dxvk

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)

  • https://github.com/HansKristian-Work

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)

  • https://github.com/sponsors/flibitijibibo
  • https://fna-xna.github.io/

Ethan is the creator of FAudio, and he also listened to my Warframe bug reports years ago.

simmons-public (Chris Simmons)

  • https://github.com/simons-public

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

NameSteamDB linkProtonDB linkSteambaseHas protonfixesHas Media Foundation fixes
Acceleration of SUGURI 2SteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Age of Empires: Definitive EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
Age of Empires II: Definitive EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
Age of Empires III: Definitive EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
Age of Mythology: Extended EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
AirMech StrikeSteamDBProtonDBSteambase:x::heavy_check_mark:
American FugitiveSteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Anomaly DefendersSteamDBProtonDBSteambase:x::x:
Apex LegendsSteamDBProtonDBSteambase:x::heavy_check_mark:
Arkania:x::x:
Assetto CorsaSteamDBProtonDBSteambase:x::heavy_check_mark:
AstroneerSteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Aven ColonySteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Baldur’s Gate 3SteamDBProtonDBSteambase:heavy_check_mark::x:
Batman Arkham AsylumSteamDBProtonDBSteambase:heavy_check_mark::x:
Batman Arkham KnightSteamDBProtonDBSteambase:heavy_check_mark::x:
Battlefield: Bad Company 2SteamDBProtonDBSteambase:heavy_check_mark::x:
BeamNG.driveSteamDBProtonDBSteambase:heavy_check_mark::x:
Bejeweled 3SteamDBProtonDBSteambase:heavy_check_mark::x:
Beyond Good and EvilSteamDBProtonDBSteambase:heavy_check_mark::x:
BioShock 2 RemasteredSteamDBProtonDBSteambase:heavy_check_mark::x:
BIT.TRIP BEATSteamDBProtonDBSteambase:heavy_check_mark::x:
BIT.TRIP RUNNERSteamDBProtonDBSteambase:heavy_check_mark::x:
BlazBlue CentralfictionSteamDBProtonDBSteambase:x::heavy_check_mark:
BlazBlue: Chronophantasma ExtendSteamDBProtonDBSteambase:heavy_check_mark::x:
Blood and BaconSteamDBProtonDBSteambase:heavy_check_mark::x:
Bloodstained: Ritual of the NightSteamDBProtonDBSteambase:x::heavy_check_mark:
Borderlands 2SteamDBProtonDBSteambase:heavy_check_mark::x:
Borderlands 3SteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Call of Duty (2003)SteamDBProtonDBSteambase:heavy_check_mark::x:
Call of Duty: Black Ops IIISteamDBProtonDBSteambase:x::heavy_check_mark:
Catherine ClassicSteamDBProtonDBSteambase:heavy_check_mark::x:
Chantelise - A Tale of Two SistersSteamDBProtonDBSteambase:heavy_check_mark::x:
Conan ExilesSteamDBProtonDBSteambase:heavy_check_mark::x:
Crashday Redline EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Crazy Machines 3SteamDBProtonDBSteambase:x::heavy_check_mark:
CryostasisSteamDBProtonDBSteambase:heavy_check_mark::x:
CrysisSteamDBProtonDBSteambase:heavy_check_mark::x:
Danganronpa V3: Killing HarmonySteamDBProtonDBSteambase:x::heavy_check_mark:
Dark Souls: Prepare To Die EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Dark Souls: RemasteredSteamDBProtonDBSteambase:heavy_check_mark::x:
DEAD OR ALIVE 5 Last Round: Core FightersSteamDBProtonDBSteambase:heavy_check_mark::x:
Destiny 2SteamDBProtonDBSteambase:heavy_check_mark::x:
Devil May Cry 5SteamDBProtonDBSteambase:x::heavy_check_mark:
Divinity Original Sin 2 - Definitive EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Doom (2016)SteamDBProtonDBSteambase:heavy_check_mark::x:
Fall Guys: Ultimate KnockoutSteamDBProtonDBSteambase:heavy_check_mark::x:
Fallout 3SteamDBProtonDBSteambase:heavy_check_mark::x:
Fallout 4SteamDBProtonDBSteambase:heavy_check_mark::x:
Far Cry 5SteamDBProtonDBSteambase:heavy_check_mark::x:
FINAL FANTASY X/X-2 HD RemasterSteamDBProtonDBSteambase:heavy_check_mark::x:
FINAL FANTASY IXSteamDBProtonDBSteambase:heavy_check_mark::x:
FINAL FANTASY XIIISteamDBProtonDBSteambase:heavy_check_mark::x:
FINAL FANTASY XIV OnlineSteamDBProtonDBSteambase:heavy_check_mark::x:
FortsSteamDBProtonDBSteambase:heavy_check_mark::x:
Gears 5SteamDBProtonDBSteambase:heavy_check_mark::x:
Gothic 1SteamDBProtonDBSteambase:heavy_check_mark::x:
Gothic II: Gold EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Gothic 3SteamDBProtonDBSteambase:heavy_check_mark::x:
Gothic 3: Forsaken Gods Enhanced EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Grim DawnSteamDBProtonDBSteambase:heavy_check_mark::x:
GT LegendsSteamDBProtonDBSteambase:heavy_check_mark::x:
GUILTY GEAR XX ACCENT CORE PLUS RSteamDBProtonDBSteambase:heavy_check_mark::x:
Halo: The Master Chief CollectionSteamDBProtonDBSteambase:heavy_check_mark::x:
HavenSteamDBProtonDBSteambase:x::heavy_check_mark:
Heavy RainSteamDBProtonDBSteambase:heavy_check_mark::x:
HighFleetSteamDBProtonDBSteambase:heavy_check_mark::x:
IMSCAREDSteamDBProtonDBSteambase:heavy_check_mark::x:
Industries of TitanSteamDBProtonDBSteambase:x::heavy_check_mark:
Injustice 2SteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
JUMP FORCESteamDBProtonDBSteambase:heavy_check_mark::x:
L.A. NoireSteamDBProtonDBSteambase:heavy_check_mark::x:
LEGO Batman 2: DC Super HeroesSteamDBProtonDBSteambase:heavy_check_mark::x:
LEGO The Lord of the RingsSteamDBProtonDBSteambase:heavy_check_mark::x:
Little NightmaresSteamDBProtonDBSteambase:heavy_check_mark::x:
Lord of the Rings: War in the NorthSteamDBProtonDBSteambase:heavy_check_mark::x:
Mafia II Definitive EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Marvel’s AvengersSteamDBProtonDBSteambase:heavy_check_mark::x:
Mass Effect Legendary EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Metro 2033SteamDBProtonDBSteambase:heavy_check_mark::x:
Microsoft Flight Simulator Game of the Year EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Monster Hunter RiseSteamDBProtonDBSteambase:x::heavy_check_mark:
Mortal Kombat 11SteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Mortal Kombat XSteamDBProtonDBSteambase:heavy_check_mark::x:
Mutant Year Zero: Road to EdenSteamDBProtonDBSteambase:x::heavy_check_mark:
Resident Evil 6SteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Resident Evil 7 BiohazardSteamDBProtonDBSteambase:x::heavy_check_mark:
Resident Evil 8 VillageSteamDBProtonDBSteambase:x::heavy_check_mark:
Resident Evil RevelationsSteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Resident Evil Revelations 2SteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Rise of Nations: Extended EditionSteamDBProtonDBSteambase:heavy_check_mark::x:
Sacred 2 GoldSteamDBProtonDBSteambase:x::heavy_check_mark:
Scrap MechanicSteamDBProtonDBSteambase:x::heavy_check_mark:
Serious Sam 4SteamDBProtonDBSteambase:x::heavy_check_mark:
Serious Sam: The Random EncounterSteamDBProtonDBSteambase:x::heavy_check_mark:
Seven: Enhanced EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
Sleeping Dogs: Definitive EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
Sonic CDSteamDBProtonDBSteambase:x::heavy_check_mark:
SOULCALIBUR VISteamDBProtonDBSteambase:heavy_check_mark::heavy_check_mark:
Space EngineersSteamDBProtonDBSteambase:x::heavy_check_mark:
Spyro Reignited TrilogySteamDBProtonDBSteambase:x::heavy_check_mark:
STAR WARS Galactic Battlegrounds SagaSteamDBProtonDBSteambase:heavy_check_mark::x:
Stealth Inc 2: A Game of ClonesSteamDBProtonDBSteambase:x::heavy_check_mark:
Strange BrigadeSteamDBProtonDBSteambase:x::heavy_check_mark:
Super Lucky’s TaleSteamDBProtonDBSteambase:x::heavy_check_mark:
Super Meat BoySteamDBProtonDBSteambase:x::heavy_check_mark:
SyberiaSteamDBProtonDBSteambase:x::heavy_check_mark:
Tesla Effect: A Tex Murphy AdventureSteamDBProtonDBSteambase:x::heavy_check_mark:
The Bureau: XCOM DeclassifiedSteamDBProtonDBSteambase:x::heavy_check_mark:
The Elder Scrolls OnlineSteamDBProtonDBSteambase:x::heavy_check_mark:
The Elder Scrolls V: SkyrimSteamDBProtonDBSteambase:x::heavy_check_mark:
The Elder Scrolls V: Skyrim Special EditionSteamDBProtonDBSteambase:x::heavy_check_mark:
The Evil WithinSteamDBProtonDBSteambase:x::heavy_check_mark:
The Lord of the Rings OnlineSteamDBProtonDBSteambase:x::heavy_check_mark:
Tokyo Xanadu eX+SteamDBProtonDBSteambase:x::heavy_check_mark:
Total War: WARHAMMER IIISteamDBProtonDBSteambase:x::x:
Tomb RaiderSteamDBProtonDBSteambase:x::heavy_check_mark:
Tomb Raider ISteamDBProtonDBSteambase:x::heavy_check_mark:
Tree of SaviorSteamDBProtonDBSteambase:x::heavy_check_mark:
Ultimate Marvel VS. Capcom 3SteamDBProtonDBSteambase:x::heavy_check_mark:
WarframeSteamDBProtonDBSteambase:x::heavy_check_mark:
Warhammer 40,000: Rogue TraderSteamDBProtonDBSteambase:x::x:
Warhammer 40,000: Space Marine 2SteamDBProtonDBSteambase:x::x:
Wasteland 3SteamDBProtonDBSteambase:x::heavy_check_mark:
Watch_DogsSteamDBProtonDBSteambase:x::heavy_check_mark:
Watch_Dogs 2SteamDBProtonDBSteambase:x::heavy_check_mark:
WORLD OF HORRORSteamDBProtonDBSteambase:x::heavy_check_mark:
Yakuza 0SteamDBProtonDBSteambase:x::heavy_check_mark:
Yakuza KiwamiSteamDBProtonDBSteambase:x::heavy_check_mark:
Yesterday OriginsSteamDBProtonDBSteambase:x::heavy_check_mark:
You Need A Budget 4 (YNAB)SteamDBProtonDBSteambase:x::heavy_check_mark:

Similar Articles

Porting WINE to a new Hobby OS

Lobsters Hottest

A detailed account of porting Wine to the Astral hobby OS, enabling 32-bit Windows apps via WoW64 and resolving OpenGL/EGL dependencies to run games like Cogmind.

Gemma 4 12B is my new main squeeze

Reddit r/LocalLLaMA

The author shares their experience switching from Qwen 3.6 to Gemma 4 12B (Unsloth Q5_K_XL) for local coding, praising its plug-and-play setup, better syntax accuracy, and manageable VRAM usage despite a slight speed trade-off.

Dolphin Emulator Progress Release 2606

Hacker News Top

Dolphin Emulator's Release 2606 adds Game Boy Player emulation, Wii RetroAchievements support, fixes a long-standing high-resolution visual issue, and makes The Key of Avalon playable with multiplayer.

OpenTTD 16.0-Beta1

Hacker News Top

OpenTTD 16.0-beta1 is now available, featuring backwards driving trains, improved map generation, multiplayer improvements, and a title game competition.