winepak / applications

A collection of flatpak manifest for building Microsoft Windows applications with Wine via flatpak
https://www.winepak.org
417 stars 39 forks source link

Support StarCraft2 #23

Open Iolaum opened 6 years ago

Iolaum commented 6 years ago

I read about this project today at linuxuprising.com and was immediately excited! Thank you for your great work!

I would like to request packaging Starcraft2 if possible (it's the only thing I miss after I ditched windows for good).

I don't know much (anything) about developing with flatpaks (and I couldn't make startcraft on top of wine staging work when I tried) but I can help with testing and bug reports on an Optimus laptop.

julianrichen commented 6 years ago

Thanks for the kind words. Status on WineHQ with 3.7-staging looks good. Battle.net client has been a little weird with other apps like Overwatch & WoW but should be an easy add.

julianrichen commented 6 years ago

This gave me a chance to work on a better Battle.net installer and add StarCraft II.

Everything installs fine and the game runs. I played a short campaign. Further testing would be good. Performance seems decent.

Tested on my AMD Ryzen 7 1700x/AMD RX 580/16GB DDR4

Install & Run:

flatpak install winepak com.blizzard.StarCraft2

flatpak run com.blizzard.StarCraft2

It's lacking an icon atm.

fastrizwaan commented 6 years ago

It is complaining that starcraft2 is not installed? Do we need to install Starcraft 2 separately?

screenshot from 2018-06-13 05-27-57

screenshot from 2018-06-13 05-24-38

https://us.battle.net/support/en/article/12706

This error usually occurs when your video drivers are corrupted or out of date. You may also receive this error if your computer does not meet the system requirements (World of Warcraft, StarCraft II, Diablo III, Hearthstone, Heroes of the Storm, Overwatch). Follow the steps below to resolve this issue.

I have nvidia 650 ti, nvidia 390.59 drivers installed both in flatpak and system both 64bit and 32bit,

Just sharing info: I've also made flatpaks with the make_flatpak.sh which I got from flatpak-linux at tpb, the resulting flatpak is a full game bundle. https://mega.nz/#F!xlRATSCI!aZBddjC2KCAOtfUziZEC8w

julianrichen commented 6 years ago

After you install the Battle.net client you'll need to install StarCraft II but the client should redirect to StarCraft II page. You should see a blue "Install" or "Play Now" button.

I'm unsure about the graphics error.

fishxz commented 6 years ago

i get this graphic error aswell on every game, which use battle.net client...

pshem commented 6 years ago

Let me make a guess: everyone with a problem has a GPU from the same manufacturer: Nvidia. The bug is here: https://github.com/flatpak/flatpak/issues/138 There are hacky solutions to be used, but it'll be quite hard to test for @julianrichen , as he has an AMD GPU(RX580 in the description)

Iolaum commented 6 years ago

I got the same graphic context error @fastrizwaan mentioned after I installed Starcraft2.

I googled around and found some info about the blizzard app here - lutris Blizzard app info

Some info are also mentioned in this forum post Info there suggests it may be related to nvidia drivers version, mine are:

$ apt policy nvidia-390
nvidia-390:
  Installed: 390.67-0ubuntu0~gpu18.04.1
  Candidate: 390.67-0ubuntu0~gpu18.04.1
  Version table:
 *** 390.67-0ubuntu0~gpu18.04.1 500
        500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

It may be related to the nvidia flatpak drivers ? Don't know.

Decided to try winepak-StarCraft2 with the intel iGPU and didn't get the error. I got this error within the battle net app (but don't care much). Currently downloading the game - don't know if it ll work yet.

@pshem Are you sure? When I see what I 've isntalled:

$ flatpak list
Ref                                                   Options       
com.blizzard.StarCraft2/x86_64/stable                 system,current
com.viewizard.AstroMenace/x86_64/stable               system,current
org.freedesktop.Platform.GL.nvidia-390-67/x86_64/1.4  system,runtime
org.freedesktop.Platform.VAAPI.Intel/x86_64/1.6       system,runtime
org.freedesktop.Platform.ffmpeg/x86_64/1.6            system,runtime
org.freedesktop.Platform/x86_64/1.6                   system,runtime
org.winepak.Platform.Compat32/x86_64/3.0              system,runtime
org.winepak.Platform.Extension.corefonts/x86_64/3.0   system,runtime
org.winepak.Platform.Wine.Compat32/x86_64/3.9-staging system,runtime
org.winepak.Platform.Wine/x86_64/3.9-staging          system,runtime
org.winepak.Platform/x86_64/3.0                       system,runtime

