ValveSoftware / Proton

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

Ubisoft Connect integration GUIDE / recover games after Proton switching / all games now only work with UC + Proton 8.0-5 / 7.0-6 NOP #6765

Open stixholder opened 1 year ago

stixholder commented 1 year ago

UPDATE: 'Ubisoft Connect' itself now works with Proton 8.0-5 to Experimental, provided that the Steam client has been switched to "Offline Mode" before. There are some things to consider and a few manual steps are required during installation, though.

I've worked out a guide, how to add 'UbisoftConnect' to Steam's game library (and integrate existing Ubisoft game installations) - this should work more predictably, at least it does with my setup - and also found and documented some Caveats and required manual steps not considered before, see below.

Also, previously, 'Assassin's Creed Black Flag' and 'Syndicate' would only work with Proton 7.0-6. Now, there seems to be a regression in either Proton 7.0-6, or 'UbisoftConnect' - they won't work together anymore (UC hangs at startup, with Proton 6.x it will crash).

Instead, Proton 8.0-5 now seems to be the working stable version of choice by now, for both 'Assassin's Creed' Branches, as well as for 'Far Cry 3, 'Blood Dragon' and 'Primal'.

I managed set up and run 'Assassin's Creed Black Flag' with Proton Experimental on another prefix as well. It showed an old 'stuttering' graphics rendering glitch after some time playing, though, as I reported here:

ACBF Thread. Whether this would also occur on P8.0-5, I cannot yet confirm.

'Ubisoft Connect' to Steam Library installation/integration guide:

1) Get the latest 'UbisoftConnectInstaller.exe' from Ubisoft 2) switch Steam to 'Offline Mode' (ports may conflict with 'UbisoftConnect' during its installation and Update) 3) save 'UbisoftConnectInstaller.exe' to the desired target folder, e. g. ~/games/Uplay 4) run SteamClient > Library > Click 'Add a Game' (left lower corner) 5) Click 'Add a non-Steam Game' > Click 'Browse' > ~/games/Uplay/UbisoftConnectInstaller.exe 6) in 'Games' right-click on 'UbisoftConnectInstaller.exe' > 'Properties' > 'Compatibility' > set 'Force the use of a specific Steam Play compatibility tool' > choose 'Proton Experimental' 7) run 'UbisoftConnectInstaller.exe' > choose parent install folder '~/games/Uplay/' > OK > wait for installation + Update + re-launch 8) in 'UbisoftConnect' > Games (Library) > for your already-installed Games each: a) click '...' > 'Properties' > 'Installation' > click 'Find installed Game' b) choose Game folder location, e. g. 'Workstation > I: > /Uplay/Assassin's Creed IV Black Flag' > OK > wait... > Close c) (optional: verify Game files, if errors occur during start or playing the Game) d) (optional: in UC click Profile > Settings > General + Notifications + UI > click away Ad + Social BS + Crashreports + UC In-Game UI + Account Linking reminder) 9) run and wait for Games to update, check if everything works 10) Profile > Leave (close UC) 11) in Steam Games > right-click UC > Properties > Shortcut > change 'Target' link from Installer to e. g. '"/media/USER/games/Uplay/Ubisoft Game Launcher/UbisoftConnect.exe"' and 'Start in' to '"/media/USER/games/Uplay/Ubisoft Game Launcher/"' (MIND THE SURROUNDING DOUBLEQUOTES, IF PATHS CONTAIN SPACES, OR ELSE UC WILL NOT RUN!) > rename Shortcut to 'Ubisoft Connect' 12) close Properties and re-run UC, wait for Updates (when it hangs at 1st try, close UC and re-run), check if everything runs again

The problem is obviously, that Steam doesn't recognize the nature of the 'UbisoftConnectInstaller', or more precisely, it only allows to run an executable once, at the time where 'Add a non-Steam Game' creates a new prefix, which is done explicitly for UC, not the games themselves - these will be installed by UC / into a custom folder and always run with the Proton version, the UC prefix was configured with.

Plus, the executable and execution folders in Steam's UC entry will not get automatically updated to the real installation subfolder and double-quoted accordingly - this needs to be done manually, after UC was installed.

If Steam allowed for creating a Proton prefix first, THEN running executables in it multiple times, life could be easier, e. g. for installation scenarios like this and also for manual installation of upgrades and similar, as Winetricks allows. There's a project called 'Protontricks', but Steam hasn't integrated any of its' features.

All your installed games and progress will vanish, after switching forth and back to and from another Proton version for UC's prefix, like to 8.0-5 and back, although the game files and data are still in place - you can get them back the same way, as described under 6), provided, the prefix isn't damaged by this action, or by running the Installer in it again.

For the 'AC' titles, Steam places them under the corresponding Proton prefix, with which 'Ubisoft Connect' was running at the time, the game was installed, e. g. into: _/media/.../Steam/debian-installation/steamapps/compatdata/3630262936/pfx/drivec/users/steamuser/Documents/...

