Open felschr opened 6 years ago
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:
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.
@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.
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
withwin64
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 thecontent-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.
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/