Below are instructions for using a proton runner directly, not inside Lutris or Bottles. Bottles appears to work the same way, but the instructions will be quite different. For example Bottles runners with the flatpak are in $HOME/.var/app/com.usebottles.bottles/data/bottles/runners
and many other paths and dxvk packages differ.
-
Obtain a copy of Proton-6.1-GE-2 from here https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/6.1-GE-2
-
Obtain a copy of GE-Proton8-25 from here https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/GE-Proton8-25
- This is the version I tested, probably not the latest version that will work.
- Turns out VKd3d was split out into a separate package. Game/Launcher starts after GE-Proton7-35. As far as I was able to test RSF will require being run in vulkan mode in versions after this but I didn't extensively test this.
-
Extract 6.1 to somewhere temporary, we only need to grab a couple of files out of it
-
Extract 8-25 to somewhere persistent, we will use this as our persistent runner
-
Copy
Proton-6.1-GE-2/dist/lib/wine/dinput8.dll.so
toGE-Proton8-25/files/lib/wine/i386-unix/dinput8.dll.so
-
Copy
Proton-6.1-GE-2/dist/lib64/wine/dinput8.dll.so
toGE-Proton8-25/files/lib64/wine/x86_64-unix/dinput8.dll.so
-
Remove
GE-Proton8-25/files/lib64/wine/x86_64-windows/dinput8.dll
ANDGE-Proton8-25/files/lib/wine/i386-windows/dinput8.dll
- Technically redundant but helps to avoid confusion when setting builtin library overrides, we don't want this one to ever be used over the dynamically linked one
- There is more information about what
.dll
vs.dll.so
means here. In short,dll.so
means it is compiled like a dynamically linked Linux binary. You can run ldd on it just like you would any other binary on Linux. They also depend on other locally installed Linux libraries (see troubleshooting).
-
Create a prefix somewhere like
$HOME/RSF_RBR_wine
-
Run (and also set up for the first time) the wineprefix. I chose to use a little script.
- The
SDL_VIDEODRIVER
option is only necessary if you are on a wayland window manager (sway/hyprland) - gamescope is also a wayland window manager workaround.
- NOTE: This script passes any command line argument to wine with no error checking
#!/bin/bash rbr_location=$HOME/.local/share/wineprefixes/RBR2 wine_location=$HOME/.steam/root/compatibilitytools.d/GE-Proton8-25/files SDL_VIDEODRIVER=x11 WINEPREFIX="${rbr_location}" gamescope -W 3840 -H 1600 -r 144 "${wine_location}"/bin/wine "$1"
./rsf_winege8-25_steam.sh winecfg
- The
-
Use winecfg to create a library override for dinput8 to
Builtin (Wine)
-
Use your distribution's package manager to install whatever package provides both the 32bit and 64bit version of
libSDL2-2.0.so.0
. On arch this isextra/sdl2
andmultilib/lib32-sdl2
-
Install rsf using the latest installer. At the time of this writing that is 1.44.8 .
If you see the following, you specified the library as Native (Windows)
01a8:err:module:import_dll Library DINPUT8.dll (which is needed by L"C:\\games\\Richard Burns Rally\\richardburnsrally_sse.exe") not found
If you see the following, you might not have libSDL2-2.0.so.0
installed, see above.
01a8:err:module:import_dll Loading library DINPUT8.dll (which is needed by L"C:\\games\\Richard Burns Rally\\richardburnsrally_sse.exe") failed (error c000007a).
If you want to be sure that all dynamically linked libraries are available you can do so with the ldd
command:
ldd "$HOME/.steam/root/compatibilitytools.d/GE-Proton8-25/files/lib/wine/i386-unix/dinput8.dll.so"
linux-gate.so.1 (0xf7f1c000)
libSDL2-2.0.so.0 => not found
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf7e74000)
libm.so.6 => /usr/lib32/libm.so.6 (0xf7da0000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf7a00000)
/usr/lib/ld-linux.so.2 (0xf7f1e000)
Using the following:
Installation:
SDL_VIDEODRIVER=x11 WINEPREFIX="/home/$USER/.local/share/wineprefixes/RBR2" /home/$USER/.steam/root/steamapps/common/Proton\ 6.3/dist/bin/wine ~/downloads/Rallysimfans_Installer.exe
Running winetricks:
SDL_VIDEODRIVER=x11 WINEPREFIX="/home/$USER/.local/share/wineprefixes/RBR2" WINE="/home/$USER/.steam/root/steamapps/common/Proton - Experimental/files/bin/wine" WINESERVER="/home/$USER/.steam/root/steamapps/common/Proton - Experimental/files/bin/wineserver" winetricks
Running the launcher:
SDL_VIDEODRIVER=x11 WINEPREFIX="/home/$USER/.local/share/wineprefixes/RBR2" /home/$USER/.steam/root/steamapps/common/Proton\ -\ Experimental/files/bin/wine "C:/games/Richard Burns Rally/rsf_launcher/RSF_Launcher.exe"
Errors encountered after the above steps:
0208:err:module:import_dll Library libvkd3d-1.dll (which is needed by L"C:\\windows\\system32\\wined3d.dll") not found
0208:err:module:import_dll Library libvkd3d-shader-1.dll (which is needed by L"C:\\windows\\system32\\wined3d.dll") not found
0208:err:module:import_dll Library wined3d.dll (which is needed by L"C:\\windows\\system32\\d3d9.dll") not found
0208:err:module:import_dll Library d3d9.dll (which is needed by L"C:\\games\\Richard Burns Rally\\richardburnsrally_sse.exe") not found
0208:err:module:LdrInitializeThunk Importing dlls for L"C:\\games\\Richard Burns Rally\\richardburnsrally_sse.exe" failed, status c0000135
Sometimes, depending on the runner being used, installing the corefonts package via winetricks is required. The error in this case is as follows. It's a long stack trace but this string should be present
MS.Internal.Shaping.TypefaceMap.MapUnresolvedCharacters(System.Windows.Media.TextFormatting.CharacterBufferRange, System.Globalization.CultureInfo, System.Globalization.CultureInfo, MS.Internal.FontFace.PhysicalFontFamily, Int32 ByRef, MS.Internal.SpanVector, Int32, Int32 ByRef)\n"
Tried installing vkd3d from winetricks which did not have any impact, it also did not provide any of the dlls
Turns out VKd3d was split out into a seperate package. Game/Launcher starts in GE-Proton7-35, which was before that change. Unfortunately there is no FFB in this version, or any version after Proton 6.3-8
SDL_VIDEODRIVER=x11 WINEPREFIX="/home/$USER/.local/share/wineprefixes/RBR2" gamescope -W 3840 -H 1600 -r 144 /home/$USER/.steam/root/compatibilitytools.d/GE-Proton8-25/files/bin/wine "C:/games/Richard Burns Rally/rsf_launcher/RSF_Launcher.exe"
dinput allows the SSE binary to launch in 6.3 but must be removed (winecfg library remove override) for later versions of wine to work.
Use winecfg to create a library override for dinput8 to Native (Windows)
should read "builtin" instead.