For the 'FC' titles, they go into: /.../Documents/My Games/...

For 'Ubisoft Connect' and a few games, some configurations are also stored under: /media/.../steamuser/AppData/Local/My Games/... .../Ubisoft Game Launcher/ .../Far Cry 3/

There'll be a separate prefix for every Proton version tested with the 'Ubisoft Connect' installation, including configurations for all corresponding games activated with it, likewise.

If unsure, which prefix folder belongs to what, check the file 'version' directly under the prefix' parent folder (named only with a number), e. g.: /media/.../Steam/debian-installation/steamapps/compatdata/3630262936

The actual 'Ubisoft Connect' and game installations may reside on another partition e. g. in: /media/USER/games/Uplay/... .../Ubisoft Game Launcher/ (where Ubisoft Connect stores game configurations, creds, savegames and more) .../Far Cry 3/ ...

You should always switch Steam to 'Offline Mode', before running UC, or have the latter turned to 'Offline' before last time closing - it but has no real 'Offline Mode', though.

Generally, 'UbisoftConnect' itself feels clunky, the buttons will respond laggy and have serious focus and minor rendering issues.

To run my 'Far Cry' AND 'Assassin's Creed' games, I'll need to use Proton 8.0-5 for UC, currently, it seems to be the only working combination for all my UPlay games - the 'Far Cry' titles currently will work with Proton Experimental, though. There's some DirectX11 crashing issue with FC3 in any case - see below.

EDIT: After installing 'Ubisoft Connect' again in a Proton Experimental prefix and running Far Cry 3 from there, the game would start once, with low resolution. After setting any graphics options that trigger a restart, e. g. setting correct native resolution (1920x1080), or after manually re-starting after 1st start, FC3 will crash.

After that, the game keeps hanging at the FC3 boot logo, with animated circle icon. After checking game files in Uplay, the game would try to re-install 'Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17' and 'Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219'. Then, same symptom again.

CAUSE AND TEMPORARY WORKARAOUND:

The reason seems to be a problem with DirectX11 (on by default), or any graphics option it activates. When FC3 crashes, the following property needs to be set in

/media/.../Steam/debian-installation/steamapps/compatdata/3630262936/pfx/drive_c/users/steamuser/Documents/My Games/Far Cry 3/TutorialProfile.xml

UseD3D11="0"

This results in a fallback to DirectX9, with which the game will eventually run. So, either a DirectX11 dependency isn't fulfilled (e. g. missing DLL, or Redistributable), or there's a bug in either Proton/Wine's or FC3's implementation.

Interestingly though, setting DirectX11, 'ULTRA' quality, MSAA 8 and HDAO in 'Far Cry: Blood Dragon' - which should have the same technical base than FC3, with the same engine - works fine without crashing.

SIDE NOTE: Upon installing and launching 'Assassin's Creed Unity', the game would start 'Updating' right after starting a new campaign, at high gc engine / 250W energy consumption and ~1 of 50% per minute update speed (presumably loading precompiled shaders or similar) - really, who's implementing such lunatic crap features?

kisak-valve commented 1 year ago

Hello @stixholder, please add PROTON_LOG=1 %command% to the game's launch options, reproduce the regression, and attach the generated $HOME/steam-$APPID.log to this issue report as a file. (Proton logs compress well if needed.) Also, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

stixholder commented 1 year ago

Now, with things investigated more in-depth, things should be easier to understand.

Switching Proton versions WILL create an entirely new prefix for each tested version with 'Ubisoft Connect' and for each prefix, the games need to be added separately (as described above).

The latest Proton 8.0-5 now seems to be the most compatible stable version, Experimental should work as well, as mentioned and Proton 7 stopped working, while Proton 9 seems not to work for the 'Assassin's Creed' titles (P9 probably also not for Ubisoft Connect).

My System Specs should already be known; if any additional information is needed, please tell.

But I hope, there's a means of uploading the (relevant) parts of "System Information" in a secure manner, since they contain potentially security-relevant, detailed information about my system. Those are pretty extensive and detailed information about all kinds of system internals of my box and installation, which may be subject to profiling abuse and other bad things. I don't quite like the idea of putting those on public display, they really don't belong there.

Basically, there're multiple Steam library folders in my setup, with two main large libraries located on different partitions (I've moved some games previously to the larger one).

From the vanished Ubisoft games, I was able to restore the 'Far Cry' installations, as described above, in the folder: /media/.../games/Uplay/Far Cry 3 Blood Dragon/

Which in 'UbisoftConnect' is then shown as: I:/Uplay/Far Cry 3 Blood Dragon/

Reviving at first didn't work with 'Assassin's Creed Black Flag', by navigating to and selecting: Workstation/C:/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/games/Assassin's Creed IV Black Flag/

and neither directly inserting the real location URI on the other partition (navigating there doesn't work, since the very basic Wine 'Explorer' doesn't show hidden files and folders):

