Proton: Squad (393380)

Created on 29 Aug 2018  ·  262Comments  ·  Source: ValveSoftware/Proton

When downloading the game ¨Squad¨ from Steam it directly finishes and trying to start the game causes en error:
¨An error occurred while updating Squad (missing executable)
{some very long path here}/squad_launcher.exe¨

When I use the inspect game folder option I can see that the folder is completely empty.

https://store.steampowered.com/app/393380/Squad/

Game compatibility - Unofficial Regression

Most helpful comment

This has been a genuine team effort, a huge thank you to everyone! I don't think any of us could've gathered all the puzzle pieces alone. It feels really appropriate that we're focused on Squad specifically, because teamwork and cooperation are what makes it a great game. Without teamwork it would be just another shooter among dozens.

Hey Epic and makers of EAC, if you happen to read this: it should be pretty obvious we don't want to break, hack, or bypass anything that combats cheating. I personally have a hard time believing that anyone who's active in this thread would think cheating in online cooperative multiplayer games is OK. Basically we all want EAC to _work_. If you have any suggestions or requests how we can make EAC work better (so that it actually does prevent cheating as much as possible without discriminating against Proton users), then at least I'm all ears.

All 262 comments

Looks like this game has an unused linux depot.

There are a few steam games that have non-functional or otherwise useless Linux ports, the ability to install the Windows version of a game that has a native Linux version would be incredibly useful.

@exezin

I agree completely with this.

Battleblock theater's Linux port only works on Ubuntu 14.04.x, however the Linux version works 100% on wine.

Would be great if on the game properties there was a way to override the Linux version and use the windows one.

Unofficial workaround here: https://www.reddit.com/r/SteamPlay/comments/9cuigr/downloadrun_windows_versions_using_proton/

Got as far as near native FPS, funky sound on the shooting range.
Multiplayer is kaput as AntiCheat appears broken, bug report at wine: https://bugs.winehq.org/show_bug.cgi?id=44235

Agree with exezin: a dropdown box or radio buttons to switch between Windows and Linux build of a game in Steam would be awesome

Am happy to report that Squad multiplayer now works out of the box as per Proton 3.16-6 Beta
Reddit discussion: https://old.reddit.com/r/joinsquad/comments/ao8dyl/heads_up_squad_now_runs_perfectly_under_linux_via/

Edit: EAC broke the next day :( http://i.imgur.com/3NnZwYF.png
Edit2: Appears to be working again as per: https://old.reddit.com/r/joinsquad/comments/ao8dyl/heads_up_squad_now_runs_perfectly_under_linux_via/egd5805/

It's free weekend but launching it with 4.2-9 fails with the fact it cannot find /squad_launcher.exe error since it didn't download it. Checking files won't help.

It fails using Native2Proton (also it still runs on 3.16 beta instead of 4.2-9)
[0] Install game [1] Use winetricks on prefix [2] Install Non-Steam App [Experimental] [3] Recreate config [4] Quit What would you like to do? 0 Please enter the Steam app ID: 393380 Got: Squad Please enter your Steam username: xxx Redirecting stderr to '/home/xxx/.steam/steam/logs/stderr.txt' [ 0%] Checking for available updates... [----] Verifying installation... Steam Console Client (c) Valve Corporation -- type 'quit' to exit -- Loading Steam API...OK. "@sSteamCmdForcePlatformType" = "windows" Logging in user 'xxx' to Steam Public ... Logged in OK Waiting for user info...OK Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) Error! App '393380' state is 0x212 after update job. Please select the game executable by number:

Squad (sudden fps drops)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/3071.
@aly199 posted on 2019-09-19T23:29:24:

Latest Proton (4.11-5) has Squad dropping fps, from 60-90fps, down to 15fps. It happens sort of every 20-30s, drops for about 5-10s, then gets back to normal, cycling like this through the entire game.
Reverting back to Proton 4.2-9, the issue disappears.

Proton 4.11-5
Linux Mint 19.1 (Tessa)
NVIDIA Driver 430.4
Kernel 4.15.0-55-generic

Hello @aly199, please add PROTON_LOG=1 %command% to the game's launch options and drag and drop the generated $HOME/steam-$APPID.log into the comment box.

Counter point to the above, I put in a few hours in the game today on the latest Proton (4.11-5) and it runs flawlessly, multiplayer works perfectly as well and I had no issues with the anticheat (this used to play up with Proton)

I do use these launch commands, not sure if they'll make a difference for @aly199
~
__GL_THREADED_OPTIMIZATIONS=1 PROTON_NO_ESYNC=1 gamemoderun %command%
~

@kisak-valve, I've played for some 5 minutes or so, and the generated log file is 1.8GB in size!
I mean, I'm willing to upload it through whatever means, but github accepts 10MB maximum.

Ouch, Proton logs compress well, but even in an archive there's a good chance it'll be larger than github is happy with.

Yep. 113MB was the best gzip could do.
I've uploaded the compressed file to pcloud.
Here's the link.

Not that it helps with diagnosing the perf issue, but debugstr is very active with lines like
4460.245:0033:0034:warn:debugstr:OutputDebugStringA "[2019.09.20-22.02.28:146][ 0]LogPackageLocalizationCache: Warning: Skipping the cache update for the package asset groups due to a cache request from a non-game thread. Some localized packages may be missed for this query.\r\n"
4460.246:0033:0034:warn:debugstr:OutputDebugStringA "[2019.09.20-22.02.28:147][ 0]LogPackageLocalizationCache: Warning: Skipping the cache update for 3 pending package path(s) due to a cache request from a non-game thread. Some localized packages may be missed for this query.\r\n"

grep "Warning: Skipping the cache update" steam-393380.log | wc -l
90520

This along with the seh lines that fire off with it makes up the majority of the log.

Oh, I had to do some other stuff here, and forgot to mention: I'm running Steam on a firejail, with an overlay-fs. Don't know if it has something to do with anything, but thought I should mention it.
It probably doesn't matter, since the game ran on Proton 4.2-9 without any hiccups, under the same circunstances.

I'm unable to run Squad suddenly due to EAC. No one else is having this issue that I can see. Running on the latest Proton 4.11-7 on Ubuntu 19.10. When I launch the game, it tells me that EAC could not initialize a game client and subsequently, I could not join any online servers.

I'm unable to run Squad suddenly due to EAC. No one else is having this issue that I can see. Running on the latest Proton 4.11-7 on Ubuntu 19.10. When I launch the game, it tells me that EAC could not initialize a game client and subsequently, I could not join any online servers.

Working for me on 1570630972 proton-4.11-7, using Ubuntu 18.04.
There was a Steam outage yesterday, maybe it was related? https://twitter.com/SteamStatus/status/1188893289409400832

I'm unable to run Squad suddenly due to EAC. No one else is having this issue that I can see. Running on the latest Proton 4.11-7 on Ubuntu 19.10. When I launch the game, it tells me that EAC could not initialize a game client and subsequently, I could not join any online servers.

Working for me on 1570630972 proton-4.11-7, using Ubuntu 18.04.
There was a Steam outage yesterday, maybe it was related? https://twitter.com/SteamStatus/status/1188893289409400832

Still not working. It worked before I reinstalled Ubuntu on this new disk (but with no other hardware changes) and I know others still have it working. I'm tempted to spin up the debugging and see what's wrong.

Wanted to play again since the last time two weeks ago. Same problem. Game runs fine but shows a little popup with: EasyAntiCheat Error: Failed to create IGameClient instance!

The game has not updated in these two weeks and as far as I can see only proton updated in that time (I saw it shortly in my download list downloading 4.11 (or an update for it?)). Anyway, its practically borked now, cause without EAC you can not play on any of the public servers.

Update: I nearly forgot to mention, that I ran WINEPREFIX=~/SteamLibrary/steamapps/compatdata/393380/pfx/ ./EasyAntiCheat_Setup.exe which surprisingly worked and I could select "repair". Though sadly without any success.

Fresh install by Steam (without Proton) still with the empty repo.

With Proton 4.11-9 it works perfectly fine after deleting the Movies folder (Proton does not have the needed codec), except for the Easy Anti Cheat/EAC which intermitently stopped working since Alpha 16 was launched.

EasyAntiCheat Error: Failed to create IGameClient instance!

Current version is 17.

Hello guys.
I'm playing >20 hours online with zero configuration. I'm kinda lucky.

Current version: Beta v18.0.5
Proton: 4.11-11
Distro: Linux Mint 19.2 Tina
Kernel: 5.3.0-24-generic
RAM: 16 GB
GPU Driver: NVIDIA 440.44
GPU: NVIDIA GeForce GTX 1070
CPU: Intel Core i7-6700K @ 4.00GHz

This game is still laggy however.

Beta v18.0.5 has EAC working back, finally. But you have to run it multiple times until it does not show the EAC error.

I can sadly not confirm @BRMateus2's results. I verified my game data, deleted the prefix to have a fresh start and I still get the EAC GameClient error even after starting it 10 times in a row. I'm open to suggestions for what else I could try...

Current version: Beta v18.0.5
Proton: 4.11-11
Distro: Manjaro Linux x86_64
Kernel: 5.4.6-2-MANJARO
RAM: 16 GB
GPU Driver: X.Org Radeon RX Vega (VEGA10, DRM 3.35.0, 5.4.6-2-MANJARO, LLVM 9.0.0)
Driver Version: 4.5 (Compatibility Profile) Mesa 19.3.1
GPU: AMD ATI Radeon RX Vega 64
CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz

@Byter09 What DE are you using? lxde on arch gave me a startup error but switching to lightdm got rid of the startup error.

@greymood09 I'm using KDE. Does something like this really have that much impact? Wow.

Since I use Mesa 19.3 I have randome crashes.

My System:

System:
Host: stumpftopf-pc Kernel: 4.19.92-1-MANJARO x86_64 bits: 64
Desktop: Xfce 4.14.1 Distro: Manjaro Linux
CPU:
8-Core: AMD Ryzen 7 2700X type: MT MCP speed: 1884 MHz
min/max: 2200/3700 MHz
Graphics:
Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
driver: amdgpu v: kernel
Display: x11 server: X.Org 1.20.6 driver: amdgpu
resolution: 1920x1080~60Hz
OpenGL: renderer: Radeon RX 590 Series (POLARIS10 DRM 3.27.0
4.19.92-1-MANJARO LLVM 9.0.0)
v: 4.5 Mesa 19.3.1
Drives:
Local Storage: total: 1.59 TiB used: 822.63 GiB (50.5%)
Info:
Processes: 317 Uptime: 29m Memory: 15.66 GiB used: 2.76 GiB (17.6%)
Shell: zsh inxi: 3.0.37

Proton-Log:

Unhandled exception: page fault on write access to 0x7f7d303f0000 in 64-bit code (0x00007f7d08ec06bd).
00cd:fixme:dbghelp:elf_search_auxv can't find symbol in module
Register dump:
 rip:00007f7d08ec06bd rsp:000000001463f890 rbp:00000000fffffffc eflags:00010283 (  R- --  I S - - -C)
 rax:00007f7d303cd000 rbx:0000000000000009 rcx:00007f7cf011047c rdx:0000000000023000
 rsi:00000003fffffff0 rdi:00007f7d303cd001  r8:00007f7cf001dfb0  r9:0000000000000001 r10:0000000000000009
 r11:0000000000000000 r12:00007f7cf01121c0 r13:00007f7cf0110458 r14:00007f7cf0110458 r15:0000000000000001
Stack dump:
0x000000001463f890:  0000000000000001 000000001463f950
0x000000001463f8a0:  0000000000000000 00007f7d00000000
0x000000001463f8b0:  00000002001d6000 0000000000014000
0x000000001463f8c0:  00007f7cf001dfb0 93c825bd001f3b00
0x000000001463f8d0:  0000000000000000 000000006a59e380
0x000000001463f8e0:  000000006a59f4f0 00007f7cf010eea8
0x000000001463f8f0:  00007f7c8c2030a8 00007f7b76d4b3d8
0x000000001463f900:  00007f7cf01116a8 00007f7d08e39d5a
0x000000001463f910:  0000000000000000 00007f7cf010eea8
0x000000001463f920:  00007f7cf010eea8 000000001463fa30
0x000000001463f930:  00007f7cf01116a8 00007f7c8c2030a8
0x000000001463f940:  00007f7c94243198 00007f7d08cd3041
Backtrace:
=>0 0x00007f7d08ec06bd vkCreateInstance+0xffffffffffffffff() in amdvlk64.so (0x00000000fffffffc)
0x00007f7d08ec06bd vkCreateInstance+0xffffffffffffffff in amdvlk64.so: movups   %xmm0,(%rax,%rdx,1)

steam-393380.log.zip

Hello @Stumpftopf, a crash in amdvlk64.so sounds like a video driver issue in AMDVLK instead of mesa.

@kisak-valve Yes you are right. It was AMDVLK.
Seams to be fixed after i installed some extra Packages:
sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader sudo pacman -S vulkan-radeon lib32-vulkan-radeon
I am not sure now if i realy used amdvlk before and not the amdgpu vulkan implementation.

Getting the IGameClient error from EAC. Nothing seems to help.

I found a janky fix to the EAC IGameClient instantiation error:

  1. Delete the Squad wineprefix;
  2. switch Squad to use Proton 4.11;
  3. start Squad to recreate the wineprefix (this also installs EAC);
  4. exit Squad;
  5. switch Squad back to using Proton 5.0;
  6. start Squad again to upgrade the wineprefix to 5.0 - EAC should now work normally.

@Byter09 can you try this?

Heads up, Valve, there might be a regression in 5.0.

@imaami Followed your instructions:

  • deleted pre-existing prefix
  • Switch to 4.11-13
  • start
  • get error, continue loading
  • exit in main menu
  • (fun part, squad doesnt close itself, at least steam still marks it as running so I have to go ahead and use htop to kill everything that has squad in its name)
  • turn off Force the use of a specific Steam Play compatibility tool
  • start again
  • get error again.

So... no idea what I'm doing wrong :(

Also another quick note: I have reinstalled my setup since then and yeah the error is still there. Just thought this could help reduce the search area for the bug.

@Byter09 You need to first delete the wineprefix dir. Depending on where you've installed Squad it could be $HOME/.steam/steam/steamapps/compatdata/393380. In my case it's /opt/steam/steamapps/compatdata/393380, but you get the idea. Delete the dir called 393380, that's the wineprefix.

After you've done that switch to the older version. Start and exit Squad. Switch to the new Proton version, start again.

Deleting the wineprefix is a key part of this because otherwise EAC won't be reinstalled. You need to start from scratch when you do the first run with 4.11-13.

@imaami Tried your instructions exactly also, no luck.

Operating System: Manjaro Linux
KDE Plasma Version: 5.18.3
KDE Frameworks Version: 5.68.0
Qt Version: 5.14.1
Kernel Version: 5.5.11-1-MANJARO

@imaami Sorry I forgot to mention it. I of course did that.
I updated the original comment to reflect that.

@imaami Sorry I forgot to mention it. I of course did that.
I updated the original comment to reflect that.

Could you try with these additions/changes:

The above should pretty much 100% replicate my first successful trick yesterday.

@ryangodfrey Could you try those as well?

PS: I've heard back from one person on Reddit who was able to fix his EAC with my instructions yesterday, so I don't know how arbitrary it might be to be lucky. I'm sure this thing will get solved eventually, now we at least have some clue for where to hunt for the bug.

Alright.
I'm writing this comment as I go to not forget anything and give you as much information as I can on this.

  • I download both archives and put each of them with their respective folder into /home/btr/.steam/root/compatibilitytools.d/
  • I delete the prefix.
  • I delete the EasyAntiCheat folder in the Squad directory.
  • I additionally search for more EasyAntiCheat files and directories and delete them, too.
  • I verify the integrity of game files: 59 files (1.8 MB) need to be reacquired.
  • I set Squad to use a forced compatibility tool: Proton-i 4.13-3
  • I start Squad.
  • Steam is performing a first time setup.
  • Squad starts: EasyAntiCheat Error: Failed to create IGameClient
  • I press OK, wait for the main menu to load and quit Squad.
  • Squad closes and is no longer visible but Steam still shows it as running.
  • I kill everything related to Squad using htop. (2 x squad_launcher.exe)
  • I set Squad to use a forced compatibility tool: Proton-5.4-GE-3
  • I start Squad.
  • Squad starts: EasyAntiCheat Error: Failed to create IGameClient
  • I press OK, wait for the main menu to load.
  • I try to join a server anyway just to make sure. It doesn't work.
  • I close Squad.
  • Squad closes and is no longer visible but Steam still shows it as running.
  • I kill everything related to Squad using htop. (2 x squad_launcher.exe)

