ValveSoftware / Proton

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

Far Cry 3 (220240) #727

Open rdlf4 opened 6 years ago

rdlf4 commented 6 years ago

Launching Far Cry 3 via Steam Play makes a Uplay window to pop up and request that the user logs in at least once before we can use offline mode. Because games running via Steam Play do not connect to a network (so far), that Uplay window keeps the game from starting. Typing in username and password and then hitting Log in button won't change anything.

Steam System Info: https://gist.github.com/rdlf4/b77e018feb5104584927851c448f5a63

uplay

tingvarsson commented 6 years ago

@kisak-valve You are perhaps already aware but it therefore applies to all Uplay games (Assassin's Creed, Far Cry, For Honor, etc) And I've seen similar issues for games requiring Origin as well.

Kzimir commented 6 years ago

Wine < 3.15 needs patches from Staging to have the possibility to connect correctly on UPlay.

rdlf4 commented 6 years ago

@berillions Could you recommend a PPA that provides an updated Wine version which connects correctly to Uplay? If those patches need to be applied manually, could you give me a URL to point me to the right direction? I need some more clarification on this.

Kzimir commented 6 years ago

You can use the official wine repository for Ubuntu : https://wiki.winehq.org/Ubuntu

rdlf4 commented 6 years ago

Thanks. As much as I'd like to go add this PPA and update my Wine, that'd be way too easy. There's gotta be more to it than just that, right?

dkoukoul commented 6 years ago

I can report the same issue. Tried installing uplay under wine-staging 3.14 (on Ubuntu 18.04) and I can log in normally. From there it installed Steam (Windows version) and I can launch the game this way. But as soon as the game runs past the video intro it crashes with in a few seconds. I hope this helps resolve the issues.

NanoSector commented 6 years ago

Seems to be related to #172 .

P4NCH1 commented 6 years ago

Well, we'll have to wait until they add to Proton a possibility to let Uplay connect like @berillions says

HughPH commented 6 years ago

Adding my quarter-ounce of weight to this, I'd like to be able to play Fractured But Whole.

HughPH commented 6 years ago

I'd like to play Fractured But Whole, which also requires UPlay. Pretty sure this is about UPlay keeping games from working, so don't mark my comment as off-topic. It's very much on-topic.

HughPH commented 6 years ago

@kisak-valve Is it worth merging in these? https://github.com/ValveSoftware/Proton/issues/172 https://github.com/ValveSoftware/Proton/issues/1662

lox-enterprises commented 6 years ago

There is some progress on this issue, you can now select 'Proton 3.16 Beta' as 'Compatibility tool' in the Steam Play settings. This solves the issue of not being able to log in (I guess Proton versioning follows the Wine versioning so it's now on par with Wine 3.16, which makes it able to connect).

However... after logging in, it says 'Initializing...' and after a while it comes back telling me 'A Ubisoft services is currently unavailable'. I am able to then switch to offline mode, but it does not show the games from Steam under 'Games', even though I can verify online (on their site) the accounts are linked.

dreamer commented 6 years ago

To work past "Initializing" screen you need to have 32-bit gnutls linked as described in #162.

Salamek commented 6 years ago

OT: @Yoshi2889 your avatar makes me nervous :smile:

lox-enterprises commented 6 years ago

@dreamer I've tried the symlinking, doesn't solve it for me. I'm trying Assassin's Creed and it's the exact same situation as described here: https://github.com/ValveSoftware/Proton/issues/1757 (comments mention symlink doesn't solve it)

dreamer commented 6 years ago

@1202software what symlink exactly have you created and where? Did you link to 32-bit version of gnutls30? What distribution are you using? I have Uplay working correctly for Valiant Hearts by installing corefonts and linking to gnutls (and no other tweaks); linking to 64-bit version or creating link with wrong name won't solve the problem.

lox-enterprises commented 6 years ago

@dreamer I'm on Arch, so I used:

sudo ln -s /usr/lib/libgnutls.so.30.14.11 /usr/lib/libgnutls.so.26

...as per this comment: https://github.com/ValveSoftware/Proton/issues/162#issuecomment-425779454

I'm not even sure it's a connection issue, because it does log me in (which requires a working internet connection).

dreamer commented 6 years ago

@1202software You linked 64-bit library. Arch stores 32-bit libs in /usr/lib32. Install lib32-gnutls and fix your link - it should make Uplay work for you :)

[edit] also, avoid placing your link in /usr/ - it's better to create it in ~/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/.

lox-enterprises commented 6 years ago