It appears that there are openGL drivers, unless org.freedesktop.Platform.GL.nvidia-390-67/x86_64/1.4 system,runtime is something else - or is affected by the bug.

julianrichen commented 6 years ago

Hmmm, the winepak Sdk & Platform inherits the org.freedesktop.Platform.GL extension point from the fd.o Sdk & Platform: https://github.com/winepak/winepak-sdk-images/blob/8b5a81cbef0eac6bb7fbca107d506d9a16d7fd7e/org.winepak.Sdk.yml#L47

So they should auto-load?

@Iolaum please report back if you have success. If it works on Intel & on AMD and all the reports are coming from Nvidia machine it would reason that's the issue. But I'm not sure how to test the Nvidia issue my self -_-

Could you download the 32bit/i386 version of org.freedesktop.Platform.GL.nvidia-390-67? I don't think it'll be an issue but IDK.

Also the Battle.net issue shouldn't be a problem, the in-browser widget is crashing but shouldn't stop you from playing. I get a white screen sometimes where it should load the news/adverts.

pshem commented 6 years ago

@Iolaum As it appears to work on Intel & AMD, I feel validated to believe that's the root cause. I am however speaking as someone who's only been reading on flatpak and hasn't used one yet, and having a chance to return to WoT after 3 years looked like a tipping point before I came upon this thread (I happen to be cursed with an Nvidia GPU. I really wish I went for the non-gaming, RX 560 driven version of my laptop, as 95% of my linux problems are Nvidia connected).

Unfortunately, I don't actually know how to solve it. I was under the impression that having the org.freedesktop.Platform.GL be of exactly the same version as your system's OpenGL would cut it, but that doesn't seem to be the case, judging by your results.

There was also talk of problems with UNIX sockets when sharing the network, but the mailing list said that got fixed in flatpak 0.8.

Iolaum commented 6 years ago

In the intel mode SC2 works :) Thanks a lot !!

I 'm happy to testi386 version but can you please give me terminal flatpak commands to make sure I do it right?

Will I have to uninstall the version I have now? Will I need to make any other configuration change so the system knows to try and use the i386 one?

Iolaum commented 6 years ago

@julianrichen I found out how to search for the 32 bit version from the command line (because system runtimes are not available/accessible through flathub.org website) and installed it:

$ flatpak remote-ls flathub | grep nvidia
# ... GL results ...
$ flatpak install flathub org.freedesktop.Platform.GL32.nvidia-390-67
Installing: org.freedesktop.Platform.GL32.nvidia-390-67/x86_64/1.4 from flathub
[####################] Downloading: 48.1 MB/48.1 MB (1.2 MB/s)

However the error BLZBNTBNA0000000A persisted. I turned it on and off again to see if that would help but didn't. Don't know if should try a re-install? Don't think it 'll help.

There were some comments about maybe using the native libraries by extending LD_LIBRARY_PATH but I am not sure how to do that. I 'm assuming here that it's not the default user's LD_LIBRARY_PATH but one related to a flatpak application. Don't know if they can be useful in our context.

I also run sc2 from the command line to capture logs and error outputs, here's what happens:

$ flatpak run com.blizzard.StarCraft2 
Verify "Battle.net Helper.exe" doesn't launch...
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
$ wine: Unhandled exception 0xc0000417 in thread 6b at address 0x523586 (thread 006b), starting debugger...
wine: Unhandled exception 0x80000003 in thread f2 at address 0x130d60d3 (thread 00f2), starting debugger...
^C
$ 

First thing I noticed was that the terminal was returning a user prompt and then use it to capture an error which is strange. After that the Bnet app appeared and asked me to log in. I did and then the error happened and I clicked exit. Terminal wouldn't give me a user prompt so I had to Ctrl+C it. I don't know what to make of the wine exemptions. It might be that for nvidia drivers some additional configuration is needed. @fastrizwaan Don't know if you see the same behavior and/or have any ideas regarding this?

Iolaum commented 6 years ago

While trying to debug/hack_a_fix I uninstalled all flatpaks with flatpak list | cut -f1 | xargs flatpak uninstall and also clearing ~/.var/app/ folder. Then I re-isntalled them trying certain things to see if I could fix the problem. One thing I noticed is that the GL drivers runtime was installed from Astromenace:

$ flatpak list
Ref                                                  Options       
com.viewizard.AstroMenace/x86_64/stable              system,current
org.freedesktop.Platform.GL.nvidia-390-67/x86_64/1.4 system,runtime
org.freedesktop.Platform.VAAPI.Intel/x86_64/1.6      system,runtime
org.freedesktop.Platform.ffmpeg/x86_64/1.6           system,runtime
org.freedesktop.Platform/x86_64/1.6                  system,runtime

Uninstalling everything again, rebooting and installing only the sc2 flatpak results in the following:

$ flatpak list
Ref                                                   Options       
com.blizzard.StarCraft2/x86_64/stable                 system,current
org.winepak.Platform.Compat32/x86_64/3.0              system,runtime
org.winepak.Platform.Extension.corefonts/x86_64/3.0   system,runtime
org.winepak.Platform.Wine.Compat32/x86_64/3.9-staging system,runtime
org.winepak.Platform.Wine/x86_64/3.9-staging          system,runtime
org.winepak.Platform/x86_64/3.0                       system,runtime

My efforts to fix error BLZBNTBNA0000000A didn't work and I m out of my depth. I think that the nvidia drivers may not be exposed but I am not sure. Astromenace, when installed on it's own run on nvidia drivers and run well. I know this because I got 10x frame rates compared to the intel drivers. So flatpak appears to be able to see and use the nvidia drivers, at least with astromenace that uses the freedesktop sdk and whatever specific graphic dependencies it has.

Iolaum commented 6 years ago

After installing manually, as mentioned elswhere,

flatpak install flathub org.freedesktop.Platform.GL.nvidia-XXX-XX
flatpak install flathub org.freedesktop.Platform.GL32.nvidia-XXX-XX

starcraft 2 works with the nvidia card on my optimus laptop.

I m guessing I had to manually install them after doing a simple flatpak update because i did it while in the intel igpu. When I switched to the nvidia one somehow not everything was there. I 'm guessing this is a flatpak + nvidia integration issue but since nvidia doesn't provide a mainline driver I don't think it's fair put the 'problem' on the flatpak devs for not seeing the need for it's drivers.

Starcraft2 co-op played nicely, but a custom game kept crashing on me. Still I 'd consider this issue complete now as SC2 is 95% playable :) .

@julianrichen Feel free to close, unless there are other things you want to track with this issue.

Iolaum commented 6 years ago

I spoke too soon :o

Bnet.app and Starcraft2 received updates. The Bnet app updated successfully but couldn't download updates for SC2 and gave me error BLZBNTBNA00000006:

Something went wrong while trying to launch a program. Please try restarting the Blizzard Battle.net desktop app. If that doesn't work, try restarting your computer.

I uninstalled sc2 winepak and re-installed it to see if that would work. I then got another error:

$ flatpak run com.blizzard.StarCraft2 
Downloading installer...
######################################################################## 100.0%
Setting-up wine prefix...
Installing Extension(s)...
[REGEDIT] Adding:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts
Arial=arial.ttf
The operation completed successfully
# More stuff getting installed successfully until:
[REGEDIT] Adding:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Fonts
Webdings=webdings.ttf
The operation completed successfully
/app/bin/battlenet-installer: line 22: /app/lib/extension/vcrun2015/bin/vcrun2015-install64: No such file or directory

I don't know if this is related to the vcrun issue mentioned here and here.

julianrichen commented 6 years ago

The new com.blizzard.BattleNet.BaseApp now requires vcrun2015, however, only com.blizzard.WoW was updated to inherit the extension. Without inheriting the extension on com.blizzard.Overwatch or com.blizzard.StarCraft2 the extension would not auto download.

Should be fixed now with c228e08

sjuk commented 6 years ago
$ flatpak install flathub org.freedesktop.Platform.GL.nvidia-XXX-XX
$ flatpak install flathub org.freedesktop.Platform.GL32.nvidia-XXX-XX

did not work.

BLZBNTBNA0000000A raises on every start preventing to install Starcraft 2. I'm on freshly installed Ubuntu 18.04 (64 bit). Starcraft 2 works fine with lutris. I guess there is something wrong with flatpak com.blizzard.StarCraft2. Any ideas?

$ flatpak list
Ref                                                    Options       
com.blizzard.StarCraft2/x86_64/stable                  system,current
org.freedesktop.Platform.GL.nvidia-396-51/x86_64/1.4   system,runtime
org.freedesktop.Platform.GL32.nvidia-396-51/x86_64/1.4 system,runtime
org.winepak.Platform.Compat32/x86_64/3.0               system,runtime
org.winepak.Platform.Extension.corefonts/x86_64/3.0    system,runtime
org.winepak.Platform.Extension.vcrun2015/x86_64/3.0    system,runtime
org.winepak.Platform.Wine.Compat32/x86_64/3.9-staging  system,runtime
org.winepak.Platform.Wine/x86_64/3.9-staging           system,runtime
org.winepak.Platform/x86_64/3.0                        system,runtime
julianrichen commented 6 years ago
$ flatpak install flathub org.freedesktop.Platform.GL.nvidia-XXX-XX
$ flatpak install flathub org.freedesktop.Platform.GL32.nvidia-XXX-XX

did not work.

Just to verify you replaced XXX-XX with 396-51 & 396-51 is you current driver version?

If it's working in Lutris than it's something on the flatpak side but I'm not sure... I haven't been able to debug any of the Nvidia issues since I have an AMD card.

sjuk commented 6 years ago
$ flatpak install flathub org.freedesktop.Platform.GL.nvidia-396-51
$ flatpak install flathub org.freedesktop.Platform.GL32.nvidia-396-51

Yes, to clarify which driver was installed by flatpak I added the output of $ flatpak list. I choosed the latest one. With apt there is installed another nvidia driver 390.48. Do flatpak and apt driver have to match? I'm really new to flatpak (today tried to work with it for the first time).

$ LANG=C apt-cache policy nvidia-driver-390 
nvidia-driver-390:
  Installed: 390.48-0ubuntu3
  Candidate: 390.48-0ubuntu3
  Version table:
 *** 390.48-0ubuntu3 500
        500 http://de.archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages
        100 /var/lib/dpkg/status

If you need some help to debug against nvidia drivers perhaps I can help. Let me know if you need any information, and I will do my very best to help. ;-)