_/media/.../.steam/debian-installation/steamapps/compatdata/3267891790/pfx/drivec/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/games/Assassin's Creed IV Black Flag/

Here, the Client complained about possibly corrupted files, insisting on re-installation. Changing 'UbisoftConnect' > Settings > Downloads > 'Default game installation location' from: C:/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/games/

to the absolute path on the other partition didn't change anything. The 'Game installer cache location' folder didn't exist, though: C:/Program Files (x86)/Ubisoft/Ubisoft Game Launcher/cache/installers/

The 'Locate installed game' option in 'UbisoftConnect' seems to be only available in Ubisoft 'Online mode' (great job, Ubisoft), which only works, when Steam is in 'Offline mode' - online DRM is really the worst, especially, when implemented in such a crappy way.

Plus, each time UC was started, I needed to shut down both UC and Steam, in order to be able to change the Proton version again in the 'Compatibility' drop down menu. This aggravating behavior now seems to have been fixed by Steam.

I can't figure out, why this didn't work with AC4BF, maybe there's a problem with the hidden path part, maybe it's too long, maybe files got really corrupted either by other Proton version or by 'UbisoftConnect' updates, but somehow I doubt it.

Probably there was just some basic folder re-linking problem with 'UbisoftConnect' and/or deviations from either Ubisoft's default installation path and/or using Steam's alternative library folder location.

Another oddity that I encountered, was that in Wine's 'Explorer' (when navigating to another location in UC) all chars exceeding the visual input line were cut off on pasting a long path - I needed to expand the Explorer window to fit the large path first. Also, the UC client always overlapped the popup confirmation windows when changing the game location paths and I needed to move the main UC client window out of the way first, to proceed.

That said, the folder structure is a really overly complicated mess as it is, for everything connected to Steam, for which there's no help or documentation I know of, and this is a REAL pain the neck and bound to cause major headache in such situations and for troubleshooting.

Now, with different library folders things got even more messed up and I've got at least one residual library folder I can't remove, because of some non-movable 'Common Steam Distributable'.

Steam should really see to properly clean up everything after moving library folders and for broken or removed games and their prefixes.

Anyway, after switching back to Proton 7 (before it stopped working) and finally resorting to 'Download' AC4BF again, the installer started and then, after selecting the previous installation location, surprise, NO downloads happened (stayed at 0%), instead 'locating files' (which previously and repeatedly failed over the dedicated link below the download button) was displayed and after some 5 mins., the game could be started again - after 2 tries: 1st installing libs like DirectX and .NET again and then starting the game anew. Even the saved game status was back.

Still, things look pretty flaky and not really stable - with each Steam/Proton or Uplay update, so it seems, some, or all games might stop working or vanish (see as described above).

StackDoubleFlow commented 1 year ago

Hi @kisak-valve, I'm able to reproduce this issue. System Information steam-17122851684997922816.log

stixholder commented 1 year ago

UPDATE: @kisak-valve After upgrading my system with Kernel 5.15.x and Mesa 22.5.x, the EA App will now work with Proton 8, too. I didn't try to switch back or forth again for now (due to the long download times), but I presume, the vanishing effect for games is still happening.

UPDATE: With the current Kernel 5.15.0-107, Driver 6.4, Mesa 23.2.1-1ubuntu3.1~22.04.2, polaris10, LLVM 15.0.7, DRM 3.42, and Proton 8.0-5, the EA App and Crysis 3 will run (9.0-1 seemed not to work with the EA App, still).

In 'Ubisoft Connect', there's an option to re-discover games, that have previously been installed and 'forgotten', after switching to another Proton version (see updated guide above), which saves a huge amount of time and bandwith. After that, the game will immediately be available for gaming again.

'Ubisoft Connect' (actually its starting always the installer first) was dysfunctional after trying to switch forth and back to/from Proton 9.0-1 / 8.0-5 / Experimental for some weeks. Today, after starting the installer again, it mysteriously began updating itself and was back running again (Proton 9.0-1). Perhaps the Steam Client update introduced some (as always) undocumented fix, or a system update sometime back fixed a regression. No idea, what happened.

I investigated further and worked out a proper sequence of steps for successful installation/integration of UC into the Steam Library (see guide).

Currently, Proton 8.0-5 seems the only version working for all my games, including 'Assassin's Creed', provided, I wouldn't use some yet-to-discover video settings culprit, e. g. for 'Far Cry 3', that will make the games stop working again.

With a higher Proton version (and/or flaky video effect setting?), 'Assassin's Creed Black Flag' will start, but at the beginning of the game, where the hunt for the Assassin on the first island begins, the game crashes after a few steps towards the path ahead and will tear down the whole Desktop (Cinnamon 6.0.4), including all running programs, requiring a re-login.

'Assassin's Creed Syndicate' will even crash after a few seconds at the 'Ubisoft' starter screen, albeit only crashing itself.

'Far Cry: Blood Dragon' and 'Far Cry: Primal' seemed to run Ok here, still.