@dreamer Yes, that's it! I did have the lib32-gnutls package installed, but it required the symlink. Also, as you suggested, I put the symlinks in the Steam-directory.

So anyone using Arch, with Proton 3.16 as compatibility tool, should get it working with:

sudo ln -s /usr/lib/libgnutls.so.30.14.11 ~/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64/libgnutls.so.26 sudo ln -s /usr/lib32/libgnutls.so.30.14.11 ~/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libgnutls.so.26

I will add it to the post about Assassin's Creed as well, because I now verified you can get it running fine with Steam/Proton. Thanks for your help!

dreamer commented 6 years ago

For users of other distributions:

Creating link just to lib in /usr/lib/ may or may not work, depending on what game needs and what distro puts in there ;)

SleepProgger commented 6 years ago

Can confirm on debian stretch. Using Proton 3.16-3 Beta and creating the links for gnutls worked. The steam path is different tho and i linked libgnutls.so.30 which itself is a link to the real version. This might make sense if there are minor library updates.

ln -s /usr/lib/x86_64-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_64/libgnutls.so.26
ln -s /usr/lib/i386-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libgnutls.so.26
legluondunet commented 6 years ago

now with libgnutls tweak we can connect to Uplay but:

Someone has better results?

dreamer commented 6 years ago

@legluondunet Uplay window being transparent will be fixed once you install corefonts. Let Uplay install Windows Steam client (just choose some new directory), but DO NOT let installer run Windows Steam (there's no reason to). Once installation will be done, Uplay will work and login normally.

kakra commented 6 years ago

@dreamer This is how far I've come now (with my own wine-3.19-based Proton build). But the game still won't start. It just opens a black window after the splash logo, then closes. The wine processes stay running, closing Uplay from the systray doesn't fix this.

So we have two new problems:

  1. The way Uplay titles start and stop is somewhat incompatible with how Proton expects titles to work. Not sure how to fix it but it could be a major inconvenience for many people.
  2. Something in wine/Proton is still incompatible with the game itself - at least for me.
ghost commented 6 years ago

I used a crack to overcome signing in to uplay, the game works great.

kakra commented 6 years ago

Oh yeah, here we are again... DRM aka digital restrictions management drives legal buyers into illegal actions... :-(

rdlf4 commented 6 years ago

There we go again, posting this to let the subscribers (and hopefully Valve too) know where we are with this F-ing Uplay DRM:

After launching the game: Step 1: input my credential step 2: wait for a while

error message. >> If I hit try again: It says initializing... then takes forever Same error message as before. >> If I hit go offline: Window goes away and then comes back It says logging in, then window goes way, then comes back up, telling me I need to log in at least once. I hit OK and then I'm taken back to the initial email and password window. And in order to make sure Uplay is actually connected and talking to its servers, I tried an incorrect password and it tells me it's wrong. If I type in the correct password, I go back to step 1. SteamPlay 3.16-4 In a nutshell, yes, Uplay now talks to its servers. But we're stuck in a loop bc it just won't launch the game. After quite some time, and some Proton versions later, one would expect this to go away by now. One would be so wrong..
lox-enterprises commented 6 years ago

@rdlf4 You could try reinstalling the game in Steam. I had a similar issue, where after an update the game would revert to the error you describe. Reinstalling solved it. Also, redoing the symlinking described above might help.

rdlf4 commented 6 years ago

@1202software What Proton version are you using?

lox-enterprises commented 6 years ago

@rdlf4 Same as yours! My game broke because of a Steam update even though the Proton version remained the same.

rdlf4 commented 6 years ago

@1202software Did you link to 32-bit version of gnutls30? What distribution are you using?

lox-enterprises commented 6 years ago

@rdlf4 Arch (pure Arch). See: https://github.com/ValveSoftware/Proton/issues/727#issuecomment-431571158

rdlf4 commented 6 years ago

@SleepProgger 's comment did it for me. But it still isn't over. After symlinking, reinstalling the game, logging in to Uplay, it self-updated and then I have this: uplaynew The download button will try to install Steam, but I already have it (obviously). There should be no download button to begin with, because I already have the game! And Steam says the game is 'running' just because I have a Uplay instance.

Even after getting Uplay to work, it still manages to screw it. I'm out of ideas. How did you guys get FarCry 3 to run?

==UPDATE== Quitting Uplay triggered the game launcher/splash screen to show up. But it still tries to install Steam (for Windows, I guess). Canceling it gives me an error msg. Am I supposed to install Steam in order to play it?

==UPDATE2== OK, I'm just going to go with whatever I'm given to see how far this goes.. So, once the game starts/is launched, it needs to detect Steam. It doesn't (for some reason), so it triggers a Steam installation. I go with it, and then we hit this roadblock: farcry3errormsg What the heck? 'Destination must be empty'?! If it's empty, the install button greys out and there's no way to proceed. If it isn't, I'm stuck with that pop up message.

And that's where I'm stuck at.

lox-enterprises commented 6 years ago

@rdlf4 Look up the mentioned 'Steam' dir (somewhere in ~/.local/share/Steam/steamapps/compatdata/gameid/pfx/) and delete it. Then it should go.

rdlf4 commented 6 years ago

@1202software The only problem with that is, as soon as I tell the installer to look into a hidden folder (.steam), it greys out the install button. How to proceed?

lox-enterprises commented 6 years ago

@rdlf4 Don't delete it from the installer, delete it from your filesystem via console/terminal or your system's file browser.

rdlf4 commented 5 years ago

Can confirm on debian stretch. Using Proton 3.16-3 Beta and creating the links for gnutls worked. The steam path is different tho and i linked libgnutls.so.30 which itself is a link to the real version. This might make sense if there are minor library updates.

ln -s /usr/lib/x86_64-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_64/libgnutls.so.26
ln -s /usr/lib/i386-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libgnutls.so.26

Unfortunately, for some, whatever reason, Helldivers will no longer launch if libgnutls.so.26 is symlinked to pinned_libs (32 and 64). If the symlinked files are placed in those folders, the game will page fault, meaning it will say that it's running, then it syncs up, and then nothing happens. The reason I'm pointing the finger at the symlinked files is because after those symlinks are removed, the game will launch again. For more info about it, I'm tracking it down and mentioning my steps right here.

tingvarsson commented 5 years ago

Seems there is progress on the libgnutls front in steam-runtime just a few days ago: https://github.com/ValveSoftware/steam-runtime/commit/ca34a8df9db1c3c0ce71aa96c64cd5606135f693

Looking forward to next release.

rdlf4 commented 5 years ago

Seems there is progress on the libgnutls front in steam-runtime just a few days ago: ValveSoftware/steam-runtime@ca34a8d

Looking forward to next release.

Better late than never. I don't think libgnutls will make the headlines for the next regular update though. So this might be available for Steam Beta before it even becomes a feature for the stable version.

lox-enterprises commented 5 years ago

Game seems to be broken again after the latest Steam update? Can anyone confirm?

rdlf4 commented 5 years ago

Can confirm on debian stretch. Using Proton 3.16-3 Beta and creating the links for gnutls worked. The steam path is different tho and i linked libgnutls.so.30 which itself is a link to the real version. This might make sense if there are minor library updates.

ln -s /usr/lib/x86_64-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_64/libgnutls.so.26
ln -s /usr/lib/i386-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libgnutls.so.26

@1202software @SleepProgger This trick no longer works. I guess it's because SteamPlay has been updated, because it doesn't matter which Proton version I decide to go with, if those symlinks are placed into the pinned_libs folders (32 and 64), the game will not launch. I also tried symlinking only the 32-bit one and launch Helldivers in 32-bit safe mode, same thing: the game will not launch. Any other ideas to get Helldivers going and also Far Cry 3? It lookslike regression is something we're gonna have to get used to, or work around it. :-/ EDIT: the reason I'm pointing that out is because once the symlinked files are removed, Helldivers will launch just fine and it goes without saying, but Far Cry 3 will not go past the login screen, regressing the progress back to the very same issue from this thread.

lox-enterprises commented 5 years ago

@rdlf4 In another thread the consensus is that it's the updated Uplay that's causing trouble. After downloading the last update for Uplay it complains it cannot connect to the internets. Uplay could connect before the update (otherwise it could not have downloaded the update) so it is not caused by Steam.

I would say 'it has nothing to do with Proton', but it does, because most likely, if they update Proton to 3.21 (the version number refers to the version of Wine used) it will work, since it works when you use Wine 3.21 (and does not in 3.16, only with the 'staging' build).

Of note: this means that probably all Ubisoft titles are 'broken' for the moment.

kakra commented 5 years ago

I've tested with my own proton branch rebased to 4.0 rc2. I removed the proton prefix (pfx in compatdata) and restarted Farcry 3. It no longer tried to install the Windows Steam client prerequisite which is good. It also installed Uplay and I logged in successfully. But it will then direct me into the Uplay shop to download the game. You'd have to completely exit Uplay so that no process within this wine prefix will run, then restart Farcry 3 from the Linux Steam library. This time (and successive runs) it will launch into the game successfully.

But it now hangs there on some sort of loading screen with audio or music which seems to play very slow (although pitched correctly as it seems). It eventually never finishes this video, HD activity is very low. I killed the processes. Not sure what's wrong...

lox-enterprises commented 5 years ago

@kakra Great effort! Wondering though, this is based on Wine 4.0-RC2, wouldn't it be better (work better) to build on stable 3.21?

tingvarsson commented 5 years ago

3.21 isnt stable, it is a dev release. (All biweekly releases are dev) Stable is the 3.0 branch. And soon 4.0.

lox-enterprises commented 5 years ago

@tingvarsson Still... seems 3.21 works, so the question remains.

rdlf4 commented 5 years ago

But what's the deal with libgnutls on v3? An update ago, it was just a matter of symlinking it into pinned_libs folders and now, most of my steamplay games wont even launch because of it (I can tell because after symlinks are removed, my games launch just fine).

kakra commented 5 years ago

@1202software This is the release candidate, expect a stable version wine 4.0 in 3-4 weeks maybe... Not sure what the schedule of the winedevs is but it was announced to go stable around beginning of next year.

Actually, 3.21 isn't stable... 3.0 is, 3.21 is the dev version, a moving target, not stable. ;-)

Could you try if my branch works for you? So we could see if it may have been fixed meanwhile?

lox-enterprises commented 5 years ago

@kakra I got around to trying out 'wine-proton' and managed to get my game working again with Steam!

I should point out that the game I'm trying to run is Assassin's Creed Unity, whereas this thread is about Far Cry 3. I wound up here because they both require Uplay to run and exhibit the same errors/problems.

What did I do?

  1. Quit Steam (seems obvious, but you could forget about it running in the background)
  2. Follow the instructions for installing wine-proton: https://github.com/kakra/wine-proton, first the section 'Getting started...' for the prerequisites, then 'Cloning the Repository and Setup, 'Compiling from Source', this produces a tarball
  3. Backup Proton: cp -r '~/.local/share/Steam/steamapps/common/Proton 3.16 Beta' '~/.local/share/Steam/steamapps/common/Proton 3.16 bk'
  4. Unpack the tarball to the Proton directory: tar -xvf dist.tar.xz -C '~/.local/share/Steam/steamapps/common/Proton 3.16 Beta'
  5. Delete the pfx from the game for good measure: for me that is rm -rf ~/.local/share/Steam/steamapps/compatdata/289650/pfx and the lock-file: rm -rf ~/.local/share/Steam/steamapps/compatdata/289650/pfx.lock
  6. Start Steam
  7. Make sure the correct 'compatibility tool' is selected in Steam Settings (ie. 'Proton 3.16-6 Beta')
  8. Launch the game. This will recreate the pfx and first update, then launch Uplay. This differs from the 'usual' install, where it would install Steam for Windows and then would launch the game.
  9. Login to Uplay. It shows your games and it says 'Download' next to them, but DON'T.
  10. Quit Uplay - it will ask to completely exit, say 'yes'
  11. Relaunch the game. Now it will not show the Uplay stuff but directly launch the game.

This was my experience with ACU. I first tried it with Proton 3.16-4 but that would not launch the game. It got a bit further then usual, showing the game splash screen, but immediately quit after that. Out of curiosity, I tried Proton 3.7.8 as well, this got stuck with a nasty Windows dialog complaining about the 'Ubisoft Launcher' missing.

So it does require the latest Proton 3.16-6 Beta. After that, the only 'finicky' bit is the Uplay business (step 9) where it won't load the game the first time, but just quit and it will run fine every other time.

@kakra: one thing I tried figuring out, is if I could register a new Proton in the Steam Settings menu. So I can choose 'Proton 4.0 RC3' and leave the regular Protons as is (I would make a copy of the Proton 3.16-6 Beta and rename it before 'spicing it up'). I've looked through a bunch of .vdf files, but could not find anything relevant. Any thoughts?

kakra commented 5 years ago

@1202software Yes, I'm working on that feature to expose my version as a separate compat tool in Steam. There are a few bits missing: My version doesn't compile the steam API proxy DLL yet (and a few other deps like VR stuff which is really not my priority), and I'd like to create a custom launcher like the "proton" script. I'm currently still thinking about the best strategy.

BTW: I'd be interested in stability / performance reports, also we could add instructions for different games. If you want to help out, please head over to my repo.