ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.92k stars 1.04k forks source link

[regression] Proton 8.x breaks EasyAntiCheat bootstrapper v1.6.0 (EOS SDK v1.15.5), Proton 7.x works #6740

Closed digitalcircuit closed 1 year ago

digitalcircuit commented 1 year ago

In short

Details

In February 2023 with EOS SDK v1.15.5, Epic Games announced a new version of the anti-cheat bootstrapper start_protected_game.exe, converting it to 64-bit for compatibility with Chromebooks. This also resolved an Unexpected launch error for a friend's system.

Using Proton 8.x (build ID 11030361) or Proton Experimental, the new (v1.6.0) EAC bootstrapper fails to launch the binary wrapped by anti-cheat. Proton 7.x works just fine.

The older bootstrapper works under Proton 8.x and Proton 7.x.

Why does this matter?

EOS SDK v1.15.5 will likely be used as the basis for future games developed with anti-cheat.

On a personal note, for a friend's computer, the 64-bit anti-cheat Linux module crashes with an Unexpected launch error on the 32-bit bootstrapper v1.5.0. The modern 64-bit bootstrapper v1.6.0 resolves this issue for them, as I discovered and shared in my support thread with Epic Games.

However, 8.x-based Proton Experimental (which includes fixes for AVPro volume blasting in VRChat) cannot run this new bootstrapper, which is required to workaround the Unexpected launch error.

Testing

