Launchers. Gotta love 'em right? Major publishers just love to make Steam Deck and Linux gaming that little bit more difficult. Ubisoft Connect broke again but Valve is here to save the day.
You might have noticed recently your Ubisoft games stopped working with some kind of error message when trying to load. Thankfully it didn't take Valve long to solve, with a new release of Proton Experimental now live from August 1st with the single fix noted being "Fixed Ubisoft Connect not working after its recent update". So you'll just need to switch your Ubisoft games over to Proton Experimental to get them working again.
Just head to your Downloads and you should see an update ready for Proton Experimental.
Here is For Honor now working for example:
Direct Link
How to change your Proton version:
Steam Deck:
- Pick a game in your Library and head to the little cog icon on the right.
- Click Properties, then Compatibility on the left.
- Make sure the tickbox is done, then select Proton Experimental from the dropdown.
On a Linux desktop:
- Right click a game, go to Properties.
- Compatibility on the left.
- Make sure the tickbox is done, then select Proton Experimental from the dropdown.
Quoting: Dr_Cox1911Hm, how would I do this if I run e.g. Anno 1800 in Lutris? I currently use the `lutris-GE-Proton8-12-x86_64`.
Either wait until Proton-GE syncs with valve again and update, or, if you have Lutris 0.5.13+ you should be able to choose Steam's Proton Experimental as a Wine runner in Lutris. It should show up in the drop list in the game's Runner Options (may want to enable Advanced view so you can see all the fields)
Quoting: PenglingUbisoft Connect? More like Ubisoft Inept, amirite?I suddenly exhaled from my nostrils
https://github.com/ValveSoftware/wine/commit/2ce886d2ccd9073df2e1c174ba4969bf061b3c9f
ntdll: HACK: Enable WINE_SIMULATE_WRITECOPY for UplayWebCore.
dlls/ntdll/unix/loader.c
env_str = getenv("WINE_SIMULATE_WRITECOPY");
if (env_str) simulate_writecopy = atoi(env_str);
+ else if (main_argc > 1 && strstr(main_argv[1], "UplayWebCore.exe")) simulate_writecopy = TRUE;
else if (sgi) simulate_writecopy = !strcmp(sgi, "1608730") /* Dawn of Corruption */
|| !strcmp(sgi, "1680700") /* Purgo box */
|| !strcmp(sgi, "2095300") /* Breakout 13 */
|| !strcmp(sgi, "2053940") /* Idol Hands 2 */
|| !strcmp(sgi, "2176450"); /* Mr. Hopp's Playhouse 3 */
Now that's a hack if I ever saw one. Look how they did it, adding a separate else (the line with the + has been added) for the name of the executable instead of by appid. It may have to be only for that .exe because this can cause problems (hence, it's never enabled by default)
What "simulate write copy" does is emulate how Windows loads dlls into memory more closely. Windows will load a dll into memory and then all applications use the same copy. HOWEVER, if the application modifies the dll in memory, then Windows will create a copy. Some applications CHECK this condition to see if it's already been modified and will fail if the info they get is not valid. These applications need Wine to emulate this behaviour.
If I'm understanding this correctly, WINE_SIMULATE_WRITE_COPY should be the same as this Wine Staging environment variable
STAGING_WRITECOPY=1
However, they might not be appropriate to add to launch options as it's possibly only UplayWebCore that should have it.
Last edited by Grogan on 2 August 2023 at 10:35 pm UTC
When I play that tonight, I'm going to pretend every headshot is Ubisoft :-)
Quoting: Dr_Cox1911Hm, how would I do this if I run e.g. Anno 1800 in Lutris? I currently use the `lutris-GE-Proton8-12-x86_64`.
Also, another thing you could try is to just add that environment variable to the game configuration
WINE_SIMULATE_WRITE_COPY=1
As a key/value pair in Lutris, you'd add it like this. It's a bit odd in how the dialog works, which is why I'm showing the screenshot. I just picked one to demonstrate, I don't really use that for EA App.
Scroll down to Environment Variables and click Add. Enter the key WINE_SIMULATE_WRITE_COPY in the left field and click away from it to make sure it's stored (It's easy to lose the text and have to enter it again lol). Then do the same with the value 1 in the right field. Save the settings.
That may be all you need to do. It's possible other executables might not work (the hack is specific to UplayWebCore.exe) but my guess is that it should be fine to set that environment variable for the game session.
Last edited by Grogan on 3 August 2023 at 12:50 am UTC
Quoting: GroganAlso, another thing you could try is to just add that environment variable to the game configuration
WINE_SIMULATE_WRITE_COPY=1
Just tried this with Anno 1800 and unfortunately I still get the same behavior (transparent window with supposedly uconnect trying to launch) and log entry:
lutris-wrapper: Anno 1800
Started initial process 6745 from gamemoderun /home/drcox1911/.local/share/lutris/runners/wine/lutris-GE-Proton8-12-x86_64/bin/wine /home/drcox1911/Games/anno-1800/drive_c/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/UbisoftConnect.exe uplay://launch/4553/0
Start monitoring process.
gamemodeauto:
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
Initial process has exited (return code: 0)
Quoting: Dr_Cox1911still get the same behaviour...
Well, Glorious Eggroll is no slouch, there's a new one (7 hours old) you can extract and drop in.
https://github.com/GloriousEggroll/wine-ge-custom/releases/tag/GE-Proton8-13
These are builds intended for Lutris.
On my system, the location to put that in would be
$HOME/.local/share/lutris/runners/wine
I've also heard of it being somewhere like
$HOME/.var/app/net.lutris.Lutris/data/lutris/runners/wine <--- Steam Deck, PopOS! (probably fatpacks)
Last edited by Grogan on 3 August 2023 at 6:13 am UTC
Quoting: Mountain ManThis is the one problem I have with Proton, that other companies can break it, and it falls on Valve to fix it. I have trouble believing this will be sustainable over the long-term.
Well it's the same thing with proton we are all relying on valve not getting bored and pulling the funding. But I think we are safe hell they funded proton when steam deck wasn't a thing and now there are more than a million units sold. All running Linux can't see valve getting bored of the extra cash rolling in.
But that's kinda the point of proton developers who had zero intentions of doing a Linux version do not have to pay a penny for a Linux version. it's all down to valve to fund fixing issues in proton. If a game gets borked after an update well buyer beware right you are playing on a unsupported platform.
See more from me