Iolaum commented 6 years ago

Yes flatpak driver and apt/deb driver have to match.

sjuk commented 6 years ago

Thanks, installation of SC2 is in progress after downgrading the nvidia driver to match the one from deb.

$ flatpak list
Ref                                                    Options       
com.blizzard.StarCraft2/x86_64/stable                  system,current
org.freedesktop.Platform.GL.nvidia-390-48/x86_64/1.4   system,runtime
org.freedesktop.Platform.GL32.nvidia-390-48/x86_64/1.4 system,runtime
org.winepak.Platform.Compat32/x86_64/3.0               system,runtime
org.winepak.Platform.Extension.corefonts/x86_64/3.0    system,runtime
org.winepak.Platform.Extension.vcrun2015/x86_64/3.0    system,runtime
org.winepak.Platform.Wine.Compat32/x86_64/3.9-staging  system,runtime
org.winepak.Platform.Wine/x86_64/3.9-staging           system,runtime
org.winepak.Platform/x86_64/3.0                        system,runtime
ghost commented 5 years ago

Fresh installation of ubuntu 18.10. Had the same issue BLZBNTBNA0000000A

Before matching the nvidia drivers:

$ flatpak list
Ref                                                   Options       
com.blizzard.StarCraft2/x86_64/stable                 system,current
org.winepak.Platform.Compat32/x86_64/3.0              system,runtime
org.winepak.Platform.Extension.corefonts/x86_64/3.0   system,runtime
org.winepak.Platform.Extension.vcrun2015/x86_64/3.0   system,runtime
org.winepak.Platform.Wine.Compat32/x86_64/3.9-staging system,runtime
org.winepak.Platform.Wine/x86_64/3.9-staging          system,runtime
org.winepak.Platform/x86_64/3.0                       system,runtime

After

$ flatpak list
Ref                                                    Options       
com.blizzard.StarCraft2/x86_64/stable                  system,current
org.freedesktop.Platform.GL.nvidia-390-87/x86_64/1.4   system,runtime
org.freedesktop.Platform.GL32.nvidia-390-87/x86_64/1.4 system,runtime
org.winepak.Platform.Compat32/x86_64/3.0               system,runtime
org.winepak.Platform.Extension.corefonts/x86_64/3.0    system,runtime
org.winepak.Platform.Extension.vcrun2015/x86_64/3.0    system,runtime
org.winepak.Platform.Wine.Compat32/x86_64/3.9-staging  system,runtime
org.winepak.Platform.Wine/x86_64/3.9-staging           system,runtime
org.winepak.Platform/x86_64/3.0                        system,runtime

Why this is not done automatically, is it a limitation of the flatpak?

Isakku commented 5 years ago

Well, I think we are in the same boat if not a similar issue https://github.com/winepak/applications/issues/122 I have also tried adding SC Remastered, but I can't make anything work.

Takerman commented 4 years ago

If anyone has problems, please install this one: sudo flatpak install winepak org.winepak.Platform.Extension.corefonts