Steps

  1. Find a game using the v1.5.0 version of the EasyAntiCheat bootstrapper
  2. Launch with Proton 7.x and 8.x using the stock v1.5.0 (old) start_protected_game.exe
  3. Observe successful game launches
  4. Download the updated Epic Games EOS SDK (C# or C++, doesn't matter)
  5. Ensure it is version v1.15.5 or newer
  6. Extract SDK/Tools/EOS_AntiCheatTools-win32-x64-2.0.0.zip
  7. Inside EOS_AntiCheatTools-win32-x64-2.0.0.zip, extract dist\start_protected_game.exe
  8. Rename to start_protected_game.exe
  9. Overwrite the v1.5.0 (old) start_protected_game.exe shipped with the game in question
    • E.g. for VRChat, overwrite $HOME/.local/share/Steam/steamapps/common/VRChat/start_protected_game.exe
    • NOTE: This may cause EasyAntiCheat validation to fail after the game properly launches. If that is a concern, you can instead copy the bootstrapper as start_protected_game.new.exe and add a shortcut to a non-Steam game to launch that, forcing a compatibility tool.
  10. Launch with Proton 7.x and 8.x using this updated v1.6.0 (new) start_protected_game.exe
  11. Observe Proton 7.x works, 8.x fails

Expected

The updated v1.6.0 bootstrapper successfully launches the game under Proton 7.x and Proton 8.x.

Actual

The updated v1.6.0 bootstrapper successfully launches the game under Proton 7.x, but under Proton 8.x, it looks like it launches the game, only for it to silently fail after loading the anti-cheat module.

The anti-cheat launcher log does not indicate any error.

NOTE: The log file location has changed, as mentioned in the EOS SDK v1.15.5 release notes.

Deprecated: We deprecated the log file, loader.log, and introduced a new log file, anticheatlauncher.log, as the single log file for the anti-cheat bootstrapper.

Additional information

System details

NOTE: This is slightly out of date regarding software versions - the current Steam Beta fails to copy the system details.

Tap or click to show system details ``` Computer Information: Manufacturer: Gigabyte Technology Co., Ltd. Model: X570 AORUS MASTER Form Factor: Desktop No Touch Input Detected Processor Information: CPU Vendor: AuthenticAMD CPU Brand: AMD Ryzen 5 5600X 6-Core Processor CPU Family: 0x19 CPU Model: 0x21 CPU Stepping: 0x2 CPU Type: 0x0 Speed: 4651 Mhz 12 logical processors 6 physical processors HyperThreading: Supported FCMOV: Supported SSE2: Supported SSE3: Supported SSSE3: Supported SSE4a: Supported SSE41: Supported SSE42: Supported AES: Supported AVX: Supported AVX2: Supported AVX512F: Unsupported AVX512PF: Unsupported AVX512ER: Unsupported AVX512CD: Unsupported AVX512VNNI: Unsupported SHA: Supported CMPXCHG16B: Supported LAHF/SAHF: Supported PrefetchW: Unsupported Operating System Version: Ubuntu 22.04.2 LTS (64 bit) Kernel Name: Linux Kernel Version: 5.19.0-38-generic X Server Vendor: The X.Org Foundation X Server Release: 12101004 X Window Manager: KWin Steam Runtime Version: steam-runtime_0.20230118.0 Video Card: Driver: AMD AMD Radeon RX 5600 XT (navi10, LLVM 15.0.6, DRM 3.47, 5.19.0-38-generic) Driver Version: 4.6 (Compatibility Profile) Mesa 22.2.5 OpenGL Version: 4.6 Desktop Color Depth: 24 bits per pixel Monitor Refresh Rate: 60 Hz VendorID: 0x1002 DeviceID: 0x731f Revision Not Detected Number of Monitors: 1 Number of Logical Video Cards: 1 Primary Display Resolution: 1920 x 1080 Desktop Resolution: 1920 x 1080 Primary Display Size: 20.04" x 11.26" (22.95" diag) 50.9cm x 28.6cm (58.3cm diag) Primary VRAM: 6144 MB Sound card: Audio device: ATI R6xx HDMI Memory: RAM: 32022 MB VR Hardware: Headset: HTC Vive. MV (lighthouse) Base station or sensor: HTC HTC V2-XD/XE (lighthouse) Base station or sensor: HTC HTC V2-XD/XE (lighthouse) Controller: HTC Vive. Controller MV (lighthouse) Controller: HTC Vive Controller MV (lighthouse) Miscellaneous: UI Language: English LANG: en_US.UTF-8 Total Hard Disk Space Available: 1804284 MB Largest Free Hard Disk Block: 1110708 MB Storage: Number of SSDs: 2 SSD sizes: 2000G,1000G Number of HDDs: 0 ```

Proton 7.x with v1.6.0 bootstrapper

Full Proton 7.x PROTON_LOG=1 result available in this zip file.

Example anticheatlauncher.log:

[…trimmed identical lines…]
[04:42:27:922] [Windows] [EAC Launcher] [Info] Current progress: 100 (1/1).
[04:42:27:936] [Windows] [EAC Launcher] [Info] Starting Wine module mapping, Wine version: 7.0.
[04:42:28:835] [Windows] [EAC Launcher] [Info] Launcher finished with: 301, 'Easy Anti-Cheat successfully loaded in-game'.
[04:42:28:835] [Windows] [EAC Launcher] [Info] Successfully initialized the Easy Anti-Cheat service, waiting for game window to become visible.
[04:42:28:836] [Windows] [EAC Launcher] [Info] Unlocking the launch lock, allowing next game to launch to take place.
[04:42:28:869] [Windows] [EAC Launcher] [Info] Downloaded 7788376 bytes in 1546 ms (4919.69 KB/s)

Proton 8.x (build ID 11030361) with v1.6.0 bootstrapper

Full Proton 8.x PROTON_LOG=1 result available in this zip file.

Example anticheatlauncher.log:

[…trimmed identical lines…]
[04:40:40:410] [Windows] [EAC Launcher] [Info] Current progress: 100 (1/1).
[04:40:40:433] [Windows] [EAC Launcher] [Info] Starting Wine module mapping, Wine version: 8.0.
[04:40:42:752] [Windows] [EAC Launcher] [Info] Launcher finished with: 301, 'Easy Anti-Cheat successfully loaded in-game'.
[04:40:42:752] [Windows] [EAC Launcher] [Info] Successfully initialized the Easy Anti-Cheat service, waiting for game window to become visible.
[04:40:42:752] [Windows] [EAC Launcher] [Info] Unlocking the launch lock, allowing next game to launch to take place.
[04:40:42:785] [Windows] [EAC Launcher] [Info] Downloaded 7788376 bytes in 894 ms (8507.65 KB/s)

Let me know if you'd like any additional information! I can reliably reproduce this issue on my system, but I might be overlooking important details.

telqor commented 1 year ago

I've encountered this behavior in two EOS/EAC protected games, Shatterline (#6165) and the newest APB Reloaded patch (#1562). In both cases the only indication that an error has occurred is the segfault message in the kernel log, as I posted in my comment regarding APB.

alasky17 commented 1 year ago

@digitalcircuit @telqor This should be fixed with experimental-8.0-20230505. In our testing, Shatterline, APB Reloaded, and VRChat are all launching correctly again. Please reopen if you still see this bug with experimental-8.0.