I was really hoping this would work. :sob:

Game starts on first attempt, but with EAC error, but works after switching Steam Play compatibility tool version to previous version and back to newest as suggested here.

Game runs at about 80-90 FPS, but drops after a few minutes to about 5-30 FPS and stays there, but with the PROTON_NO_ESYNC=1 this was only periodic (tested in one match)

Game is not playable !

Proton: 5.0-6
OS: Linux Mint 19.3 Tricia
KERNEL: 5.6.7-050607-generic
CPU: Intel Core i7-7700K @ 4.20GHz
GPU: AMD NAVI10
GPU DRIVER: 4.6 Mesa 20.0.5 - kisak-mesa PPA
RAM: 32 GB

steam-393380.log.gz

I actually found the culprit - EAC is actively trying to detect Wine and there is a possibility the Squad devs are building against Wine, as there are some past builds that worked without any single problem versus the Windows counterpart, it might be an "tick Wine detection or not".

I have another game that runs with EAC that works flawless, its EAC dlls don't have any Wine function using the strings command, but Squad has the well known (#1, #2) little problem.

LogEasyAntiCheatServer: Warning: Failed to locate EasyAntiCheat server library eac_server64.dll
LogEasyAntiCheatClient: Error: Failed to create IGameClient instance!

strings EasyAntiCheat_x64.dll | grep wine
wine32
wine64
wine_get_version
wine_x86
wine_x64

It might not be a regression in Proton as older Protons don't even run the game anymore. I tried the steps below and strangely there are some (interface? hardware?) combinations that seems to work (do they break the EAC check?), but I could not get Squad to run with EAC at all with my Fedora 31 KDE, DXVK and Mesa.

Delete Squad (393380) Wine Prefix:
rm -r "$HOME/.steam/steam/steamapps/compatdata/393380"
Switch Proton to use Proton-i-4.13-3.
Move the Movies folder so it does not crash the game (by not having codecs):
mv "$HOME/.local/share/Steam/steamapps/common/Squad/SquadGame/Content/Movies" "$HOME/.local/share/Steam/steamapps/common/Squad/SquadGame/Content/Movies.backup"
Run the game until menu, then exit and kill all Squad instances (killall --signal SIGHUP "squad_launcher.exe" "SquadGame.exe").
Switch Proton to use Proton-5.4-GE-3 and run the game until menu.

Good news - things for me have changed from not playable to playable with issues.

I have actually being playing Squad for a couple of hours now, two days in a row - still no EAC issues what so ever, and that's very positive - thanks to the people who made that possible !

I think I have gotten the general stuttering under control by installing the XanMod Linux kernel which includes the fsync patch - getting around 80-95 FPS.

But sometimes the FPS still drops to 5-10 and stays there only to return to normal a little later.

I noticed while that is going on, my video cards VRAM is nearly maxed out and and I verified that the Full Texture Loading option was not actually turned on.

Here is a screenshot of "radeontop" while Squad is running and the frame dropping issue is going on:

amdgpu
The video card model is a GIGABYTE Radeon RX 5700 XT GAMING OC 8GB

I have also had weird AMDGPU graphics driver crashes - I have experienced everything from complete system lock ups, to screens turning off or and then turning on, but only displaying green, and one time Squad crashed and my screens turned off and on again, and when the desktop environment restarted/recovered from that event, there were strange artifacts/colored pixels all over the screens.

Here is a log of one of those events (when that event occured I was running 5.6.7 Ubuntu mainline Linux kernel)

amdgpu_crash_10-04-2020_1447.log

Used @imaami's instructions and had the game working yesterday without issues, not even lag. However, today I began to experience intermittent crashing(via freeze), and tried to work the issue out. This ended in seemingly having EAC re-install itself via steam and breaking the anti-cheat.

Replicating the steps I did the first time, attempting to install EAC in 4.11.13 has had no luck in getting the anti-cheat to run, though the crashing seems to be gone in training. I've also attempted using a newer version of GE's proton instead of the GE 5.6 I was using previously to no avail, as well as imaami's build of proton 4 posted above. I have not, as of yet, successfully gotten the anti-cheat to run again. Notably, between each failed attempt, I have deleted the compatdata directory for Squad, prefix included.

OS: Arch Linux x86_64
Kernel: 5.6.13-arch1-1
CPU: Intel i7-8700K (12) @ 4.700GHz
GPU: NVIDIA GeForce GTX 1080
Memory: 4112MiB / 32057MiB

I have tried everything to make this work. I hope someone will find a fix for this soon! <3 It is probably the latest Squad Patch.

I've been trying for several days to get this working, following all the steps detailed here and no luck, same popup every time. It's a shame as Squad was running flawlessly until about 8 days ago.

New patch out today. Something about EAC Index. Crossing my fingers.

New patch out today. Something about EAC Index. Crossing my fingers.

Please report back because I even uninstalled.

I removed the prefix and tested again with B19.4.2. Same error message.

:disappointed:

Have just tried again, after a 55MB update and still the same EAC error, unable to play online.

Please add a report at https://www.protondb.com/app/393380

Yeah I did, I said about the IGameClient error, Jensen's works (which is Local I presume) but any EAC protected Servers tell me that I need to activate the Anti-Cheat

@imaami Is the game/your workaround still working for you?

@imaami Is the game/your workaround still working for you?

Yes, the game is still working. I haven't had to wipe the prefix or game files in a while because I haven't had problems. I don't know what would happen if I wiped them and reinstalled, and I'm not going to risk it if I don't absolutely have to. :)

I did get the error message once when I launched Squad, but I closed & restarted the game and it worked again. The only difference at that time was that I accidentally switched to another workspace soon after pressing "Start" in Steam. I wonder if the launcher gets confused in some situations where the game client and the EAC launcher window are not on the same workspace (virtual desktop).

My current graphics fullscreen setting is borderless fullscreen window, btw, not the "real" fullscreen mode. Maybe that can have some effect.

My window manager is i3, and I have the Steam client bound to workspace 3. Whenever I launch Squad I make sure I don't switch between workspaces until the game is fully loaded. I don't know if this is just a ritual based on coincidental experiences, but I've gotten the impression that things get weird if Squad or EAC (or Proton) aren't focused 100 % during launch. Could it maybe be related to the alt-tabbing bug where mouse events aren't captured after returning focus to the game window?

Just thinking out loud here. I suggest sacrificing a chicken just in case, we all know that the EAC gods who live in volcanoes are fickle and demanding.

I'd caught a reddit thread a few weeks ago that claimed uninstalling EAC through wine uninstaller and reinstalling it had a chance to make it work. I didn't bother to mention it here because the claim was never really substantiated.
It may truly just be a matter of playing the odds and hoping you get a lucky draw.

I'd caught a reddit thread a few weeks ago that claimed uninstalling EAC through wine uninstaller and reinstalling it had a chance to make it work. I didn't bother to mention it here because the claim was never really substantiated.
It may truly just be a matter of playing the odds and hoping you get a lucky draw.

I already tried this 2 days ago, I did it individually, I tried it by adding it as "Non-Steam Game", I even copied the EAC Folders (the one from master folder and the other from Binaries) from my Windows PC and is still not working.

I also did an Clear Cache, Verify Integrity, Reinstall EAC. Nothing works

Looks like using "hidewineexports=enable %command%" in startup parameters with staging wine (in my case it is Proton-5.9-GE-MF-2) works. This method doesn't modify any files, as other methods from internet suggests, but i still can't say if this will lead to a ban.

Looks like using "hidewineexports=enable %command%" in startup parameters with staging wine (in my case it is Proton-5.9-GE-MF-2) works. This method doesn't modify any files, as other methods from internet suggests, but i still can't say if this will lead to a ban.

Sorry to ask but how do I do this, I tried in Set Launch Options thing, even with + and - before, and still not working, it tells me to activate EAC when I join a server

Tested Squad with "hidewineexports=enable %command%" with Proton-5.9-GE-MF-2, all cases ended in the game failing to create the EAC interface.

Things tried:

  • Running the game using an existing non-working pfx with the environment var in 5.9-GE-MF-2.
  • Deleting the pfx and reinstalling it with 5.9-GE-MF-2
  • Deleting the pfx, installing it with Proton 4.11-13 as above, then running 5.9-GE-MF-2
  • Deleting the entire compatdata for Squad, installing with 4.11-13, then running 5.9-GE-MF-2
  • Deleting the entire compatdata for Squad, installing with 5.9-GE-MF-2, and running with it.

One theory I have could be to get a working prefix from someone whose game is functional, and put that into the compatdata of someone whose game is not functional. It might make a non-functioning game work. However, one should be careful if they try to package up compatdata, in case the prefix happens to contain any sensitive information from the game or user.

I knew i was doing something stupid yesterday. "hidewineexports=enable %command%" should do nothing. What you realy should do is set hidewineexports=enable in winetricks. i do this with protontricks

protontricks 393380 hidewineexports=enable

After that you should get a fail to start both EAC and game on first run (not just fail to start igameclient), but on second start it should work. After that i got it to start from time to time but maximum on third try. It should not show you a fail to start igameclient, it should be eather fail to start a game at all because of EAC or a good start of game. If it still a fail to start igameclient then there is something more than i could tell.

I don't really know how to investigate this so any help is appreciated:

I wanted to try the above with the latest proton available in Steam and deleted the prefix so its a clean setup. I of course needed to start the game once to let that happen. I verified the game files, booted it up and right after clicking on the IGameClient message my system does a hard reset. Same thing happens when I exit out of the game (using the close button on the windowed game) before the message pops up.

