From 8cad9f2c13b7b9178ea2a3ed867a6ac6fd18f94a Mon Sep 17 00:00:00 2001 From: AyeZeeBB Date: Tue, 13 Oct 2026 15:14:51 -0500 Subject: [PATCH] Launcher: no exception for Proton, it has a folder of its own there too - The launcher refuses to start from a Steam library folder under Wine/Proton as well; the check is no longer skipped there. - README, Linux (Proton): the launcher and ReSkate.dll go in a new, empty folder, and the Steam launch option swaps in the launcher's full path in place of EA's anti-cheat launcher. Noted as not yet tested on Proton; the earlier test was with the launcher beside Skate.exe. --- Launcher/main.cpp | 6 ++---- README.md | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Launcher/main.cpp b/Launcher/main.cpp index 2cbe546..5cd9838 100644 --- a/Launcher/main.cpp +++ b/Launcher/main.cpp @@ -91,11 +91,9 @@ void run_headless(const app::Session& session, std::vector argumen // Whether the launcher was put in a game's folder of a Steam library (...\steamapps\common\), // which is where Steam keeps skate. and updates it: ReSkate has a folder of its own, with its -// own copy of the game. Not under Wine: on Proton, Steam starts the launcher from the game's -// folder in the game's place, and that is how it is set up there (README, "Linux (Proton)"). +// own copy of the game. The same under Wine: on Proton, Steam is given the launcher's place in +// that folder of its own (README, "Linux (Proton)"). bool in_steam_library() { - const auto ntdll = GetModuleHandleW(L"ntdll.dll"); - if (ntdll && GetProcAddress(ntdll, "wine_get_version")) return false; std::wstring self(32768, L' '); self.resize(GetModuleFileNameW(nullptr, self.data(), static_cast(self.size()))); if (self.empty()) return false; diff --git a/README.md b/README.md index 3250532..ca43364 100644 --- a/README.md +++ b/README.md @@ -57,16 +57,17 @@ ReSkate supports one game build at a time (Steam build `25414733`). ### Linux (Proton) -1. Install skate. with Steam and put `ReSkateLauncher.exe` and `ReSkate.dll` beside `Skate.exe`, in - Steam's skate. folder (Steam → skate. → Manage → Browse local files). Proton is the one case where - the launcher goes there, because Steam has to start it in the game's place. -2. In Steam → skate. → Properties → Launch Options, enter: +1. Install skate. with Steam, and put `ReSkateLauncher.exe` and `ReSkate.dll` in a new, empty folder + of their own, for example `~/Games/ReSkate` (not Steam's skate. folder: the launcher refuses to + run from there). +2. In Steam → skate. → Properties → Launch Options, enter this with your own folder's path: ``` - bash -c 'exec "${@/EAAntiCheat.GameServiceLauncher.exe/ReSkateLauncher.exe}"' -- %command% + bash -c 'exec "${@/*EAAntiCheat.GameServiceLauncher.exe//home/you/Games/ReSkate/ReSkateLauncher.exe}"' -- %command% ``` -3. Press **Play** on skate. in your Steam library. +3. Press **Play** on skate. in your Steam library. The launcher installs its own copy of the game + into that folder the first time. Steam starts EA's anti-cheat launcher (`EAAntiCheat.GameServiceLauncher.exe`), not `Skate.exe`, and the anti-cheat refuses to run under Proton (*E111000B … Wine, Proton, and Steam Deck are not supported*). @@ -74,8 +75,9 @@ The launch option swaps it for ReSkate's launcher, which starts the game itself. own Steam entry, rather than adding the launcher as a non-Steam game, keeps skate.'s app ID and its Proton prefix. -Tested with ReSkate 1.1.3 and Proton Experimental on CachyOS: the launcher, the server browser, joining -a public server and hosting a lobby. Steam Deck should work the same way but is untested. If you load a +The launcher in a folder of its own is new and has not been tested on Proton yet. With the launcher +beside `Skate.exe`, as it was set up before, ReSkate 1.1.3 was tested with Proton Experimental on +CachyOS: the launcher, the server browser, joining a public server and hosting a lobby. Steam Deck should work the same way but is untested. If you load a custom map and then join a server on another map, the screen can stay black ([#31](https://github.com/Dingo-Shenanigans/ReSkate/issues/31)): load the server's map first.