this script automatically patches wine so fitgirl installers don't hang and generates a startup script that runs the game with proton as well as a .desktop file for application launchers
NOTE: this has been tested with very few games and makes many assumptions. feel free to contribute patches for better compat
UPDATE: some of the wine patches used by this script have been merged into wine as of 5.17, so if you prefer you can just manually use plain old wine now as long as you have 5.17
dependencies
these are based on arch linux derivatives but you can adapt to other distros
- icoutils (wrestool)
- proton-tkg-git from the chaotic aur https://lonewolf.pedrohlc.com/chaotic-aur/
- a tkg-pds kernel matching your cpu architecture from that same aur will help performance a lot thanks to fsync support and other goodies (also in the chaotic aur)
- on amd, you also want mesa-tkg-git and lib32-mesa-tkg-git (also in the chaotic aur) to fix shader stutters
- steam-native-runtime
- dmenu or rofi
- curl
- if your distro doesn't provide a steam native runtime and you don't want to manually find all the libraries, install steam and export STEAM_RUNTIME=1. you must run and update steam at least once. no need to have an account or log in. if your steam install isn't at ~/.steam , also export STEAM_HOME_DIR
install
curl -lO https://raw.githubusercontent.com/Francesco149/protonfit/master/protonfit
chmod +x ./protonfit
sudo mv ./protonfit /usr/local/bin/
usage
open a terminal, cd
to the path where setup.exe
is located and run protonfit
NOTE: it's recommended to NOT install directx updates and visual c++ runtime and stuff like that.
instead, use tricks
later if needed.
using it as a runner for proton without steam
protonfit prefix
to create a prefix at ./pfxrun
andtricks
commands from "advanced usage"
advanced usage
protonfit tricks
runs winetricks on the proton profile, for exampleprotonfit tricks vcrun2015
- protonfit modifies winetricks so you can inject your own custom verbs by placing them in
~/.config/tricks
. for example, you can take the vcrun2019_ge verb from GloriousEggroll 's custom protonfixes, place it in~/.config/tricks
and then you can install it withprotonfit tricks vcrun2019_ge
- if
protonfit tricks
fails for some reason, you can also usePROTON_WINETRICKS=1
and use the winetricks ui protonfit run
runs an arbitrary binary with the proton prefix- to debug wine, you can run
PROTON_LOG=1 WINEDEBUG=+cmd SteamGameId=0 protonfit
(change WINEDEBUG value to whatever you like). it will log to ~/.steam-0.log - export
FIT_ARGS
to pass arguments to the game binary
if things go wrong
- if the game doesn't run, try running with
STEAM_RUNTIME=1
first, as some system libraries might be too new for proton binaries - you can wipe your install by doing
rm protonfit-*
andprotonfit
again - some setups will use absurd amounts of ram. if your pc freezes during install it's possible that you ran out of ram, try again and tick the ram limiting option
- if you want to regenerate the config and shortcuts and get the .exe picker menu again without
reinstalling the game, you can do
protonfit configure
games tested
wip
means that it doesn't work but work has been done to get it closer to runninginstalls
means that it installs and appears to run but was not extensively tested in-game.use borderless
means that it's recommended to go into the graphics options and set the game to "borderless window" instead of fullscreen, which will make tabbing out of the game faster
Iron Harvest #1552
v1.0.0.1600 rev.37863 (Build 5487982)
installs
Crusader Kings 3 #1553
v1.0.2 + 2 DLCs + Multiplayer
installs
Age of Empires II - Definitive Edition #1276
Build 36906 + Enhanced Graphics Pack
installs, requires protonfit tricks vcrun2015
after install to run
Gaia Beyond #1534
Hotfix
installs, use borderless
Paradise Killer #1559
Initial repack
installs, use borderless
- save data/config location:
pfx/drive_c/users/steamuser/Local Settings/Application Data/ParadiseKiller/Saved/
Puyo Puyo Tetris #928
Update 4
wip, manually kill the setup.exe process after it's done to make install continue
CODEX's proper crack is needed, you can install it by running these commands (7z required)
cd pfx/drive_c/Games/Puyo\ Puyo\ Tetris/
7z x /path/to/PPT_CODEX_Proper_Crack.zip
# accept all overwrites
rm antidenuvo.dll Denuvo64.sys winmm.dll
wine fails to properly initialize codex64.dll
unfortunately, probably because it tries to
camouflage itself as steamclient64, some research here: https://www.reddit.com/r/wine_gaming/comments/fg4ecu/some_research_regarding_later_denuvo_workarounds/?sort=top
trace: https://gist.github.com/601e40a0c6773111c4c90780b4860c81
Minecraft Dungeons #1463
v1.4.3.0_4640940 + 2 DLCs + Multiplayer
wip, setup completes but it needs to run a server that binds on port 443 which needs root. another issue is that it creates a temp directory with no read permissions which again is only accessible as root.
the solution I'm thinking is to extract/reverse engineer the python server it runs and just run Dungeons.exe instead
As Far as the Eye #1564
v1.0.0b
installs, use borderless.
Tamarin #1565
Initial repack
installs, set render resolution to 100% to fix weird letterboxing
The Unfinished Swan #1563
Initial repack
wip, needs protonfit tricks d3dcompiler_47
. clicking Toys or Play crashes.
Horizon: Zero Dawn β Complete Edition #1503
Initial repack
installs, needs protonfit tricks vcrun2015 mfc140
and the very latest proton-tkg-git
(5.17.r0.gc44db537 or newer)
if it gets killed by out of memory killer, try echo 1 | sudo tee /proc/sys/vm/overcommit_memory
if you wish to redo the game optimization process, delete LocalCacheDX12/PSOCache.bin
in the
game folder
there are severe memory leaks, on my rx 570 I cannot get the game to work no matter what. people with nvidia have had success on the other hand
- game ram usage spikes up and either gets killed by OOM or crashes by failing to alloc
- the ram spike usage doesn't always happen. sometimes it lasts longer but still crashes during initial cutscene
- compiling latest https://github.com/HansKristian-Work/vkd3d-proton doesn't seem to help but it seemed to last longer through the cutscene on average
- same behaviour on xanmod, liquorix, zen, tkg-pds
- a few other people report exact same behaviour on similar hardware, with no solution
- tested proton-tkg-git-5.19.r10.g80498dd4-1, the known working proton-ge version, wine-staging 5.18, wine-tkg-git 5.18.r11.g19466905-299, all same thing on all of them
- tested mesa 20.2.0 and mesa-tkg-git-20.3.0_devel.130091.7d1fb5fffe3, same thing
- amdvlk always lasts longer, but crashes in a similar fashion at around 10GB ram
Tell Me Why: Complete Season #1566
Initial repack
installs
- save data/config location
pfx/drive_c/users/steamuser/Local Settings/Application Data/Dontnod/
Disgaea 4 Complete+ #1568
Initial repack
wip, needs protonfit tricks d3dcompiler_47
, must add MovieSkip=1
to
pfx/drive_c/users/steamuser/Application\ Data/Nippon\ Ichi\ Software\,\ Inc/Disgaea\ 4\ Complete+/*/config.ini
and also set WindowMode=1
and change ResolutionWidth
and ResolutionHeight
to fullscreen.
it's very picky about fullscreen/resolution. sometimes it will get stuck on the loading screen or a black screen with the wrong settings.
WindowMode=2
might also help with startup issues.
audio doesn't seem to work
The Outer Worlds #1257
Updated The Outer Worlds v1.4.0.595 + Peril on Gorgon DLC
installs, need to install mf with this script https://github.com/z0z0z/mf-install
you need to call the mf-install script in proton mode, like so:
PROTON=/usr/share/steam/compatibilitytools.d/proton_tkg_makepkg WINEPREFIX=/path/to/pfx ./mf-install.sh -proton
Hotshot Racing #1567
Initial repack
installs
Assassinβs Creed: Odyssey #1021
Updated Assassinβs Creed: Odyssey β Ultimate Edition v1.5.3 + All DLCs
broken
something goes wrong when AFR_x64
is called. it's using the stdin/stdout patched afr from here
https://fileforums.com/showthread.php?p=466467 .
razor's DLL seems to be packed/obfuscated. this would be much easier if these compression tools were open source...
either way, I initially thought it was failing to read stdin because it couldn't open CONIN$
when
called manually, but if I do
while true; do pid=$(pgrep AFR) && sudo strace -p$pid -s9999 -e write; done > afrlog 2>&1
to attach to AFR it seems to be writing binary data to file descriptor 3
logs ends with +++ exited with 253 +++
. no idea what that means.
for now, you can just use
Assassin's Creed: Odyssey Ultimate Edition v1.5.3 + All DLC [EMPRESS] [Linux Wine]
hash
F7D2C023BD6B18CB948607E40F5A4A6E2C0C3AEA
Borderlands 3 #1261
Updated Borderlands 3: Super Deluxe Edition Build 5382210 + All DLCs
installs
- installed with: proton-tkg-git 5.19.r12.gbe9c9681-1
- played with: official proton 5.13
- gpu: rx570
- driver: amdgpu
- mesa: mesa-tkg-git 20.3.0_devel.130274.ddca93ddf70-1
installer is quite slow and memory hungry, I recommend ticking the 3gb ram limit box as it can get quite unstable even with a lot of ram
the installer might open annoying cmd windows, just dont touch stuff and let it do its thing
if movies are broken, use https://github.com/z0z0z/mf-install and https://github.com/z0z0z/mf-installcab
MARVELβS AVENGERS β V1.3.3 (141640) #1617
Initial repack
can get in game but it crashes in a specific spot in the intro area that you can't avoid
- installed with: proton-tkg-git 5.19.r12.gbe9c9681-1
- played with: proton-ge-custom-stable-bin 5.9_GE_8_ST-1
- gpu: rx570
- driver: amdgpu
- mesa: mesa 20.2.1
- binary: ./avengers.exe
it's quite memory hungry so make sure you have at least 8GB or memory available at all times or tick the low ram option
might take hours to unpack
make sure to at least get the selective english bin and select english in the installer
use this command to run the game (assuming you have proton-ge-custom-stable):
cd ./data/Games/Marvel\'s\ Avengers
proton 997070 ./avengers.exe
Red Dead Redemption 2 (Build 1311.23, MULTi13)
Initial repack
installs, runs very smoooth with a very finnicky workaround
- installed with: proton-tkg-git 5.19.r17.g8d04884c-1
- played with: official Proton 5.13 (proton tkg will hang with a black screen)
- gpu: rx570
- driver: amdgpu (radv)
- mesa: mesa-tkg-git 20.3.0_devel.130274.ddca93ddf70-1
- binary: ./RDR2.exe
VERY finnicky to get it to run
after installing, do:
echo '-ignorepipelinecache -vulkan -borderless -useMinimumSettings -width 1920 -height 1080' > "data/Games/Red Dead Redemption 2/commandline.txt"
you can probably remove the -useMinimumSettings
, this is just what worked for me
to switch proton version after installing with proton tkg, do
rm protonfit-settings
PROTON="/path/to/steamapps/common/Proton 5.13/proton" protonfit
and select RDR2.exe again
for some reason, the game only works with wine relay logging enabled, otherwise it crashes after a couple of seconds.
wine relay logging makes the game unbearably slow, but there's a workaround: we can filter all the most called winapi's from being logged and it will run smooth
cat > relay-workaround.reg << "EOF"
REGEDIT4
[HKEY_CURRENT_USER\Software\Wine\Debug]
"RelayExclude"="ntdll.RtlEnterCriticalSection;ntdll.RtlTryEnterCriticalSection;ntdll.RtlLeaveCriticalSection;kernel32.48;kernel32.49;kernel32.94;kernel32.95;kernel32.96;kernel32.97;kernel32.98;kernel32.TlsGetValue;kernel32.TlsSetValue;kernel32.FlsGetValue;kernel32.FlsSetValue;kernel32.SetLastError;ntdll.NtDelayExecution;KERNEL32.Sleep;ntdll.NtWaitForMultipleObjects;ntdll.RtlRunOnceExecuteOnce;kernelbase.InitOnceExecuteOnce;KERNEL32.WaitForSingleObject;ntdll.NtSetEvent;KERNEL32.SetEvent;KERNEL32.QueryPerformanceCounter;KERNEL32.QueryPerformanceFrequency;winmm.timeGetTime;KERNEL32.GetLastError;ntdll.RtlAllocateHeap;KERNEL32.HeapFree;ntdll.NtReleaseSemaphore;KERNEL32.ReleaseSemaphore;ntdll.RtlNtStatusToDosError;KERNEL32.MulDiv"
EOF
protonfit run regedit relay-workaround.reg
now you can run with:
pkill -9 -f wine; WINEDEBUG=-all,relay PROTON_LOG=1 SteamGameId=1174180 SteamAppId=1174180 protonfit
if it appears to do nothing, do this to unfreeze it
PID=$(pgrep RDR2.exe); kill -s SIGSTOP $PID; kill -s SIGCONT $PID
it will start right up
to skip splashscreens, install this mod: https://www.nexusmods.com/reddeadredemption2/mods/28
I also used the latest crackfix on cs rin but it might not be necessary
credits
https://github.com/7oxicshadow/proton-standalone-script/blob/master/proton_launch.sh which I used as reference