Essentially, I now can't even boot it up anymore. Meaning I also couldn't test the protontricks command :(

Is this just a weird quirk of my system setup or is there more going on? How would I find out what happens when it kills my system?

I don't really know how to investigate this so any help is appreciated:

I wanted to try the above with the latest proton available in Steam and deleted the prefix so its a clean setup. I of course needed to start the game once to let that happen. I verified the game files, booted it up and right after clicking on the IGameClient message my system does a hard reset. Same thing happens when I exit out of the game (using the close button on the windowed game) before the message pops up.

Essentially, I now can't even boot it up anymore. Meaning I also couldn't test the protontricks command :(

Is this just a weird quirk of my system setup or is there more going on? How would I find out what happens when it kills my system?

Is it now noticeably hotter indoors than a few weeks/months ago? Have you checked what the CPU and GPU temps are after you start the game?

That's just the first thing that came to mind that could cause a hard reboot. Also if your PSU or mobo has blown a capacitor from the high temps, that could be a cause.

Basically a fault in power delivery, or over-temperature protection, those will reset your computer. Other than that I have no ideas.

Edit: if you see this on your mobo or PSU, or any other component, you're gonna have problems that look a lot like random mysterious reboots and crashes. That happens when a capacitor boils. Literally boils, not a figure of speech. Being close to hot components for extended periods of time increases the likelihood that caps will boil.

@imaami Thanks for the concern but its definitely nothing like that. I can play other demanding games too no problem. And if it were a temp thing, I don't think "clicking the X to close the game causing a immediate reset" would work every time. But it does. I tested it 3 times. It _has_ to be the game causing a panic or something.

@imaami Thanks for the concern but its definitely nothing like that. I can play other demanding games too no problem. And if it were a temp thing, I don't think "clicking the X to close the game causing a immediate reset" would work every time. But it does. I tested it 3 times. It _has_ to be the game causing a panic or something.

Yeah, definitely sounds like something specific to Squad with that additional info. Squad is generally weird when being closed, whatever it does it often causes a short freeze of 10-20 seconds during which everything pauses.

What CPU, GPU, etc. do you have?

@imaami

CPU: Intel i7-2600 (8) @ 3.800GHz
GPU: Radeon RX Vega (VEGA10, DRM 3.36.0, 5.6.16-1-MANJARO, LLVM 10.0.0)
RAM: 16 GB
MB: P67A-D3-B3
KRNL: 5.6.16-1-MANJARO

Hope that helps. And just to give you a perspective about the demanding game thing: I can play X4, which is a Linux native game, perfectly fine. It heats my room pretty quickly, but so does Squad. And I'm pretty sure I posted my system info further up in this issue already, nothing much has changed in between except maybe some package upgrades and a new kernel.

EDIT: Found it: https://github.com/ValveSoftware/Proton/issues/938#issuecomment-570157290

Proton 5.9 with hidewineexports enabled.

GameID: 55 (32bit) Windows Version: 10.0 (Build 17134) Error Code: 30005 Process Exit Code: 0h UUID: 74f2ef78-445f-aa07-a79c-f79eb3c1fa01 Processes list: explorer.exe plugplay.exe services.exe squad_launcher.exe steam.exe winedevice.exe
I guess EAC doesn't like winedevice.exe

I forgot to post an update, but all tests I performed resulted in the same issue as @aCeTotal posted.

I get _about_ the same error as @aCeTotal.
It's weird that it calls my Windows version 6.1

This was after clearing prefix,
making prefix with proton 4.11
enabling hidewineexports
running with Proton-5.9-GE-1-MF

Then this error is returned from some kind of EAC frontend.

GameID: 55 (32bit)
Windows Version: 6.1 (Build 7601)
Error Code: 30005
Process Exit Code: 0h
UUID: 1898b708-c9e3-bb00-7471-bae27b36a354
Processes list:
explorer.exe
plugplay.exe
services.exe
squad_launcher.exe
steam.exe
winedevice.exe

And it didn't work on the second run either like @MAD-BUG reported.

Anyway, is there ANYONE playing this game on Linux as of right now?

Edit: Switched back to Proton-5.0-9
Now I am back to getting the IGameClient error. (prob because hidewineexports got disabled again?).

Edit: Started all over again,
I tried following this comment by @imaami as close as possible:
https://github.com/ValveSoftware/Proton/issues/938#issuecomment-606813813

Deleted existing pfx (rm -r .local/share/Steam/steamapps/compatdata/393380/)
Removed folders called EasyAntiCheat from game files (one in root, one in Binaries folder), and had Steam reinstall them.

I ran the game with Proton-i-4.13-3 from imaami's fork. (IGameClient error)

I then ran the game with Proton-5.4-GE-3. (IGameClient error still)

I am still getting the IGameClient error...

@imaami if you'd send your wineprefix we could try to launch our game with your wineprefix.

@imaami if you'd send your wineprefix we could try to launch our game with your wineprefix.

I was unable to bypass the IGameClient error when I installed Squad's public testing client yesterday. My normal Squad game still continues to work. So I compared the hash sums of some of the EAC files between normal and public testing Squad prefix, and I noticed that the public testing prefix was missing these two entirely:

pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac
pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac.metadata

I have a recollection from earlier that EAC seems to download these during install and/or startup. So I thought maybe if I just copy these over to the public testing prefix and see what happens... it worked. EAC starts up again.

I'm attaching a tarball that contains these two files (with the full path as above). Maybe it works in other Squad prefixes too.

easyanticheat_wine_x64.tar.gz

@imaami if you'd send your wineprefix we could try to launch our game with your wineprefix.

I was unable to bypass the IGameClient error when I installed Squad's public testing client yesterday. My normal Squad game still continues to work. So I compared the hash sums of some of the EAC files between normal and public testing Squad prefix, and I noticed that the public testing prefix was missing these two entirely:

pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac
pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac.metadata

I have a recollection from earlier that EAC seems to download these during install and/or startup. So I thought maybe if I just copy these over to the public testing prefix and see what happens... it worked. EAC starts up again.

I'm attaching a tarball that contains these two files (with the full path as above). Maybe it works in other Squad prefixes too.

easyanticheat_wine_x64.tar.gz

Placing these files in the directory specified didn't change anything for my client. _However,_ they did cause me to stumble upon the loader.log file in the same directory, which may provide a clue as to why my client in particular may be failing to load. Here is a uniq'd version of my loader.log, with the uuids in the URLs clipped out since I don't know anything about their use.

[2020.06.27-00.37.23] Loader initialized.
[2020.06.27-00.37.23] [Connection] Connecting to URL: https://download.eac-cdn.com/api/v1/games/55/client/wine64/download/?uuid=(uuidhere)
[2020.06.27-00.37.23] Download Progress: 0%.
[2020.06.27-00.37.23] [Connection] Connect result: No error (0) Response Code: 200 Destination IP: 13.226.205.101
[2020.06.27-00.37.23] [HTTP Error Response] HTTP Response Code: 200 Curl Code: 0.
[2020.06.27-00.37.23] Falling back to a secondary CDN path.
[2020.06.27-00.37.23] [Connection] Connecting to URL: https://download-alt.easyanticheat.net/api/v1/games/55/client/wine64/download/?uuid=(uuidhere)
[2020.06.27-00.37.23] Download Progress: 0%.
[2020.06.27-00.37.23] [Connection] Connect result: SSL connect error (35) Response Code: 0 Destination IP: 172.67.156.223
[2020.06.27-00.37.23] Connection to the Content Distribution Network failed! Curl Code: 35.
[2020.06.27-00.37.23] [EAC Callback] Code 914. Message: ''.

EAC is attempting to download something from their CDN, getting a 200 response, but then failing anyway. Then falling back to the alternative CDN, but failing due to an SSL error. Replicating the exact URL call in my terminal doesn't provide me with any downloaded data, but connects successfully without errors. I'd be interested in seeing if your loader.log provides different output given its success.

This leads me to potentially believe that installed packages could influence whether the game works or not? Alternatively, maybe EAC attempts to use a different SSL certificate/method than a traditional request that causes it to fail more frequently? I honestly can't really tell, but I think this could possibly be a hint to solving the issue.

@NGGJamie, yesterday I noticed that same file. There's actually a similar log file somewhere near that location, which shows the same curl 35 error as well. It means the SSL handshake wasn't successful. I didn't report it here yet because I first wanted to check if @imaami had the same logs in his prefix.

I loaded those files into my prefix and they immediately got deleted.
The other log file I mentioned is
pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/gamelauncher.log.

Although this time that log did not show any errors, which could be a clue. The other loader.log file however did show logs.

When I restarted the game gamelauncher.log reported

[Info] [LauncherFinished] EACAsyncResult: 3 Message: 'Connection to the Content Distribution Network failed! Curl Code: 35.'.
[Err!] [Network Error] CDN connection failed!

again.

I did another check just to be sure, and again when using @imaami's files, the gamerlauncher.log showed:

[Info] [LauncherFinished] EACAsyncResult: 0 Message: 'Easy Anti-Cheat successfully loaded in-game'.
[Info] Unloading the EasyAntiCheat library.

Hypothesis:
EAC tries to download some binary file, the HTTP request is successful but closes without single a single bit of data send. So it assumes the request failed, logs it as an error and uses the fallback CDN, which frankly just doesn't work.

The CDN returns content-type: application/octet-stream but content-length: 0

The alternative CDN behaves the same for me.

I am curious what the purpose of the UUID is and how it is defined. It seems to work fine without but maybe that's the issue.

Edit: I think I might be onto something. I read a couple of threads about this endpoint, and how it has caused the exact same issue in multiple games. Replacing wine64 with win64 makes the config download correctly. @imaami probably already has that config downloaded correctly. And somebody already mentioned that the game become unplayable around at the time when wine related strings started appearing in the EAC dll.

OK, this is such a weird mess. I have the exact same errors in my loader.log. Both normal Squad and public testing version have the same. Full log from last night with UUIDs and repeating lines removed:

[2020.06.27-02.23.54] Loader initialized.
[2020.06.27-02.23.54] [Connection] Connecting to URL: https://download.eac-cdn.com/api/v1/games/55/client/wine64/download/?uuid=(...)
[2020.06.27-02.23.54] Download Progress: 0%.
(...)
[2020.06.27-02.23.54] Download Progress: 0%.
[2020.06.27-02.23.54] [Connection] Connect result: No error (0) Response Code: 200 Destination IP: 13.33.242.102
[2020.06.27-02.23.54] [HTTP Error Response] HTTP Response Code: 200 Curl Code: 0.
[2020.06.27-02.23.54] Falling back to a secondary CDN path.
[2020.06.27-02.23.54] [Connection] Connecting to URL: https://download-alt.easyanticheat.net/api/v1/games/55/client/wine64/download/?uuid=(...)
[2020.06.27-02.23.54] Download Progress: 0%.
(...)
[2020.06.27-02.23.54] Download Progress: 0%.
[2020.06.27-02.23.54] [Connection] Connect result: SSL connect error (35) Response Code: 0 Destination IP: 104.28.3.249
[2020.06.27-02.23.54] Connection to the Content Distribution Network failed! Curl Code: 35.
[2020.06.27-02.23.54] [EAC Callback] Code 914. Message: ''.

Yet I still have the easyanticheat_wine_x64.eac and easyanticheat_wine_x64.eac.metadata files, and the game works.

@imaami could you download https://download.eac-cdn.com/api/v1/games/55/client/win64/download (win64 instead of wine64) and check if a file with the same md5sum is in your prefix?

Edit: I think I might be onto something. I read a couple of threads about this endpoint, and how it has caused the exact same issue in multiple games. Replacing wine64 with win64 makes the config download correctly. @imaami probably already has that config downloaded correctly. And somebody already mentioned that the game become unplayable around at the time when wine related strings started appearing in the EAC dll.

I read about this as well, and I also tried downloading manually from the different types of URLs (win{,e}{32,64}). With a normal command line curl or wget the wine{32,64} downloads succeed, but the file length is 0. With win{32,64} the downloads succeed, and the files are 2-3 megabytes of data.

The strange thing here is that the file I have (and have had since March) - easyanticheat_wine_x64.eac - is a different size than either of the win{32,64} files. It's clearly an actual Wine-enabled client file. And I do remember that I've downloaded it manually before when looking into EAC. But at least right now the EAC server returns an empty file.

Also, you said that the files got deleted when you put them there manually. My files seem to have their modify date updated on every launch, but they're not deleted, and they also don't seem to get re-downloaded (?) because I also get the SSL error in loader.log.

Anyway, I think I need to run some tests to verify that my observations are correct.

@imaami I am heading off right now, but I recommend trying to use a proxy (burp, zap) to change the outgoing request, or redirect their domain (/etc/hosts) to a server of your own where you host the win64 version.

No, the win64 download isn't the same file. It's got a different size and hash sum (of course).

I haven't tried it yet, but I think the win64 download is not going to work here. It's likely the normal, non-wine-enabled client file, and will fail because of the whole kernel driver mess.

Here's a short script I wrote for downloading all 4 permutations of win{,e}{32,64} and showing the results:

#!/bin/bash

urlbase='https://download.eac-cdn.com/api/v1/games/55/client'

tmpuuid="$(uuidgen)" || exit $?

rm -vf sha1sums win{,e}{32,64}.{log,out} >&2

for w in win{,e}{32,64}; do
  url="$urlbase/$w/download/?uuid=$tmpuuid"
  echo "fetching $url" >&2
  curl -v -o "$w.out" "$url" > "$w.log" 2>&1
  echo " ==== return value: $? ====" >> "$w.log"
done

ls -l win{,e}{32,64}.out >&2
sha1sum win{,e}{32,64}.out | tee sha1sums >&2

Output from one run:

fetching https://download.eac-cdn.com/api/v1/games/55/client/win32/download/?uuid=df7b8f11-9228-4a95-b8f1-dca8ceb64eba
fetching https://download.eac-cdn.com/api/v1/games/55/client/win64/download/?uuid=df7b8f11-9228-4a95-b8f1-dca8ceb64eba
fetching https://download.eac-cdn.com/api/v1/games/55/client/wine32/download/?uuid=df7b8f11-9228-4a95-b8f1-dca8ceb64eba
fetching https://download.eac-cdn.com/api/v1/games/55/client/wine64/download/?uuid=df7b8f11-9228-4a95-b8f1-dca8ceb64eba
-rw-r--r-- 1 imaami imaami 1552496 Jun 27 14:52 win32.out
-rw-r--r-- 1 imaami imaami 2732656 Jun 27 14:52 win64.out
-rw-r--r-- 1 imaami imaami       0 Jun 27 14:52 wine32.out
-rw-r--r-- 1 imaami imaami       0 Jun 27 14:52 wine64.out
02d91b86d6c29197361236b2b7275ebd1c0c82be  win32.out
24df1e2853b8908692504b87d7f1fd9124a7bd62  win64.out
da39a3ee5e6b4b0d3255bfef95601890afd80709  wine32.out
da39a3ee5e6b4b0d3255bfef95601890afd80709  wine64.out

@imaami I am heading off right now, but I recommend trying to use a proxy (burp, zap) to change the outgoing request, or redirect their domain (/etc/hosts) to a server of your own where you host the win64 version.

Like I said I don't think forcing EAC to download the actual win64 binary (instead of the wine64 one) would work. It probably just means you'd be in the same situation as all the games that don't even use a Wine-enabled EAC build. It would try to load the Windows kernel driver and fail.

The wine64 files I have in my prefix aren't the same files as the win64 or win32 ones, they're clearly meant for Wine.

Also, I'm pretty sure trying to man-in-the-middle the EAC server would also fail due to SSL certificate error.

@imaami, you're right. So really our goal should be to obtain the wine64 download. Can't you send that file? I am curious if the uuid means that it will only work for 1 client. Can you check if the md5sum is different when you change the uuid it's requested with?

@imaami, you're right. So really our goal should be to obtain the wine64 download. Can't you send that file? I am curious if the uuid means that it will only work for 1 client. Can you check if the md5sum is different when you change the uuid it's requested with?

I did already send it, it's the tarball I attached earlier: https://github.com/ValveSoftware/Proton/files/4839724/easyanticheat_wine_x64.tar.gz

The UUID doesn't seem to matter, it's always the same file.

To be absolutely clear: this file:

pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac

is downloaded from
https://download.eac-cdn.com/api/v1/games/55/client/wine64/download/?uuid=... when things work. I don't know why downloading from that URL now gives a zero-length file.

I get _about_ the same error as @aCeTotal.
It's weird that it calls my Windows version 6.1
```
GameID: 55 (32bit)
Windows Version: 6.1 (Build 7601)

"Windows" (NT) 6.1 is the internal Windows family version, equivalent to "Win 7", which means Wine is running with Win 7 specifications.
NT 6.2 is Win 8, NT 6.3 is Win 8.1 and NT 10 is Win 10. NT means "New technology" which maybe is valid lol.

I ran a little test. I moved these files out of the prefix (took a backup of them and deleted the originals):

pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac
pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac.metadata

Then I launched Squad. I got the IGameClient error.

I closed the game and confirmed that there were no new files in pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/. There was only the loader.log there as I expected. The logfile has the SSL handshake error, just like before.

Then I copied the files back to the original location inside the prefix and launched the game. No IGameClient error, Squad started normally.

After this second launch the loader.log still looks exactly the same - same SSL errors, and the download attempt seems to fail. easyanticheat_wine_x64.eac and easyanticheat_wine_x64.eac.metadata were still in place after the second launch, so they were not deleted. Their hash sums were identical to before, so their content is not modified, either.

I can only conclude that easyanticheat_wine_x64.eac and easyanticheat_wine_x64.eac.metadata are necessary for EAC to launch, and if they're missing you'll get the IGameClient error.

For some reason EAC has successfully downloaded these files before when launched with Proton 4.11 (or my Proton-i 4.13 build). That's why I have them in my prefix. Maybe the reason why the download fails for everyone now is that EAC have simply removed the file from the download location.

Maybe the EAC server has some short-lived UUID whitelist system, and it will actually send the correct file if it's given an UUID parameter that it's expecting to see within some short time window. Then again why would the server happily send out the file through the win64 URL even if the UUID is empty, but the wine64 URL behaves differently? God damn this freaking mess.

I know this is useless and I'm not expecting a response, but: https://twitter.com/JuusoAlasuutari/status/1276939752328040450

@imaami I didn't realize that the downloaded file was the .eac file from ealier.

Is it normal for my prefix to be win7?
Anyway I'll do some more testing.

Can someone get on PoP! Os? I know someone who can run the game with no issues, through Proton, maybe we can figure it out, if you can't , I can install it on an external HDD in a week, but idk what to test and share with you so I need your help.

This also might be interesting, after running protontricks-flat 393380 hidewineexports=enable the download path changes from https://download.eac-cdn.com/api/v1/games/55/client/wine64/download/?uuid= to https://download.eac-cdn.com/api/v1/games/55/client/wow64_win64/download/?uuid=

Also the download runs to 100% and then fails

[2020.06.27-19.15.00] Loader initialized.
[2020.06.27-19.15.00] [Connection] Connecting to URL: https://download.eac-cdn.com/api/v1/games/55/client/wow64_win64/download/?uuid=xxxxxxx
[2020.06.27-19.15.00] Download Progress: 0%.
... (Removed around 700 Lines of Download Progress)
[2020.06.27-19.15.00] Download Progress: 100%.
[2020.06.27-19.15.00] [Connection] Connect result: No error (0) Response Code: 200 Destination IP: 13.224.198.70
[2020.06.27-19.15.00] Download Progress: 100%.

@Inexorabilis that's super interesting, what was your total behavior? Did you get the IGameClient issue? Or did you get the same issue me as and aCeTotal, where the EAC launcher itself returned an error? Did the easyanticheat_*_x64.eac file download?

Starting Squad with those settings, you see the EAC Splash including the loading bar. After running through, a bug report window will open, stating "Errorcode: 30005 (StartService failed with 1053)

More details is showing the following

GameID: 55 (32bit)
Windows Version: 10.0 (Build 17134)
Error Code: 30005
Process Exit Code: 0h
UUID:xxxxxxxxxxxxxx
Processes list:
explorer.exe
plugplay.exe
services.exe
squad_launcher.exe
steam.exe
winedevice.exe

If you click on check for solutions online, you'll get directed to https://www.easy.ac/en-us/support/game/issues/errors/

That matches the previous errors we had with hidewineexports. What's in your pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55 folder?

Sadly nothing more than the loader.log

I tested it myself with @imaami's .eac files in the prefix. launcher.log showed no errors

[2020.06.27-20.34.31] [Connection] Connect result: No error (0) Response Code: 200 Destination IP: 99.86.109.7
[2020.06.27-20.34.31] Download Progress: 100%.

The downloaded(?) files I found were not different from the ones I already had there.

@imaami If you'd shoot an email you'd have more chance.

Edit: so yes with hidewinexports enabled I just don't see any downloaded files.

Maybe the reason why the download fails for everyone now is that EAC have simply removed the file from the download location.

All of these files are game specific, so for some reason the wine enable download for Squad got removed. It's possible that this is by the choice developers, I'll shoot them an email.

I think this is a pretty interesting post:
https://reddit.com/r/linux_gaming/comments/ao3au6/some_interesting_notes_about_eac_error_in_apex/

It covers the same issue but with Apex. They looked into trying to run the game with a wine64 download from different games.
A lot of people from a bunch of forums I've been reading on think that developers simply have the possibility to support wine, and that squad just toggled if off at some point. If this is true, I am curious how many popular EAC games can't be played on Linux simply because the developers don't allow it. Though I doubt it's that easy.

@imaami Are you comfortable with sharing your whole wineprefix? I am wondering how it's possible for the old binaries to work on your machine but not on mine.

@imaami Are you comfortable with sharing your whole wineprefix? I am wondering how it's possible for the old binaries to work on your machine but not on mine.

I'll try to look into it tomorrow, I'll probably need to prune something out before sharing. From the registry or something.

That reminds me: taking a closer look at the registry might reveal something new about this issue generally.

@imaami Are you comfortable with sharing your whole wineprefix? I am wondering how it's possible for the old binaries to work on your machine but not on mine.

I'll try to look into it tomorrow, I'll probably need to prune something out before sharing. From the registry or something.

That reminds me: taking a closer look at the registry might reveal something new about this issue generally.

Feel free to send the prefix to me in private first, no point in risking leaking sensitive information for a solution that might not work.

I could take a look at the registry but I am not sure what I'd be looking for.

Edit: I made this reddit post yesterday: https://www.reddit.com/r/joinsquad/comments/hgzgnb/squad_via_wineproton_why_did_it_stop_working_will/
Hoping we could maybe get a statement from a developer. But I think the dev which used to respond to these kinds of threads doesn't work at the company anymore.

Posting a script I wrote for scraping EAC downloads. It tries the download URLs of game IDs in sequence to see which IDs have a wine64 binary available. It prints out and logs the results, and also saves every successful download larger than 0 bytes.

Game IDs that return "Access Denied" are not printed; game IDs with a zero-length download are printed but the download is not saved (of course because they would be 0 bytes every time). It's interesting that "Access Denied" and zero-length download are distinct categories of results; I guess access denied means the game ID doesn't exist or is not in use at all, and the zero-length ones are valid game IDs without Wine support.

There are still game IDs which return a valid binary download. Interestingly only very few have a binary that is larger than some hundreds of kilobytes.

The first and last game ID are set to 1 and 500, respectively; you can change them by modifying the from_id and upto_id vars.

#!/bin/bash

from_id=1
upto_id=500

urlhead='https://download.eac-cdn.com/api/v1/games'
urltail="client/wine64/download/?uuid=$(uuidgen)" || exit $?

# printf format specifier for zero-padding game id
id_fmt0="%0${#upto_id}d"

logfile=$(printf "eac-games-$id_fmt0-to-$id_fmt0.log" "$from_id" "$upto_id")
tmpfile='/dev/shm/eac.bin'

rm -f "$tmpfile"

{
  echo -e ' game id\t dl size\tsaved as'
  echo -e ' -------\t -------\t--------'

  for ((i = from_id; i <= upto_id; i++)); do
    url="$urlhead/$i/$urltail"

    if curl -o "$tmpfile" "$url" 2>/dev/null &&
       len=$(stat -c %s "$tmpfile"); then

      if (( len > 0 )); then
        [[ "$(head -c5 "$tmpfile")" == '<?xml' ]] \
        && grep -i -q 'Access Denied' "$tmpfile"  \
        && {
          rm -f "$tmpfile"
          continue
        }

        dst=$(printf "eac-game-$id_fmt0.bin" "$i")
        mv "$tmpfile" "$dst"
        dst=$'\t'"$dst"

      else
        dst=''
      fi

      printf "%8d\t%8d$dst\n" "$i" "$len"
    fi

    rm -f "$tmpfile"

  done;
} | tee "$logfile"

@imaami I think you might've over-engineered your script a little. You could've just used the HEAD method, to check the content-length and the content-type variable.

Anyway what were the results? And did you already try altering the dll to use a different url?

@imaami I think you might've over-engineered your script a little. You could've just used the HEAD method, to check the content-length and the content-type variable.

Sure, but the point is to also download the file, so an extra curl command just to check the size would add complexity.

Anyway what were the results?

I summarized the results already, I don't understand the question.

I can post the output later today, but you can run the script yourself too. It doesn't take long to check all 500 game IDs.

And did you already try altering the dll to use a different url?

I already know that would accomplish nothing. At best it would download the normal Windows EAC binary, and it wouldn't work. Worst case scenario is I would get flagged by a hash check and autobanned.

The EAC server doesn't serve a binary to wine64 clients, we can't change that. We can try to figure out why your prefix doesn't work even with the binary from my prefix.

I made a ticket at Offworld Industries, and I got this reply:

Hello Rein,
Thank you for the info, I forwarded it onto our contact at EAC.
Please keep in mind Squad does not support Linux and we do not advertise that we support it.
Squad also does not develop Easy Anti Cheat, we merely license it.

I have sent this off to EAC, this would be something on their end to look into.

Beta 20 start working again with Proton 5.9 GE and hidewineexports for me. But there still no files in Application Data. And there are log errors for anticheat:
[Info] [LauncherFinished] EACAsyncResult: 3 Message: 'Connection to the Content Distribution Network failed! Curl Code: 35.'. [Err!] [Network Error] CDN connection failed! [Info] [LauncherFinished] EACAsyncResult: 0 Message: '
But i don't get an iclient error and can join official servers.
I wonder if there is a failsafe mechanism that will allow to play in such state for a limited time.

@MAD-BUG It didn't work for me, I didn't try hidewineexports however. I did try a new prefix.

Anyway I'll do some testing, glad to see I wasn't the only one that immediately started trying to run it again with the new update.

The game worked!
My launcher.log also still showed exactly the same errors, which is as expected because I checked the wine64 endpoint before and it was still showing the content-length as 0. I also don't have the .eac files.

Maybe we were wrong about thinking that was the origin of the issue??

Anyway I am soooo happy to finally be able to play this game, and wanted this game for ages and when it finally got another sale I was quite disappointed with it not working.

Massive thanks @MAD-BUG @imaami

Edit: I did notice that the whole game freezes in the tutorial as soon as you get to the kit role station.

Edit 2: I have also been having some major performance issues, sometimes it works flawlessly, sometimes I can't get over 20 fps

Edit 3: I just had a game where I barely had 50 fps on low settings, I switched to medium to see what would happen, I got 8 fps, then I switched back to low, and I got no more than 20 fps again. Than an A10 flew over and my game just crashed and closed.

Edit: I did notice that the whole game freezes in the tutorial as soon as you get to the kit role station.

Edit 2: I have also been having some major performance issues, sometimes it works flawlessly, sometimes I can't get over 20 fps

My game worked previously prior to stopping, so I will note that the game freezing during kit role selection on the tutorial happened previously, as well. Or at least, it did for me. So this is likely not a new issue.

My internet is horrible and hence I'm still downloading the update, but I'll report back on if I get performance issues when I have that data.

Guys, I haven't played Squad for quite some time now and I forgot to mention some of my research, hope it helps you.

  1. So, the FPS drop problem appears after loading second map per launch, it seems like the first map is remaining in the memory. It's easy to fix by restarting the game.
  2. This game crashes because something is wrong audio (see FAudio). I've contacted devs and they saw audio crash in my logs, they never met this kind of issue.
  3. EAC is inconsistent, I tried to install Squad on different distros, and even tried Linux Mint back again, no luck.

All problems are Linux-only, I tested this.

https://flightlessmango.com/games/20398/logs/512

The game is very playable on my machine, graphics are completely maxed out aside from Supersampling. There are moments where it dipped below 50FPS, but they weren't noticeable. This particular benchmark was taken almost entirely during combat, and I also did some shenanigans like spamming the (command) map up and down while spinning to stress the graphics.

@LevitatingBusinessMan Good to hear! I hope we can play a match or two together. Friend me on Steam if you want.

I have to exit and restart Squad after every map, fps goes to 10 otherwise. And changing gfx settings during gameplay does the same... Apart from these it's all good.

No change for me with Proton 5.0-9 or Proton-5.11-GE-2-MF with B20.
Squad starts, shows EAC error, on game exit squad_launcher process remains until killed.
Screenshot_20200630_121919

@zaggynl, try deleting the prefix and starting with proton 4.11, then close the game and try it with proton 5 two or three times. There are more detailed instructions somewhere higher in the thread.

Steps taken and result:

  • rm -r ~/.steam/steam/steamapps/compatdata/393380
  • changed squad compatibility tool to proton 4.1-13
  • start squad
  • above eac error shows
  • exit squad
  • pkill squad_launcher. (steam shows squad still running)
  • changed squad compatibility tool to proton 5.0-9
  • above eac error shows
  • exit squad
  • pkill squad_launcher.
  • start squad (eac load screen flashes by very quickly)
  • above eac error shows
  • exit squad
  • pkill squad_launcher.
  • start squad (eac load screen flashes by very quickly)
  • above eac error shows
  • exit squad
  • pkill squad_launcher.
    cat ~/.local/share/Steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/55/loader.log:

[2020.06.30-14.11.50] Loader initialized.
[2020.06.30-14.11.50] [Connection] Connecting to URL: https://download.eac-cdn.com/api/v1/games/55/client/wine64/download/?uuid=72252b78-00bf-047b-5abd-ee6d89c3a553
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.50] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] [Connection] Connect result: No error (0) Response Code: 200 Destination IP: 13.33.235.29
[2020.06.30-14.11.51] [HTTP Error Response] HTTP Response Code: 200 Curl Code: 0.
[2020.06.30-14.11.51] Falling back to a secondary CDN path.
[2020.06.30-14.11.51] [Connection] Connecting to URL: https://download-alt.easyanticheat.net/api/v1/games/55/client/wine64/download/?uuid=209d72f2-e540-7bfd-2f05-ef412af91aa2
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] Download Progress: 0%.
[2020.06.30-14.11.51] [Connection] Connect result: SSL connect error (35) Response Code: 0 Destination IP: 104.28.3.249
[2020.06.30-14.11.51] Connection to the Content Distribution Network failed! Curl Code: 35.
[2020.06.30-14.11.51] [EAC Callback] Code 901. Message: 'Connection to the Content Distribution Network failed! Curl Code: 35.'.

Attempting to download the mentioned file by hand results in a 0 byte file.

@zaggynl Try this version of Proton: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.9-GE-2-MF. Version 5.11 didn't work for me either.

@zaggynl Try this version of Proton: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.9-GE-2-MF. Version 5.11 didn't work for me either.

  • rm -r ~/.steam/steam/steamapps/compatdata/393380
  • downloaded, extracted Proton-5.9-GE-2-MF.tar.gz to ~/.steam/root/compatibilitytools.d/
  • restarted steam
  • changed squad compatibility tool to proton 5.9-GE-2-MF
  • started squad
  • eac error

@zaggynl Oh, I forgot to mention, run this too: WINEPREFIX=$HOME/.steam/root/steamapps/compatdata/393380/pfx winetricks hidewineexports=enable.

You'll have to install winetricks via your package manager if not already installed. Best of luck.

WINEPREFIX=$HOME/.steam/root/steamapps/compatdata/393380/pfx winetricks hidewineexports=enable
Seems to have done the trick! Trying a couple games now.
Edit, played one game without issue, FPS seems to be stuck at 60, dips to 30 at times. 3900x/5700xt/nvme/16gbram, 3440x1440

Instructions in full:

  • rm -r ~/.steam/steam/steamapps/compatdata/393380
  • mkdir -p ~/.steam/root/compatibilitytools.d/
  • download, extract Proton-5.9-GE-2-MF.tar.gz to ~/.steam/root/compatibilitytools.d/
  • restart steam
  • change squad compatibility tool to proton 5.9-GE-2-MF
  • run: WINEPREFIX=$HOME/.steam/root/steamapps/compatdata/393380/pfx winetricks hidewineexports=enable (may have to install winetricks through package manager or otherwise)
  • start squad (my launch options have this: hidewineexports=enable %command%)

edit2: game is unstable, crashed halfway a game when trying to respawn

Awesome to see some progress! It looks like we may have finally found the exact color of chicken to sacrifice for success.

@zaggynl I've been reading your additions to your comment. I'm glad that we resolved the issue of EAC. As far as overall game stability goes, we may want to examine as a completely separate issue. I recommend looking into game logs to see if there is any common ground for your crashes. I can tell you that the game has had issues in the past with AMD hardware especially in regards to sound. That may not be the issue here but it's something to keep in mind. Keep this thread updated with any progress and I'll try to pitch in when I can.

@KallanX I will add that I am on a Ryzen cpu, with an nvidia card.

@imaami What is your platform?

I'm running an i7-9700, RTX 2060 Super, 32gb RAM. Arch with kernel 5.7.6.

@KallanX Are you facing any stability issues? Can you list them?
Ones I discovered:

  • Sometimes cursor doesn't reach everywhere in the menu, I have to switch between windowing methods to fix it. I am using I3.
  • When I switch graphics settings during a match fps drops below 20.
  • Fps drops below 20 after a map switch.
  • I have had a bunch of crashes but they were probably due to the same performance bug with switching graphics settings.
  • The tutorial crashes when I get close to the Kit Role Station in the tutorial.

@imaami How can I find you on steam?

@KallanX I will add that I am on a Ryzen cpu, with an nvidia card.

@imaami What is your platform?

Ryzen 3950X, Nvidia RTX 2080, Debian Sid.

Pretty much my only issue with Squad is that the fps takes a nosedive after playing one map, so I restart the game on every map change. But that's not just me, I've gotten the impression that everyone who runs Squad in Proton suffers from the same bug.

Edit: Additional info: My window manager is i3. My kernel is a patch set I maintain myself and is based mostly on -ck, but it has an assortment of other patches thrown in the mix. I haven't bumped to 5.7 yet so right now it's at 5.6.19; if you're interested have a look at https://github.com/imaami/linux/tree/linux-5.6.y-i-ck

@imaami How can I find you on steam?

@LevitatingBusinessMan steamcommunity dot com /id/imaami

My game failed working again, without hidewinexports I get the IGameClient error.
And with it enabled EAC throws this error:

GameID: 55 (32bit)
Windows Version: 6.1 (Build 7601)
Error Code: 30005
Process Exit Code: 0h
UUID: 31950fdf-9ec7-c65e-c025-3416d4b2130a
Process list:
explorer.exe
plugplay.exe
services.exe
squad_launcher.exe
steam.exe
winedevice.exe

Edit: This behavior reminds of Apex Legends, where the game is only playable _just_ after a new patch gets released.

My game failed working again, without hidewinexports I get the IGameClient error.

Just to be sure: extract the .eac files I uploaded into the prefix, and try running without hidewineexports.

I am not sure if I believe this myself, but I think it worked?

wget https://github.com/ValveSoftware/Proton/files/4839724/easyanticheat_wine_x64.tar.gz
tar -xvf easyanticheat_wine_x64.tar.gz
mv pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/55/easyanticheat_wine_x64{.eac,.eac.metadata} /home/rein/.steam/steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/55/

So I guess when you get the game working once, something in the prefix gets set-up so you can get it too work with a previous .eac file. And because after the patch the hidewineexports method worked for a while, I was able to get it working once via that method, and then use the method of using older .eac downloads to get it running now. It worked with hidewineexports after the patch, prob because EAC was temporarily turned off, Apex players have reported similar behavior in the past. Apex also has the same issue where the .eac download suddenly stopped working, so our findings might help them and similar games as well.

Edit: It'd be a good idea to try and clean our prefixes so others can try getting their game to work with them.

@LevitatingBusinessMan Well damn, I hope it actually keeps working for you now! EAC is a real drama queen with this constant up 'n down plot line...

Can confirm I've also gotten into a non-working state similar to how it was previously. Using the .eac and .eac.metadata file hasn't changed the situation in my instance.

Stopped working for me as well, new error screen:
squad_eac_couldntstart
Error Code: 30005 (StartService failed with 1053.)

'Show details' button brings up a window with:
GameID: 55 (32bit)
Windows Version: 10.0 (Build 17134)
Error Code: 30005
Process Exit Code: 0h
UUID: 53393436-5878-7746-abec-fd78d6ffdc6b
Process list:
explorer.exe
plugplay.exe
services.exe
squad_launcher.exe
steam.exe
winedevice.exe

Application\ Data/EasyAntiCheat folder seems to have gone missing
No change with creating the folder and putting the eac files in place.
squad_launcher. process does appear to exit gracefully now?
Tried an eac repair by:
cd "~/.steam/steam/steamapps/common/Squad/EasyAntiCheat/"
WINEPREFIX=$HOME/.steam/root/steamapps/compatdata/393380/pfx wine EasyAntiCheat_Setup.exe
which shows the installer and allowed me to uninstall/install/repair but made no difference for the error.

Edit:
Tried the following:

  • rm -r ~/.steam/steam/steamapps/compatdata/393380
  • removed all launch options
  • mkdir -p ~/.steam/steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/55/
  • wget https://github.com/ValveSoftware/Proton/files/4839724/easyanticheat_wine_x64.tar.gz
  • tar -xvf easyanticheat_wine_x64.tar.gz
  • mv pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/55/easyanticheat_wine_x64{.eac,.eac.metadata} ~/.steam/steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application\ Data/EasyAntiCheat/55/

  • start squad
    eac window flashes by quickly, squad appears to exit
    launcher appears to crash? output when running steam from terminal:
    http://paste.debian.net/plain/1154608

@zaggynl @NGGJamie, did you disable hidewineexports?

That crash is certainly new.

@zaggynl @NGGJamie, did you disable hidewineexports?

That crash is certainly new.

I think so? I removed the wineprefix and the launch option, let me know if there is anything else.
Differences I notice with and without:
with: I get the new error
without: eac flashes by and per steam squad exits, see my edit.

@zaggynl did you read the last few comments in this thread at all? Removing the wineprefix is exactly what you shouldn't have done. You also never had to a set a launch option you can enable/disable hidewineexports via protontricks.

Edit: @NGGJamie did you actually get it working in the short time after the patch?

Yes I messed up there, what does hidewineexports do?

@zaggynl, it hides that the game is being run via wine.

Sadly is also broken on my side again. I've gotten Squad to run without the IGamClient Error short after the Patchrelease, however I've never actually joined a Server. Now I've tried to switch hidewineexports off and place the .eac* files in the directory, but again the IGameClient Error comes up.
So it may is related to if you actually joined a Server and played a bit?

I've also tried it with other versions and new prefixes. The only "new" thing that happened was that when starting Squad with Proton-5.11-GE-2-MF and enabled hidewineexports the EAC Startup Error doesn't come up anymore.

After poking around a little bit i found out that i can make new prefix working by using eac files and pasting user.reg from working prefix

@MAD-BUG That's a crazy find. What's in that file?

After poking around a little bit i found out that i can make new prefix working by using eac files and pasting user.reg from working prefix

Buy this man all the beers!

I just spent my last money on Squad and an SSD to put it on, I can hardly buy myself a tonic water.

But @MAD-BUG earns my eternal respect.

OK some bull** here.
After changing name in paths of "TEMP" and "TMP" under "[Environment]" block from "steamuser" to "vagrant" and using eac files game just starts without errors. I will point out that has not yet playtested it.
`[Environment] *

time=*

"TEMP"="C:\users\vagrant\Temp"
"TMP"="C:\users\vagrant\Temp"`

You just keep on giving

Okay has been tested with Proton-5.11-GE-2-MF and hidewineexports disabled.
The eac files has been put in /COMPATDIR/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/

I was able to join an empty server, choose a Kit and run around. No kick from EAC so far.
This could be the solution to this issue.

Edit: Seems to work with hidewineexports enabled as well

However @Inexorabilis it is likely only a solution for people that already have started and played the game once with EAC working, for which there seems to be a small window just after patches.

@LevitatingBusinessMan I've deleted my one time working prefix, since it wasn't working anymore. The prefix I'm using is a completely new one. The .eac files are those posted from imaami earlier.
The only possible issue I see at this point, which could cross this solution, is that the .eac files are somehow tied to imaami's Installation (launching without them won't work).

Edit: To be clear I've edited the user.reg as MAD-BUG suggested.

@Inexorabilis in that case it can't be a failproof solution, because we tried to get it to work multiple times before and it didn't work, however it's possible that the fact that the files from imaami worked on me is not because I played it before but because of the same reason it worked on you suddenly. Maybe something just got changed after the patch. However MAD-BUG said he only got it too work when pasting user.reg to the new prefix.

I got it working on a new prefix with eac files and enviroment changes in user reg

To be clear I've edited the user.reg as proposed by @MAD-BUG and changed

[Environment] *

time=*

"TEMP"="C:\users\steamuser\Temp"
"TMP"="C:\users\steamuser\Temp"

to

[Environment] *

time=*

"TEMP"="C:\users\vagrant\Temp"
"TMP"="C:\users\vagrant\Temp"

Then placed the .eac files from @imaami to /COMPATDIR/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/
This all happened in a brand new prefix running on Proton-5.11-GE-2-MF. It is regardless if you enable hidewineexports.
Sorry for not being this clear at first

Edit: Works on Proton 5.0.9 as well with, again a newly created prefix. We now can reproducible create working prefixes. I think we really need to buy MAD-BUG all them beers :)

It is still a janky solution because each separate individual depends on those eac files and change in register just suggests that we are either forcing EAC to skip some check or to use a fallback method.
I can speculate that eac file is just some code that process handling of enviroment for main anticheat executable (after putting it into decompiler) and it will not stop working in mean time if it will not be blocked specificaly.
But the work is not yet done and we really need to find a way to get those files by other metod rather than this discussion. For ease of use and capability to share some method for a more broad public without a fear of some sort of ban or anything for any of us.

You guys are awesome, it works for me too (with normal Proton 5.0.9), but I also share @MAD-BUG's concerns.

I cooked up some generic commands that downloads and extracts the EAC files and patches the user.reg file:

  1. Find the path to your steam library:
GAME_LIBRARY_PATH=$HOME/.local/share/Steam # /path/to/your/steam/library/that/contains/squad
  1. Remove the old prefix (if any):
rm -r $GAME_LIBRARY_PATH/steamapps/compatdata/393380
  1. Start the game, so the prefix gets (re)created (EAC predictable fails here, ignore that), exit the game when it's started:
steam steam://rungameid/393380
  1. Download some magic EAC files and extract them into the game's Proton prefix:
wget -qO- https://github.com/ValveSoftware/Proton/files/4839724/easyanticheat_wine_x64.tar.gz | tar xvfz - -C $GAME_LIBRARY_PATH/steamapps/compatdata/393380
  1. Patch some stuff for what ever reason:
sed -i 's/\"TEMP\"=\"C:\\\\users\\\\steamuser\\\\Temp\"/\"TEMP\"=\"C:\\\\users\\\\vagrant\\\\Temp\"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg
sed -i 's/\"TMP\"=\"C:\\\\users\\\\steamuser\\\\Temp\"/\"TMP\"=\"C:\\\\users\\\\vagrant\\\\Temp\"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg
  1. Start the game and cross your fingers:
steam steam://rungameid/393380

This has been a genuine team effort, a huge thank you to everyone! I don't think any of us could've gathered all the puzzle pieces alone. It feels really appropriate that we're focused on Squad specifically, because teamwork and cooperation are what makes it a great game. Without teamwork it would be just another shooter among dozens.

Hey Epic and makers of EAC, if you happen to read this: it should be pretty obvious we don't want to break, hack, or bypass anything that combats cheating. I personally have a hard time believing that anyone who's active in this thread would think cheating in online cooperative multiplayer games is OK. Basically we all want EAC to _work_. If you have any suggestions or requests how we can make EAC work better (so that it actually does prevent cheating as much as possible without discriminating against Proton users), then at least I'm all ears.

@MAD-BUG any specific reason for using the user vagrant?
Because I got it too work just buy pointing TMP and TEMP to any non-existing directory just now.

Edit: And I found that my own prefix that worked previously actually had the values to "C:\\users\\steamuser\\Temp" like normal

Edit: I did some extra tests, here are my findings.

  • New prefix, just .eac files does not work.
  • New prefix, .eac files and registry edit does work.
  • Old prefix, with just the .eac files but default value in registry does also work.

@LevitatingBusinessMan How about new prefix, just .eac files, and touch compatdata/393380/pfx/user.reg?

@LevitatingBusinessMan How about new prefix, just .eac files, and touch compatdata/393380/pfx/user.reg?

That did not work

@LevitatingBusinessMan How about new prefix, just .eac files, and touch compatdata/393380/pfx/user.reg?

That did not work

OK, so at least some minimal change is needed. I'm just wondering if the TEMP and TMP path settings are actually relevant, or if there's some general file-is-modified check or something. But just thinking out loud.

@LevitatingBusinessMan No specific reason, 123 also works. I just compared two reg files and in the working one was written vagrant so for the first test i used it.

@MAD-BUG @LevitatingBusinessMan

So how about new prefix, .eac files, edit TMP and TEMP in the registry, and also _create_ the renamed temp dir? That might tell us whether TEMP being a non-existent path is crucial.

@imaami the directory has to be non-existent.

@kisak-valve Here is a log file regarding the sudden FPS drop issue.

I played for a while before FPS dropped, if there's anything in the log it's probably near the end

https://easyupload.io/kd3tdn (link is active for 30 days)

@ipimpat when did your FPS drop?

I have encountered FPS drops when changing graphics settings mid-game, and when loading a new map. Although the latter stopped happening a while ago and I have not had a single performance issue since.

@LevitatingBusinessMan mid-game while playing.

It happens quite frequently to me, this time I had logging enabled tho.

I wanted to try out the above instructions to see if I can get Squad working again.

I have a new SSD, have not copied my home directory or anything. Completely new and clean Manjaro installation. System still crashes as soon I click OK on the error and let it load. Same thing when I kill the process. So I can't even complete step 3.

I don't want to interrupt the progress in here with my problem though, so I'll continue to lurk. You guys rock.

@Byter09 try to add PROTON_LOG=1 %command% to the game's launch options in Steam, and then check the log file created in your home directory, to see if there is any obvious reason why the game won't start at all.

@Byter09, right, you said "when I click OK on the error", I assume you are talking about a popup from EAC? Is there also a "show more details" button you can click? You didn't mess with protontricks or winetricks right? What step are you referring to as step 3?

Steps for me to reproduce this issue:

  • Start the game. Proton version does not seem to matter.
  • Click on OK in the IClientGame error
  • See the keyboard layout and the loading icon in the lower right (for like 2 seconds)
  • system crash

Works as well:

  • Start the game. Proton version does not seem to matter.
  • do not click OK in the error popup
  • close the game using the X of the window
  • system crash

Haven't tested what happens when I kill the process manually, as I don't really like to torture my system like this. If it gives helpful insight, I can do it however.

steam-393380.zip

Haven't looked at it because I really don't understand most of the stuff in there. (EDIT: Just had a look at the end. No, the file is not cut off. That's just my system dying while writing the file.)

@LevitatingBusinessMan There is no "Show more details" button.
And that is a fresh prefix so no proton- or winetricks.

Tested out the instructions by @ipimpat above, but no luck -- getting the EAC initialization error (Failed to initialize IGameClient something something). Never ran or installed the game before on Linux, using Fedora 32 and Proton 5.0-9.

I followed the instructions to a T, but noticed that after step 3 the game didn't close properly, a squad_l.exe (or something along those lines) process lingered. I only noticed this after I did the rest of the steps, so that could have messed the voodoo up. Starting from scratch by deleting the prefix and re-following the instructions didn't help either though.

@brndd The squad_launcher.exe seems to hang, it shouldn't affect anything. It's weird that some of you guys are still having issues.

@brndd just to be clear, what exactly happens, the second time you start Squad, EAC error ?

And can you also upload a log file (see: https://github.com/ValveSoftware/Proton/issues/938#issuecomment-653909978)

@ipimpat

@brndd just to be clear, what exactly happens, the second time you start Squad, EAC error ?

Yeah, the "Failed to create IGameClient instance" error, coupled with EAC not working.

Here's a logfile (and be cautioned, this decompresses into a 153 MiB file): steam-393380.log.zip

I found some logs in the EAC directory within the prefix and they had something about trying to download a file off an EAC CDN and the download timing out. Not sure if that's supposed to happen or not; I saw some discussion above where the download was apparently successful.

OK, I figured it out. The EAC files linked by @imaami were getting deleted somehow, perhaps by EAC. chmod a-w easyanticheat_wine_x64.eac* did the trick. The game is now launching without the error and I could join EAC-enabled servers fine. Tested it twice to confirm (and I can also confirm the weird user.reg patching is necessary).

Might want to add that to the instructions up there.

The curl error is the same issue affecting paladins:

https://github.com/ValveSoftware/Proton/issues/1787#issuecomment-655289213

Basically, Proton has a patch for compatibility with Sword Art Online Fatal Bullet that renders EAC unable to communicate with its CDN. Reverting the patch fixes it, but fails to make squad work because there are no files on the CDN.

Figured i would put this out there, i have gotten into a few servers fine, steam is suggesting i have 90 fps, but i'm stuttering really badly, and i cannot hear anyone on voip, while all other audio is working fine.
EDIT: also getting a error about corrupt files, i tried verifying files but all it did was reset the EAC fixes.

Guys, currently I have Windows with GPU passthrough installed, let me know if you need help by the end of the week.

OK, I figured it out. The EAC files linked by @imaami were getting deleted somehow, perhaps by EAC. chmod a-w easyanticheat_wine_x64.eac* did the trick. The game is now launching without the error and I could join EAC-enabled servers fine. Tested it twice to confirm (and I can also confirm the weird user.reg patching is necessary).

Might want to add that to the instructions up there.

Good find!

Current instructions copied for reference:
Copied from: https://github.com/ValveSoftware/Proton/issues/938#issuecomment-652620750 and https://github.com/ValveSoftware/Proton/issues/938#issuecomment-655251523
Assuming Squad already installed.
Disclaimer: this may or may not get you EAC kicked/banned, use at your own risk!

  • kill any remaining Squad processes (pkill squad_launcher. or use your favorite task manager equivalent)
  • GAME_LIBRARY_PATH=$HOME/.local/share/Steam (Find the path to your steam library and set it)
  • rm -r $GAME_LIBRARY_PATH/steamapps/compatdata/393380 (Remove the old prefix if any)
  • start Squad from steam
  • press OK on EAC error
  • exit Squad and kill any remaining squad processes (pkill squad_launcher. or use your favorite task manager equivalent)

Download some magic EAC files and extract them into the game's Proton prefix:

More EAC trickery

  • sed -i 's/\"TEMP\"=\"C:\\users\\steamuser\\Temp\"/\"TEMP\"=\"C:\\users\\vagrant\\Temp\"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg (change temp path to none existing folder)
  • sed -i 's/\"TMP\"=\"C:\\users\\steamuser\\Temp\"/\"TMP\"=\"C:\\users\\vagrant\\Temp\"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg (change tmp path to none existing folder)
  • chmod a-w "$GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/"* (Make the EAC files read only so they won't get removed)

I gave this a test run and Squad is working, have played one round without issues, can anyone else try to confirm?

The curl error is the same issue affecting paladins:

#1787 (comment)

Basically, Proton has a patch for compatibility with Sword Art Online Fatal Bullet that renders EAC unable to communicate with its CDN. Reverting the patch fixes it, but fails to make squad work because there are no files on the CDN.

Adding details that me and @ryao just discussed on Discord: reverting the patch does not make EAC work in Paladins, it merely allows Paladins to launch, but multiplayer will still fail from EAC not working. Paladins doesn't appear to ship a Wine-enabled EAC build at all, so it's not comparable to Squad in that respect.

@zaggynl as i posted previously, yes, it runs and i can join servers, but they have issues; Really bad stuttering on the map I played on, and after that round i'm getting a error about corrupt files, i tried verifying files but all it did was reset the EAC fixes.

@ShaunTheQuietGamer if you're having stuttering issues despite nominally good FPS, make sure your desktop compositing is disabled. On KDE the default hotkey to toggle this is Alt+Shift+F12. If you're using some other DE, Google will no doubt help you.

@zaggynl as i posted previously, yes, it runs and i can join servers, but they have issues; Really bad stuttering on the map I played on, and after that round i'm getting a error about corrupt files, i tried verifying files but all it did was reset the EAC fixes.

Haven't seen that before, sounds like a dying disk? Obviously tried lowering settings?
What does the error message look like?

@ShaunTheQuietGamer things to watch out for: changing graphics settings can while inside a server can ruin performance till you restart the game. After a map change the game can show similar performance issues, so when a server changes map you _may_ need to restart the game also.

Can you show us that error about the certain files getting corrupted? Next time when you get corrupted files and have steam fix it, run a tool that can check what files changed.

I will screenshot it the next time i get it; its somewhat unpredictable, My current thought is that it may be an issue with that specific layer. When steam verified the files, it said that everything was fine, (granted, it did change the eac files, so i'll check next time.) the error looked similar to the EAC error; just a generic Unreal Engine error. (separate note, disabling compositing seemed to help with the stuttering.)
Edit: testing some more right now, my fps drops to 20 when sighting in on rifles with 4x zoom, but not binoculars.

OK, I figured it out. The EAC files linked by @imaami were getting deleted somehow, perhaps by EAC. chmod a-w easyanticheat_wine_x64.eac* did the trick. The game is now launching without the error and I could join EAC-enabled servers fine. Tested it twice to confirm (and I can also confirm the weird user.reg patching is necessary).
Might want to add that to the instructions up there.

Good find!

Current instructions copied for reference:
Copied from: #938 (comment) and #938 (comment)
Assuming Squad already installed.
Disclaimer: this may or may not get you EAC kicked/banned, use at your own risk!

* kill any remaining Squad processes (pkill squad_launcher. or use your favorite task manager equivalent)

* GAME_LIBRARY_PATH=$HOME/.local/share/Steam (Find the path to your steam library and set it)

* rm -r $GAME_LIBRARY_PATH/steamapps/compatdata/393380 (Remove the old prefix if any)

* start Squad from steam

* press OK on EAC error

* exit Squad and kill any remaining squad processes (pkill squad_launcher. or use your favorite task manager equivalent)

Download some magic EAC files and extract them into the game's Proton prefix:

* wget -qO- https://github.com/ValveSoftware/Proton/files/4839724/easyanticheat_wine_x64.tar.gz | tar xvfz - -C $GAME_LIBRARY_PATH/steamapps/compatdata/393380

More EAC trickery

* sed -i 's/"TEMP"="C:\\users\\steamuser\\Temp"/"TEMP"="C:\\users\\vagrant\\Temp"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg (change temp path to none existing folder)

* sed -i 's/"TMP"="C:\\users\\steamuser\\Temp"/"TMP"="C:\\users\\vagrant\\Temp"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg (change tmp path to none existing folder)

* chmod a-w "$GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/"* (Make the EAC files read only so they won't get removed)

I gave this a test run and Squad is working, have played one round without issues, can anyone else try to confirm?

LogEasyAntiCheatServer: Warning: Failed to locate EasyAntiCheat server library eac_server64.dll
LogEasyAntiCheatClient: Error: Failed to create IGameClient instance!

Does someone have this file so i can try copying it into my prefix to fix this?

@Izaic I'm pretty sure that eac_server64.dll warning is supposed to be there. I don't have that DLL either and was getting that error as well. It's probably only needed for hosting servers.

Make sure you did all the steps correctly and that the easyanticheat_wine_x64.eac and easyanticheat_wine_x64.eac.metadata files are still where they should be in your prefix and are readable but not writable.

I couldn't get the workaround to run at first.
For some reason the sed commands did not actually change the paths in user.reg.

So if this isn't working for somebody, try changing the paths by in user.reg by hand.

There is no actual need in modifying reg file. You can just delete Temp folder of steamuser. In the end it only contains log files and deleting folder is more fail proof method rather than changing path by using sed in file that can drastically change from time to time.

@MAD-BUG that requires that the Temp folder doesn't get created again at some point.

There's no way that the sed command can fail, as long as you just find the line starting with Temp= (or Tmp=), and replace it with Temp=/whatever

Perhaps removing read and write permissions from the temp folder would be better than messing with the .reg file.

Can confirm the workaround.

I did simple version of the workaround:
1) Download EAC files, put them in the folder, chmod 444 on them.
2) chmod a-rw on Temp folder in .../steamuser/Temp

Works fine, currently in a server playing.

OK, I figured it out. The EAC files linked by @imaami were getting deleted somehow, perhaps by EAC. chmod a-w easyanticheat_wine_x64.eac* did the trick. The game is now launching without the error and I could join EAC-enabled servers fine. Tested it twice to confirm (and I can also confirm the weird user.reg patching is necessary).
Might want to add that to the instructions up there.

Good find!

Current instructions copied for reference:
Copied from: #938 (comment) and #938 (comment)
Assuming Squad already installed.
Disclaimer: this may or may not get you EAC kicked/banned, use at your own risk!

  • kill any remaining Squad processes (pkill squad_launcher. or use your favorite task manager equivalent)
  • GAME_LIBRARY_PATH=$HOME/.local/share/Steam (Find the path to your steam library and set it)
  • rm -r $GAME_LIBRARY_PATH/steamapps/compatdata/393380 (Remove the old prefix if any)
  • start Squad from steam
  • press OK on EAC error
  • exit Squad and kill any remaining squad processes (pkill squad_launcher. or use your favorite task manager equivalent)

Download some magic EAC files and extract them into the game's Proton prefix:

More EAC trickery

  • sed -i 's/"TEMP"="C:\users\steamuser\Temp"/"TEMP"="C:\users\vagrant\Temp"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg (change temp path to none existing folder)
  • sed -i 's/"TMP"="C:\users\steamuser\Temp"/"TMP"="C:\users\vagrant\Temp"/g' $GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/user.reg (change tmp path to none existing folder)
  • chmod a-w "$GAME_LIBRARY_PATH/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/"* (Make the EAC files read only so they won't get removed)

I gave this a test run and Squad is working, have played one round without issues, can anyone else try to confirm?

Would any of this be useful in games that use EAC that are not Squad? IE New World?

I'd hate to get my ass banned from a game in its pre-release =)

I've tried to apply this fix on Post Scriptum, but to do this we need the appropriate .eac files. So if anyone has Post Scriptum running if would be good if we can get the .eac files. I've already posted this in the Post Scriptum Issue here on git but got no reply.

I can confirm this "frame drop" issues also can happen in the middle of game.

I do restart the whole game after every match, but sometimes, the frame dropping issue still happens !

Anyone have any idea what might be causing it ?

Seems like it works out of the box again with 3.16-9 but not 4.11-13 or 5.0-9.

On 4.11-13 and 5.0-9, Steam still thinks the game is running after it exits because squad_launcher.exe never closes for some reason. I have to do a pkill squad_launcher to get Steam back to normal state. Maybe this is related to the need for the workaround above if that squad_launcher freezes before finishing whatever it needs to do? Wonder what changed in newer Proton versions versus 3.16 to cause it to freeze 🤔

I think we've all experienced similar issues with the launcher process not exiting on it's own. Can you confirm again that the game works out of the box with 3? So with a deleted prefix the game works with proton 3, but when you delete the prefix the game won't work correctly with proton 4 or 5.

Can you confirm again that the game works out of the box with 3? So with a deleted prefix the game works with proton 3, but when you delete the prefix the game won't work correctly with proton 4 or 5.

Correct. With 3 everything looks good, no error popups and no squad_launcher hang. With 4 I get the EasyAntiCheat Error: Failed to create IGameClient instance! popup, squad_launcher hangs and has to be killed. With 5 I get the curl issue mentioned above, no error popup but still squad_launcher hang.

Can you confirm again that the game works out of the box with 3? So with a deleted prefix the game works with proton 3, but when you delete the prefix the game won't work correctly with proton 4 or 5.

Correct. With 3 everything looks good, no error popups and no squad_launcher hang. With 4 I get the EasyAntiCheat Error: Failed to create IGameClient instance! popup, squad_launcher hangs and has to be killed. With 5 I get the curl issue mentioned above, no error popup but still squad_launcher hang.

Wait a minute, if you delete the prefix and start from scratch with Proton 3.16-9, does EAC work (so you can play on servers)? Does the .eac file get downloaded as well?

Someone in the squad discord channel says that “Squad” is working again after the last update of the game. Can anyone check this?

Someone in the squad discord channel says that “Squad” is working again after the last update of the game. Can anyone check this?

Holy carp, it's true! There's a _new wine64 EAC binary blob for Squad_ on the CDN!

$ /git/eac-tools/download.sh --from-id=55 --to-id=55
 game id         dl size        last modified (UTC)     download saved as
 -------         -------        -------------------     -----------------
      55         4168192        2020-08-04 07:20:02     eac-game-55-wine64.bin
$ ls -l eac-game-55-wine64.bin
-rw-r--r-- 1 imaami imaami 4168192 Aug  4 10:20 eac-game-55-wine64.bin
$ sha1sum eac-game-55-wine64.bin
d15d758603955ef224620d977684a0aae33fe193  eac-game-55-wine64.bin

Have tried it for myself as well. I've created a new Prefix using Proton-5.9-GE-4-ST.
During Startup the old IGameClient Error came up, as well on the second start. However the .eac files have been downloaded.
After changing the Temp Path in user.reg I was successfully able to start and play Squad online.

However we should monitor this for a few days. After the last update, Squad was working as well for a few days.

Can you upload the newest dated files below?

"~/.steam/steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac"
"~/.steam/steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Application Data/EasyAntiCheat/55/easyanticheat_wine_x64.eac.metadata"

Please, and many thanks.

I am asking because the old .eac files could be invalidated in the next days, or the server can stop providing those files again.

Here are your files, its working for me as well, strangely, i had to manually edit the user.reg file, sed wasn't working. Still getting lag after playing more than one round. Not sure if i misunderstood what you wanted for the file upload, if so, explain what you wanted.

squadeacfiles.zip

The EAC servers could stop uploading those .eac files, as those are supposedly newer version than the older .zip in this issue.

After every big update in Squad the EAC devs seems to test build for Linux, but after some time they simply remove the files (from the curl link).

Also, as it is possible they updated the .eac binary source code, the newer build might have newer features which will be imposed in the future, that's why we have to keep .eac files updated.

Thats what i figured, i wasn't sure if I uploaded it how you were wanting it.

Finally.
I started Squad and got an EAC error.
I set "read only" to "steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp" then the game works fine.
What's wrong with "Temp"?

@imaami is it possible to watch the Temp folder for attempted reads and writes?

Also, can someone run a diff on the hexdump of both EAC files?

Also, can someone run a diff on the hexdump of both EAC files?

3977216 ./squadeacfiles-202007080000/easyanticheat_wine_x64.eac
4168192 ./squadeacfiles-202008040720/easyanticheat_wine_x64.eac

diff -u -E -Z -b -B -w --color -i ./easyanticheat_wine_x64.eac.hexdump.20200708.txt ./easyanticheat_wine_x64.eac.hexdump.20200804.txt >diff.txt

--- ./easyanticheat_wine_x64.eac.hexdump.20200708.txt 2020-08-07 09:49:41.164676257 -0300
+++ ./easyanticheat_wine_x64.eac.hexdump.20200804.txt 2020-08-07 09:50:10.294316927 -0300

The hexdumps alone are 11.931.656B for the older and 12.504.584B for the newer, the diff output has 23,8MB. Those files are way different, but both work for Squad Beta 21.0.1.49 - I think they have such a difference because of code obscuration and randomization.

Maybe they are encoded differently. @imaami would have to check.

@imaami is it possible to watch the Temp folder for attempted reads and writes?

Sure. You could use the inotify API to write a program that catches most filesystem events in a directory (but it won't be able to identify which processes are responsible for them). You could try to use strace to monitor syscalls relevant to filesystem accesses, and filter out the uninteresting ones with grep. And then there's the option of enabling every WINEDEBUG flag and becoming the first person ever to literally drown in logspam.

This was all from the top of my head; if anyone can correct me with something or add details then please do.

Also, can someone run a diff on the hexdump of both EAC files?

3977216 ./squadeacfiles-202007080000/easyanticheat_wine_x64.eac
4168192 ./squadeacfiles-202008040720/easyanticheat_wine_x64.eac

diff -u -E -Z -b -B -w --color -i ./easyanticheat_wine_x64.eac.hexdump.20200708.txt ./easyanticheat_wine_x64.eac.hexdump.20200804.txt >diff.txt

--- ./easyanticheat_wine_x64.eac.hexdump.20200708.txt 2020-08-07 09:49:41.164676257 -0300
+++ ./easyanticheat_wine_x64.eac.hexdump.20200804.txt 2020-08-07 09:50:10.294316927 -0300

The hexdumps alone are 11.931.656B for the older and 12.504.584B for the newer, the diff output has 23,8MB. Those files are way different, but both work for Squad Beta 21.0.1.49 - I think they have such a difference because of code obscuration and randomization.

How did you create the hexdumps? If you use plain hd it's not going to represent the amount of changed bytes because any small change in offsets will change every line.

Old and new binary blobs:

$ ls -rl {old,new}/easyanticheat_wine_x64.eac
-rw-r--r-- 1 imaami imaami 3977216 Aug  7 18:41 old/easyanticheat_wine_x64.eac
-rw-r--r-- 1 imaami imaami 4168192 Aug  7 18:41 new/easyanticheat_wine_x64.eac
$ sha1sum {old,new}/easyanticheat_wine_x64.eac
a2aaa53b77d5152dfe3d204323ba7bbbfd82265f  old/easyanticheat_wine_x64.eac
d15d758603955ef224620d977684a0aae33fe193  new/easyanticheat_wine_x64.eac

Generating one-byte-per-line hexdumps for easier diffing:

$ od -An -tx1 -v -w1 old/easyanticheat_wine_x64.eac > old/easyanticheat_wine_x64.eac.hexdump
$ od -An -tx1 -v -w1 new/easyanticheat_wine_x64.eac > new/easyanticheat_wine_x64.eac.hexdump

Verifying that the hexdump line counts match the original binaries' byte sizes:

$ wc -l {old,new}/easyanticheat_wine_x64.eac.hexdump
 3977216 old/easyanticheat_wine_x64.eac.hexdump
 4168192 new/easyanticheat_wine_x64.eac.hexdump
 8145408 total

Aaaaand finally,

$ git diff --no-index --stat {old,new}/easyanticheat_wine_x64.eac.hexdump
 {old => new}/easyanticheat_wine_x64.eac.hexdump | 7209762 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------
 1 file changed, 3700369 insertions(+), 3509393 deletions(-)

Yep, at least a naïve test like this says they're almost completely different.

Alright. Not sure if anyone cares but I tried B21 today using various versions of proton and it still hard resets my system every single time I start squad. I posted the log once, it still looks like that. Just cuts off at the end because it can't finish writing to the file because of the crash. No idea what is going on. If anyone knows of a discord where people might help me instead of my annoying report in here now and then, that'd be great.

Hope you guys are having fun in Squad though! :D

Alright. Not sure if anyone cares but I tried B21 today using various versions of proton and it still hard resets my system every single time I start squad. I posted the log once, it still looks like that. Just cuts off at the end because it can't finish writing to the file because of the crash. No idea what is going on. If anyone knows of a discord where people might help me instead of my annoying report in here now and then, that'd be great.

Hope you guys are having fun in Squad though! :D

You used to be able to run it without hard reset, what changed on your hardware between end of 2019 and now? Have you tried formatation?

@BRMateus2 Nothing has changed since then. My SSD died a few weeks ago, so this is even a fresh install.

I thought maybe my last journal entries might help:
boot.txt

I got these with journalctl --boot=-1 > boot.txt.

I don't see anything obvious in there. I _really_ have no idea what causes this crash.

Edit: I also tried disabling the Steam Overlay, just in case. Same result.

I see you have a i7 2600 and a AMD GPU of some kind with 8GB VRAM, but could not identify anything for Squad - I have no idea what could be, you have to create a new issue and specific logs for this repo. Never had a hard reset from Squad, it crashes to desktop when it happens.

total  access  modify  close_write  close_nowrite  open  create  delete  filename
46     10      2       1            15             16    1       1       393380/pfx/drive_c/users/steamuser/Temp/

I always get this output when usiung inotifywatch on the Temp folder, then launching squad.

I haven't figured out a way yet to show what files are being accessed exactly or what gets written

total  access  modify  close_write  close_nowrite  open  create  delete  filename
46     10      2       1            15             16    1       1       393380/pfx/drive_c/users/steamuser/Temp/

I always get this output when usiung inotifywatch on the Temp folder, then launching squad.

I haven't figured out a way yet to show what files are being accessed exactly or what gets written

How about trying with inotify-hookable?

# (D="/opt/steam/steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp"; rm -f /tmp/tempdir.log; inotify-hookable --watch-directories "$D" --on-modify-command "ls -alrt '$D/' >> /tmp/tempdir.log")

@imaami I don't have inotify-hookable installed, the arch inotify-tools package only comes with inotifywait and inotifywatch

@imaami I don't have inotify-hookable installed, the arch inotify-tools package only comes with inotifywait and inotifywatch

It's a different package, don't know if Arch has it. But I couldn't catch any files with it when I tried.

I enabled an insane WINEDEBUG setting and grepped for steamuser/Temp/, and it seems Squad is doing something with a dir called steamuser/Temp/UnrealShaderWorkingDir.

Exciting news about EAC working officially(er)!

Unfortunately, just running it doesn't seem to work and I haven't been keeping track of this issues so I'm not sure if I'm missing some crucial step here.

users/steamuser/Application Data/EasyAntiCheat/55 ♦ ➔ ls                                                                                                                                                                                                                                                
easyanticheat_wine_x64.eac  easyanticheat_wine_x64.eac.metadata  loader.log

These files are present in the EAC folder, which I suppose means that I don't have to download any new EAC files, is that right?

There was also mention of modifying the user.reg file. I did the following

Steam/steamapps/compatdata/393380/pfx ♦ ➔ sed -i 's/"TEMP"="C:\\users\\steamuser\\Temp"/"TEMP"="C:\\users\\vagrant\\Temp"/g' user.reg                                                                                                                                                                    
Steam/steamapps/compatdata/393380/pfx ♦ ➔ sed -i 's/"TMP"="C:\\users\\steamuser\\Temp"/"TMP"="C:\\users\\vagrant\\Temp"/g' user.reg

But the game still fails to start
image

Am I missing something here?

There was also mention of modifying the user.reg file. I did the following

Steam/steamapps/compatdata/393380/pfx ♦ ➔ sed -i 's/"TEMP"="C:\\users\\steamuser\\Temp"/"TEMP"="C:\\users\\vagrant\\Temp"/g' user.reg                                                                                                                                                                    
Steam/steamapps/compatdata/393380/pfx ♦ ➔ sed -i 's/"TMP"="C:\\users\\steamuser\\Temp"/"TMP"="C:\\users\\vagrant\\Temp"/g' user.reg

But the game still fails to start
image

Am I missing something here?

Yeah, the number of backslashes in your sed command is wrong. You're trying to replace C:\users\steamuser\Temp, but the relevant lines in user.reg entries actually have _two_ backslashes as path separators:

$ grep -E 'TE?MP' user.reg 
"TEMP"="C:\\users\\steamuser\\Temp"
"TMP"="C:\\users\\steamuser\\Temp"

So what you need is four backslashes in your sed command.

The following oneliner should work for replacing both TEMP and TMP, and it's fairly short because it makes use of extended regexp backreferences:

sed -E -i 's/("TE?MP"="C:\\\\users\\\\)ste(amuser\\\\Temp")/\1\2/' user.reg

Alternatively you don't need to edit user.reg at all, just make the tempdir impossible for normal users to read from or write to:

chmod a-rw drive_c/users/steamuser/Temp

@TheZoq2 open the user.reg file and check if sed actually replaced the TMP and TEMP variables.

It didn't for me and I too could not launch without the EAC error. Still not sure why the sed command would not work though.

It didn't for me and I too could not launch without the EAC error. Still not sure why the sed command would not work though.

Wrong number of backslashes.

Alright. Not sure if anyone cares but I tried B21 today using various versions of proton and it still hard resets my system every single time I start squad. I posted the log once, it still looks like that. Just cuts off at the end because it can't finish writing to the file because of the crash. No idea what is going on. If anyone knows of a discord where people might help me instead of my annoying report in here now and then, that'd be great.

Hope you guys are having fun in Squad though! :D

I have hard resets too, never on launch, usually seemingly random times while in a server.
i7, RX580, 16GB Kingston DDR3, Samsung 850 SSD
Have yet to check any logs, on an unfamiliar distro (ubuntu).

Long shot, but I had similar issues with DCS world a while back (whole computer froze and reset, or sometimes just the GPU). The fix was to upgrade mesa and llvm

@TheZoq2

$  yay -Qs mesa
local/glu 9.0.1-2
    Mesa OpenGL Utility library
local/lib32-mesa 20.1.3-1
    An open-source implementation of the OpenGL specification (32-bit)
local/lib32-mesa-vdpau 20.1.3-1
    Mesa VDPAU drivers (32-bit)
local/lib32-vulkan-intel 20.1.3-1
    Intel's Vulkan mesa driver (32-bit)
local/lib32-vulkan-radeon 20.1.3-1
    Radeon's Vulkan mesa driver (32-bit)
local/libva-mesa-driver 20.1.3-1
    VA-API implementation for gallium
local/mesa 20.1.3-1
    An open-source implementation of the OpenGL specification
local/mesa-demos 8.4.0-4
    Mesa demos and tools incl. glxinfo + glxgears
local/mesa-vdpau 20.1.3-1
    Mesa VDPAU drivers
local/vulkan-intel 20.1.3-1
    Intel's Vulkan mesa driver
local/vulkan-radeon 20.1.3-1
    Radeon's Vulkan mesa driver
$  yay -Qs llvm
local/lib32-llvm-libs 10.0.0-1
    Low Level Virtual Machine (runtime library)(32-bit)
local/llvm-libs 10.0.0-2
    LLVM runtime libraries

I'm using Manjaro so I can't really be far behind the latest release I suppose. Thanks for the hint though, I'll keep digging.

I'm on arch, and the latest mesa still has the same issue in DCS (but not in squad). My fix was to install aur/mesa-git

@TheZoq2 I replaced mesa with mesa-git and it still crashes. Reverting that one. Thanks for trying though. I really appreciate the help.

Below you'll find my proton log. It's still cutting off at the end because my system crashes _while_ writing the file. I still have no idea what its listing in there. Looks like its unwinding a panic of some sort. May result in a kernel panic? I have no idea how to debug this further.

steam-393380.log

EDIT:
Thanks to @999eagle, we got the log cleaned up, this is a more recent run (today) with its output containing no trace messages. So yeah, it crashes exactly when it tries to asynchronously load maps.
steam-393380.log
steam-393380-notrace.log

And to maybe help relate this with my system output, here's the corresponding journal output again:
boot.txt

EDIT2 (20-09-09):
Same issue with Kernel 5.8 and Mesa 20.1.7... No hardware changes.

Seems like 1.0 is out, and with that there's probably a new EAC version (didn't even try with the old one though...)

As usual I couldn't download it using the client as it just kept getting instantly deleted after the download, but it was available on the EAC CDN from where I downloaded it using @imaami's script. Put it in the usual folder and chmod a-w it and things seem to work as usual.

easyanticheat_wine_x64.eac.zip

@brndd You are saying that the EAC client doesn't download it, but using imaami's script you _can_ download it?

The EAC client seems to download it, at least according to its log file, but the file isn't present in the directory because something is deleting it. I've always had this problem, and I don't know why some people don't have it. It's why I need to chmod a-w the EAC files, but that obviously doesn't work when the files don't exist yet and I haven't figured out a way to allow the EAC client to write them but then not delete them.

Seems like 1.0 is out, and with that there's probably a new EAC version (didn't even try with the old one though...)

As usual I couldn't download it using the client as it just kept getting instantly deleted after the download, but it was available on the EAC CDN from where I downloaded it using @imaami's script. Put it in the usual folder and chmod a-w it and things seem to work as usual.

easyanticheat_wine_x64.eac.zip

Have you done the tempdir trick already?

Seems like 1.0 is out, and with that there's probably a new EAC version (didn't even try with the old one though...)

As usual I couldn't download it using the client as it just kept getting instantly deleted after the download, but it was available on the EAC CDN from where I downloaded it using @imaami's script. Put it in the usual folder and chmod a-w it and things seem to work as usual.

easyanticheat_wine_x64.eac.zip

It doesn't seem to be working for me, i don't get the error on startup, but after a while in the server, i get a EAC timeout error.

is the easyanticheat_wine_x64.eac.metadata file not needed?

@ShaunTheQuietGamer it worked for me as well, you can check the md1sum inside the easyanticheat_wine_x64.eac.metadata, which was created by Squad itself if it compares with the sum of easyanticheat_wine_x64.eac

@imaami

Yeah, I tried following the steps in your post earlier in this thread about switching to Proton 4.11 and then launching the game once. No matter what I do I don't seem to be getting those two necessary files, the folder only contains a launcher.log which states that the download progressed to 100% without an error. Changing the write permissions on the Temp directory didn't seem to change this.

@ShaunTheQuietGamer the metadata file is not needed in my experience. I haven't had the time to play a full game, but I've sat in a server for about 15 minutes with this fix and haven't gotten kicked.

Yeah, I deleted the prefix and started over, now its working. I also noticed something that might interest you guys. Squad is using all 8 GB of my vram. (it actually says its using more vram than i have.) Could a vram leak be causing the fps drops everyone is seeing?

Yeah, I deleted the prefix and started over, now its working. I also noticed something that might interest you guys. Squad is using all 8 GB of my vram. (it actually says its using more vram than i have.) Could a vram leak be causing the fps drops everyone is seeing?

Ye I can confirm this. First match was using 7Gb of vram. Second match, vram went to 8GB and it become unplayable.
Also to make EAC work I had to go to permissions on "steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp" folder and put everything only "Access only".

Yeah, I deleted the prefix and started over, now its working. I also noticed something that might interest you guys. Squad is using all 8 GB of my vram. (it actually says its using more vram than i have.) Could a vram leak be causing the fps drops everyone is seeing?

Definitely has something to do with VRAM filling up. It's always teetering on the edge of breaching the 8 GiB barrier, after which it becomes unplayable. It can happen during a match as well as more assets are loaded into VRAM when you visit different areas.

A larger player count also makes it worse, because that seems to increase VRAM allocations (more things to render, more stuff happening, more particles on screen, etc.

I have to say that right now would be the perfect time for Valve or Nvidia to gift me an RTX3090 for research purposes. ;)

I have to say that right now would be the perfect time for Valve or Nvidia to gift me an RTX3090 for research purposes. ;)

Lol.

Does the stuttering occur on both Nvidia and AMD cards or only one or the other? I've got an Nvidia card and am getting it, any AMD users able to report?

Does the stuttering occur on both Nvidia and AMD cards or only one or the other? I've got an Nvidia card and am getting it, any AMD users able to report?

Yeah, i'm on a 5700 XT, i used to have a 1660 TI and they both do/did it.

I've been theorizing, and figure i'd say something here, does anyone know if wine/proton supports pagefiles? I'm thinking it could be whats causing the fps drops; according to their support pages, -- https://offworldindustries.zendesk.com/hc/en-us/articles/360042382054-Memory-Pagefile-Issues -- not having one has caused similar issues of not having enough Vram on windows.

I picked this up tonight having noticed it finally released out of early access and seeing some successful reports on ProtonDB. Out of the box, I got the typical EAC error, but was able to get everything working, albeit with unplayable performance.

  1. First I tried the EAC files posted earlier (easyanticheat_wine_x64.eac.zip) with removing the write access bit from 'all', but that didn't seem to change anything.
  2. Next I removed read-write permissions from the steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp directory. This resolved the EAC error, but then game would crash when loading a map with the infamous eventfd: Too many open files error.
  3. I added PROTON_NO_ESYNC=1 to the launch options to work around the too many files error and maps started loading properly.

I was able to play the tutorial and the last 5 minutes or so of a multiplayer game (until the match ended). I didn't check any FPS numbers, but performance seemed ok but not great in the tutorial and was straight awful (perhaps 10 FPS if I had to guess--it was basically a slide show) in multiplayer with ~85 players.

Gentoo, 5.8.11 kernel, nvidia-drivers 455.23.04
Proton 5.0-9
980 Ti, i7 6700, 32GB RAM
3440x1440, medium settings, all special features off/unchecked (bloom, AA, etc)

I'm curious if this game just performs poorly in Linux. While the 980 Ti is hardly cutting edge these days, I'd think it could do medium with everything else turned off. I do have a working Windows install on another SSD so I can compare later...until I manage to get a 3080 anyway.

Also, exiting the game from within its own UI doesn't seem to fully stop the game. Steam still thinks it is running and I can see a bunch of processes still running. Using the Stop button from the Library screen in Steam fully stops the game after exiting from within the game's UI though.

sean@drudenhaus ~ $ ps -ef | grep -i squad
sean      6452  6451  0 03:14 pts/6    00:00:00 /usr/lib/python-exec/python3.8/python3 /home/sean/.local/share/Steam/steamapps/common/Proton 5.0/proton waitforexitandrun /home/sean/.local/share/Steam/steamapps/common/Squad/squad_launcher.exe
sean      6455  6452  0 03:14 pts/6    00:00:00 steam /home/sean/.local/share/Steam/steamapps/common/Squad/squad_launcher.exe
sean      6497  6451  0 03:14 pts/6    00:00:02 Z:\home\sean\.local\share\Steam\steamapps\common\Squad\squad_launcher.exe

For some the game drops to sub-20 fps when a new map is loaded. I think
this applies to playing the tutorial, and then loading a normal game.
Everytime you switch server or load a new round on a new map, restart the
game.

On Mon, Sep 28, 2020, 11:28 Sean Poynter notifications@github.com wrote:

I picked this up tonight having noticed it finally released out of early
access and seeing some successful reports on ProtonDB. Out of the box, I
got the typical EAC error, but was able to get everything work, albeit with
unplayable performance.

  1. First I tried the EAC files posted earlier
    (easyanticheat_wine_x64.eac.zip) with removing the write access bit from
    'all', but that didn't seem to change anything.
  2. Next I removed read-write permissions from the
    steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp directory.
    This resolved the EAC error, but then game would crash when loading a map
    with the infamous eventfd: Too many open files error.
  3. I added PROTON_NO_ESYNC=1 to the launch options to work around the
    too many files error and maps started loading properly.

I was able to play the tutorial and the last 5 minutes or so of a
multiplayer game (when the match ended). I didn't check any FPS numbers,
but performance seemed ok but not great in the tutorial and was straight
awful (perhaps 10 FPS if I had to guess--it was basically a slide show) in
multiplayer with ~85 players.

Gentoo, 5.8.11 kernel, nvidia-drivers 455.23.04
Proton 5.0-9
980 Ti, i7 6700, 32GB RAM
3440x1440, medium settings, all special features off/unchecked (bloom, AA,
etc)

I'm curious if this game just performs poorly in Linux. While the 980 Ti
is hardly cutting edge these days, I'd think it could do medium with
everything else turned off. I do have a working Windows install on another
SSD so I can compare later...until I manage to get a 3080 anyway.

Also, exiting the game from within its own UI doesn't seem to fully stop
the game. Steam still thinks it is running and I can see a bunch of
processes still running. Using the Stop button from the Library screen in
Steam fully stops the game after exiting from within the game's UI though.

sean@drudenhaus ~ $ ps -ef | grep -i squad
sean 6452 6451 0 03:14 pts/6 00:00:00 /usr/lib/python-exec/python3.8/python3 /home/sean/.local/share/Steam/steamapps/common/Proton 5.0/proton waitforexitandrun /home/sean/.local/share/Steam/steamapps/common/Squad/squad_launcher.exe
sean 6455 6452 0 03:14 pts/6 00:00:00 steam /home/sean/.local/share/Steam/steamapps/common/Squad/squad_launcher.exe
sean 6497 6451 0 03:14 pts/6 00:00:02 Z:\home\sean.local\share\Steam\steamapps\common\Squadsquad_launcher.exe


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/Proton/issues/938#issuecomment-699892614,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGTIIMQQLSBM6OSW3HNCQ2TSIBJLRANCNFSM4FSJAK6Q
.

Here's a new version of the binary blob downloader script for anyone who might be interested.

eac-download.zip

I've been theorizing, and figure i'd say something here, does anyone know if wine/proton supports pagefiles?

Yes and no. It's an operating system-level feature that also exists in Linux under a different name. In Linux it's called a swap partition or just swap for short.

The basic idea is the same in both OS's: if running programs want to allocate and access more RAM than you have physically available, then instead of replying "fuck you we're sold out" and calling for security the OS will fulfil the requests by redirecting accesses that exceed the RAM's physical limit to a chunk of hard disk space.

Performance-wise the speed of hard disk access is ridiculously slow compared to RAM. The only time you'd want that to happen is when the alternative is something very important and memory-hungry crashing.

I'm thinking it could be whats causing the fps drops; according to their support pages, -- https://offworldindustries.zendesk.com/hc/en-us/articles/360042382054-Memory-Pagefile-Issues -- not having one has caused similar issues of not having enough Vram on windows.

I don't know what on earth Windows and/or EAC does that causes that sort of logic to apply. Maybe an integrated GPU with a really small sliver of RAM for VRAM might lead to swap space being counted as more VRAM?

I picked this up tonight having noticed it finally released out of early access and seeing some successful reports on ProtonDB. Out of the box, I got the typical EAC error, but was able to get everything working, albeit with unplayable performance.

  1. First I tried the EAC files posted earlier (easyanticheat_wine_x64.eac.zip) with removing the write access bit from 'all', but that didn't seem to change anything.
  2. Next I removed read-write permissions from the steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp directory. This resolved the EAC error, but then game would crash when loading a map with the infamous eventfd: Too many open files error.
  3. I added PROTON_NO_ESYNC=1 to the launch options to work around the too many files error and maps started loading properly.

I was able to play the tutorial and the last 5 minutes or so of a multiplayer game (until the match ended). I didn't check any FPS numbers, but performance seemed ok but not great in the tutorial and was straight awful (perhaps 10 FPS if I had to guess--it was basically a slide show) in multiplayer with ~85 players.

Gentoo, 5.8.11 kernel, nvidia-drivers 455.23.04
Proton 5.0-9
980 Ti, i7 6700, 32GB RAM
3440x1440, medium settings, all special features off/unchecked (bloom, AA, etc)

I'm curious if this game just performs poorly in Linux. While the 980 Ti is hardly cutting edge these days, I'd think it could do medium with everything else turned off. I do have a working Windows install on another SSD so I can compare later...until I manage to get a 3080 anyway.

Also, exiting the game from within its own UI doesn't seem to fully stop the game. Steam still thinks it is running and I can see a bunch of processes still running. Using the Stop button from the Library screen in Steam fully stops the game after exiting from within the game's UI though.

sean@drudenhaus ~ $ ps -ef | grep -i squad
sean      6452  6451  0 03:14 pts/6    00:00:00 /usr/lib/python-exec/python3.8/python3 /home/sean/.local/share/Steam/steamapps/common/Proton 5.0/proton waitforexitandrun /home/sean/.local/share/Steam/steamapps/common/Squad/squad_launcher.exe
sean      6455  6452  0 03:14 pts/6    00:00:00 steam /home/sean/.local/share/Steam/steamapps/common/Squad/squad_launcher.exe
sean      6497  6451  0 03:14 pts/6    00:00:02 Z:\home\sean\.local\share\Steam\steamapps\common\Squad\squad_launcher.exe

3700x paired with a 1070ti. I'm rocking 70 to 100 fps in game. Only needed to do your second step.

I've been theorizing, and figure i'd say something here, does anyone know if wine/proton supports pagefiles? I'm thinking it could be whats causing the fps drops; according to their support pages, -- https://offworldindustries.zendesk.com/hc/en-us/articles/360042382054-Memory-Pagefile-Issues -- not having one has caused similar issues of not having enough Vram on windows.

Continuing from my previous reply:

When physical GPU VRAM runs out up under Proton/DXVK, the first thing that happens is that the driver and/or DXVK (I'm unsure what exactly) starts moving data back and forth between the GPU and system RAM. This is exactly the same basic mechanism that a Windows pagefile or Linux swap partition implements, but in this case we're not using the hard disk as a (crappy) RAM extension, we're using RAM as a crappy VRAM extension.

When Squad takes a dive down to 5-10 fps, what's happening is that the GPU is having to wait for transfers between VRAM and RAM. Even though RAM is blazingly fast compared to even the best NVMe SSD, from the GPU's point of view the latency of RAM access via PCIe is atrocious compared to the memory chips sitting right next to the GPU core.

I am now annoyed because I can't think of a way to rationalize how begging for an RTX3090 would help solve this problem. If anything I'd just not care about VRAM filling up ever again.

I picked this up tonight having noticed it finally released out of early access and seeing some successful reports on ProtonDB. Out of the box, I got the typical EAC error, but was able to get everything working, albeit with unplayable performance.

  1. First I tried the EAC files posted earlier (easyanticheat_wine_x64.eac.zip) with removing the write access bit from 'all', but that didn't seem to change anything.
  2. Next I removed read-write permissions from the steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Temp directory. This resolved the EAC error, but then game would crash when loading a map with the infamous eventfd: Too many open files error.
  3. I added PROTON_NO_ESYNC=1 to the launch options to work around the too many files error and maps started loading properly.

Point 3 here might be one of the primary bottlenecks in your case. You're disabling an optimization that actually has a large impact on performance.

First of all don't disable esync. Fix the error by increasing your system limit on open file descriptors instead. I don't know how you do it in Gentoo and/or your system, you'll need to google it.

I was able to play the tutorial and the last 5 minutes or so of a multiplayer game (until the match ended). I didn't check any FPS numbers, but performance seemed ok but not great in the tutorial and was straight awful (perhaps 10 FPS if I had to guess--it was basically a slide show) in multiplayer with ~85 players.

Gentoo, 5.8.11 kernel, nvidia-drivers 455.23.04

Make sure you're running a kernel that has the fsync patch set enabled, then Proton will use fsync instead of esync if it's available, and you need kernel-level support for that. (Also make sure you don't set any of the "disable fsync/esync" varibles.)

I'm sure there's a TkG-PDS kernel for Gentoo out there somewhere, go find it.

Proton 5.0-9

You could try Proton-GE instead of the vanilla upstream Proton. But this likely won't do much unless you're running on an fsync-enabled kernel with a more suitable CPU scheduler (like undead-PDS or MuQSS+ck).

980 Ti, i7 6700, 32GB RAM
3440x1440, medium settings, all special features off/unchecked (bloom, AA, etc)

Holy crap, 3440x1440? I can't do the math off the cuff but I'm pretty sure that's at least 100 pixels if not more! It's possible that the resolution plays a part here as well. Squad isn't the most optimized game out there.

Replying to the comment just before this one.

Any lead in how to fix this? Would like to test stuff?

Replying to the comment just before this one.

Any lead in how to fix this? Would like to test stuff?

I'm afraid I'm not sure what you mean. Fix what specifically?

Replying to the comment just before this one.

Any lead in how to fix this? Would like to test stuff?

I'm afraid I'm not sure what you mean. Fix what specifically?

I 'm thinking the issue is that its not clearing out the vram every time a new map loads, so, based on what you said, its then loading everything from ram so its lagging a lot. (that my theory anyways.)

Point 3 here might be one of the primary bottlenecks in your case. You're disabling an optimization that actually has a large impact on performance.

First of all don't disable esync. Fix the error by increasing your system limit on open file descriptors instead. I don't know how you do it in Gentoo and/or your system, you'll need to google it.

I did not realize it's actually an optimization. I set the limit to 65536 and removed the launch option; the game seems to load maps just fine.

Make sure you're running a kernel that has the fsync patch set enabled, then Proton will use fsync instead of esync if it's available, and you need kernel-level support for that. (Also make sure you don't set any of the "disable fsync/esync" varibles.)

I'm sure there's a TkG-PDS kernel for Gentoo out there somewhere, go find it.

You could try Proton-GE instead of the vanilla upstream Proton. But this likely won't do much unless you're running on an fsync-enabled kernel with a more suitable CPU scheduler (like undead-PDS or MuQSS+ck).

Thanks for the suggestions. I'll take a look into them.

(Note: I think that the topic you're referring to here isn't actually discussed in the message you quoted, so I'm removing the quoted part to make it less confusing.)

I 'm thinking the issue is that its not clearing out the vram every time a new map loads, so, based on what you said, its then loading everything from ram so its lagging a lot. (that my theory anyways.)

I agree. Based on the numbers DXVK reports it's obvious that the 2nd map gets loaded with almost all of the VRAM already allocated. Either Squad (UE 4.23) or DXVK or something is holding onto that memory in a way which differs from how things happen on Windows. I haven't come across any reports of this bug happening to any native Windows users, and there are a lot of people playing Squad who have 8 GiB or less VRAM.

The way DXVK deals with VRAM is most likely the core issue here. Quoting the author:

DXVK does not free once allocated memory blocks by design since doing so would require defragmentation, and is generally not very useful if the game needs more VRAM once again.

(Source: https://github.com/doitsujin/dxvk/issues/958)

It's all down to fragmentation, then.

It seems reasonable to assume that as Squad (or UE 4.23) runs it continuously allocates and frees small-ish chunks of memory, leaving behind "holes" which are available for new allocations but, due to the fact that they are sandwiched between two used address ranges, cannot be used for large allocations. As time progresses the total amount of unused VRAM stays the same but gets divided into smaller and smaller little "islands" in-between used memory chunks. Eventually it becomes impossible to find even a moderately long stretch of contiguous VRAM to give to the client, and the only option is to swap out to RAM.

If DXVK had a defrag feature that could either be manually triggered, or would be very, very smart in deciding when to activate, then maybe it would be possible to run a defrag pass at the right time when a map has been unloaded in Squad, and the next map load would behave as if the game had just been started.

I'm not saying I know what I'm talking about wrt. DXVK, because I sure as hell don't.

'm thinking the issue is that its not clearing out the vram every time a new map loads

It's not only when a new map loads.

It can happen on first run too.

For me, the new Fullujah map is unplayable, because after 10-15 min, that frame dropping starts.

'm thinking the issue is that its not clearing out the vram every time a new map loads

It's not only when a new map loads.

It can happen on first run too.

For me, the new Fullujah map is unplayable, because after 10-15 min, that frame dropping starts.

Yep same here. At some point on many maps - and especially when using one of the good rifle scopes - it's just all garbage. As time progresses and the game allocates and frees VRAM, the VRAM managed by DXVK gets fragmented and can't provide large enough contiguous address ranges on request.

I'll add I haven't had performance issues that couldn't be resolved with a
restart and some tinkering in the settings. I use a GTX 1050ti, I think
that's 4gb of vram.

On Tue, Sep 29, 2020, 09:08 Juuso Alasuutari notifications@github.com
wrote:

'm thinking the issue is that its not clearing out the vram every time a
new map loads

It's not only when a new map loads.

It can happen on first run too.

For me, the new Fullujah map is unplayable, because after 10-15 min, that
frame dropping starts.

Yep same here. At some point on many maps - and especially when using one
of the good rifle scopes - it's just all garbage. As time progresses and
the game allocates and frees VRAM, the VRAM managed by DXVK gets fragmented
and can't provide large enough contiguous address ranges on request.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/Proton/issues/938#issuecomment-700496708,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGTIIMSWL3OFJQMYSN4KZUDSIGBWNANCNFSM4FSJAK6Q
.

I have not experienced these issues with squad, but I have seen the exact same FPS drops in DCS world, typically after doing something that causes large textures to load, and usually after my pc has been running for a while. Game runs fine, then drops to <5 FPS until restart. When I check, the VRAM usage is at 100% in all those instances, though it also generally hovers around 90-99%.

https://github.com/doitsujin/dxvk/issues/958 this seems like a good explanation

Have you guys tried the "Fully load textures" option in the graphics settings? After turning that option on (I used to have it off for some reason) I was able to join six or seven different servers running different maps consecutively without restarting the game, and the performance did not degrade. I only joined empty servers or ones with few players on them and don't have time to test if a map ending and a new one starting still causes lag, though.

For context, I have an Nvidia 980 Ti with 6 GB video memory (iirc) playing at a 1080p resolution with graphics settings at Medium (except High view distance). I'm using Proton-5.9-GE-3-ST from here (the only reason it's not the latest version is that I've been too lazy to update).

Have you guys tried the "Fully load textures" option in the graphics settings? After turning that option on (I used to have it off for some reason) I was able to join six or seven different servers running different maps consecutively without restarting the game, and the performance did not degrade. I only joined empty servers or ones with few players on them and don't have time to test if a map ending and a new one starting still causes lag, though.

For context, I have an Nvidia 980 Ti with 6 GB video memory (iirc) playing at a 1080p resolution with graphics settings at Medium (except High view distance). I'm using Proton-5.9-GE-3-ST from here (the only reason it's not the latest version is that I've been too lazy to update).

I have turned "Fully load textures" ON and lowered textures to Low. I still get vram full in the second match and low fps.
Nvidia 1070ti 8GB
3700X
SSD

I have turned "Fully load textures" ON and lowered textures to Low. I still get vram full in the second match and low fps.

Well, it seems to be working on my end. Just finished a match properly on a full 100 player server, loaded into the next map and performance is as expected (about 90-100fps).

EDIT: played through the second map and into a third one, still no performance drop -- FPS remained >100 at the beginning of the third map (and then I quit because I need to sleep). It seems at least on my system this option fixes the issue. I can even change graphics settings mid-game without ruining performance. Fingers crossed this lasts and works for others too.

I should say I used to have the performance problem until I turned this setting on, and last experienced it two days ago while playing. I don't want to try turning the setting back off to see if it still happens without it though, just to make sure I don't ruin any voodoo that might be happening :-).

Here are my exact graphics settings:

20200930040028_1

And system specs for good measure, let me know if there's something more specific you need to know:

  • Nvidia GTX 980 Ti w/ 6 GB VRAM running driver version 450.66
  • 32 GB RAM
  • AMD Ryzen 3700X
  • Fedora 32 with KDE
  • Proton-5.9-GE-6-ST

I played some more games today, and here's some more things I noticed:

  • The performance/memory leak bug can still occur, but very rarely and definitely not every map change like it used to. I had it occur twice today. The first time it happened on the first map I loaded after launching the game. I suspect it must've had something to do with switching to another virtual desktop during the loading screen, because that's what I had done. The second time I triggered it was by changing graphics settings mid-game on Fallujah (which seems to be by far the most demanding map on my system), but changing graphics settings doesn't always seem to cause it for me anymore; maybe it's just some settings like textures.

  • Unlike before, when it does occur the performance degradation goes away just by disconnecting from a server and then reconnecting, or by joining another server without disconnecting first. It used to linger until the game was restarted for me, but now going through a loading screen seems to be enough.

  • I went through like 6 or 7 consecutive map changes on the same 100 player server without reconnecting and had zero performance issues. I used to have to restart after every single map change without fail because of the performance issue, but this is most certainly not the case anymore.

Anyway, I went back and turned the "Fully load textures" setting back off... and I could still go through multiple map loading screens (by joining different servers repeatedly) without restarting the game and didn't get the performance degradation I used to! So I guess me changing that setting was just pure coincidence, and something else must've happened that made the issue go away.

Was there a Squad update? According to SteamDB, no. I haven't updated my system in the past week either. I wonder what's different. Is everybody else still seeing the performance issue occur as usual?

edit: random thought, are you guys playing on Fullscreen or Borderless? In some recent games that seems to make a difference, even though Linux treats both the same (but presumably DirectX doesn't). nope, went back and tested that too and doesn't seem to be about that either.

Performance issue aside, there appears to now be an intermittent crash bug. It's probably related to graphics drivers, going by this line in the system journal:

kernel: NVRM: Xid (PCI:0000:09:00): 31, pid=968265, Ch 0000004e, intr 10000000. MMU Fault: ENGINE GRAPHICS GPCCLIENT_T1_3 faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_READ

Since this is error message seems to be related to Nvidia drivers, this could be an Nvidia-specific issue. I'm reporting it on dxvk's bug tracker because that's where similar issues appear to have lived in the past.

I have not experienced these issues with squad, but I have seen the exact same FPS drops in DCS world, typically after doing something that causes large textures to load, and usually after my pc has been running for a while. Game runs fine, then drops to <5 FPS until restart. When I check, the VRAM usage is at 100% in all those instances, though it also generally hovers around 90-99%.

doitsujin/dxvk#958 this seems like a good explanation

is anyone here using the AMDVLK driver: https://github.com/doitsujin/dxvk/issues/1103#issuecomment-595302287 ?

Performance issue aside, there appears to now be an intermittent crash bug. It's probably related to graphics drivers, going by this line in the system journal:

kernel: NVRM: Xid (PCI:0000:09:00): 31, pid=968265, Ch 0000004e, intr 10000000. MMU Fault: ENGINE GRAPHICS GPCCLIENT_T1_3 faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_READ

Since this is error message seems to be related to Nvidia drivers, this could be an Nvidia-specific issue. I'm reporting it on dxvk's bug tracker because that's where similar issues appear to have lived in the past.

Just to go on this, I had the same issue after around 20-30 minutes of playing in-game. It just froze and locked up.

@reaply try setting Squad's launch parameters (right click > Properties in Steam) to DXVK_LOG_LEVEL=info %command%. Then when it crashes look for the dxvk logfile in the same directory as the game executable /steamapps/common/Squad/ and either post it here or even better make a bugreport on https://github.com/doitsujin/dxvk/issues/

I haven't gotten around to doing this myself yet, haven't had the time to play the game in the past week to actually reproduce the crash (doesn't help that it seems to be completely random...), and it could very well just be a bug with Nvidia drivers (though I doubt it, since AMD users apparently also have crashes occasionally), but similar issues have been reported on dxvk's bugtracker in the past and they'll probably know better than anyone here anyway.

There was a new version of the Nvidia drivers released recently and it's possible that might help with this crash too. It hasn't landed in the RPMFusion repos where I get my drivers from yet; I'm waiting on them to update before trying it myself.

I've found a possible workaround for the performance degradation problem. If you get bad framerate after loading into a map or changing graphics settings, try opening the console and typing in HighResShot 4. This command takes screenshots at a high resolution, which apparently causes some sort of a soft graphical reload that can solve the performance issue. I don't know if it matters what resolution you take the screenshot at, but going all the way to 8 just crashed the game for me.

Based on my sample size of two games it doesn't work every time, but you can just keep retrying until it does. It's possible the game has to run for a while (with garbage FPS) before this trick starts working, I dunno. Some abnormal stuttering can also remain even after this fix, but it's better than nothing.

Note that this creates big PNG files under your wineprefix, so unless you want to keep the screenshots, you might want to do the following:

  1. Go to /steamapps/compatdata/393380/pfx/drive_c/users/steamuser/Local Settings/Application Data/SquadGame/Saved/Screenshots/

  2. chmod a-w WindowsNoEditor to remove write permissions from the folder the screenshots go in. Create the folder if it doesn't exist (ie. you didn't take any screenshots yet).

This seems to cause the command to still run and soft-reload the graphics but the big screenshot files don't actually get written to disk anymore.

@brndd and @reaply, what driver version were you on when you got that Xid 31 error?

@imaami 450. I updated to 455 a couple of days ago, but haven't had time to play the game enough to conclusively say whether or not there was any change wrt. the crashing.

I'm currently having an issue with my microphone not appearing in game. My OS (Pop!_OS 20.04 LTS) detects it, but the game does not. Any idea of what kind of troubleshooting steps I could try?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Dakunier picture Dakunier  ·  3Comments

lumni1968 picture lumni1968  ·  3Comments

kforney picture kforney  ·  3Comments

shaphanpena1 picture shaphanpena1  ·  3Comments

shanefagan picture shanefagan  ·  3Comments