How to Play Hearthstone on Ubuntu Linux

hearthstone-on-linux

Hearthstone is probably the most popular digital card game. The Warcraft-themed game from Blizzard has seen quite a bit of growth over its lifetime, and it’s even a major e-sport.

Even though Hearthstone was released for a wide array of platforms, including mobile devices running Android, it has never seen official Linux support. Thankfully, Hearthstone is a lightweight game that can be run on Linux systems through Wine.

The staging patches for Wine are necessary. Blizzard updates Hearthstone frequently, and those updates do occasionally break Wine gameplay. Having the latest patches does help.

Enable the Wine Staging PPA on Ubuntu. You’ll need the release key first, so wget that, and add it.

Add the repository to Apt, update, and install Wine Staging.

Now that you have the latest version of Wine Staging installed, you need to configure it a bit. Open a terminal and run winecfg.

Wine Staging Hearthstone

In the window that opens, click on the “Staging” tab. Check the boxes to enable CSMT, VAAPI, and EAX.

Wine Library Overrides

Click back to “Libraries,” and in the search box type d3d11. Add it. Click on the entry and disable it. Repeat the process with locationapi. After that’s done, close winecfg.

Winetricks

You’re going to need the winetricks script, too, if you want the Battle.net launcher to perform properly. You can grab the latest version of the script with wget.

wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks

Run the script. If you’re not familiar, Winetricks will open a graphical application that lets you download Windows components and tools to make your Wine applications run more smoothly (or at all).

On the first screen “Use default Wine prefix” is selected. Leave it selected, and click the “OK” button. On the following screen select the “Install DLL” option. Find ie8 and install it.

Winetricks Corefonts

When the install finishes, it’ll drop you back where you were. Click “Cancel” to go up one level. Select “Fonts.” Check off corefonts and install it. When that finishes, click “Cancel” until you exit Winetricks.

You’re ready to install the Battle.net client. Head over to Blizzard’s download page and get the latest version.

You can just click on the resulting .exe file to launch it with Wine. Follow the instructions as though you are doing the exact same thing on Windows. The install process is the same, and you can just click through the installer.

Hearthstone Installed Battle.net

When it finishes, it should just launch the Battle.net client. If it doesn’t, click on the icon that it created (if it did), or find the actual path at “~/.wine/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe.”

The hard part is out of the way. Click on the Hearthstone icon in the Battle.net app, and click the “Install” button at the bottom of the screen. Wait for the client to download and install Hearthstone. It will all happen automatically.

When the install process is finished, the “Install” button will turn into a “Play” button. Click it to launch the game.

Once the game is open, click on the gear icon in the lower-right corner. That’s the settings menu. It’s recommended that you run the game in “Windowed” mode for best performance. You can adjust the rest to set your needs.

Some of this may change as Blizzard updates the game. For the latest updates in case of breakage, check the Wine Appdb page.

18 comments

  1. Thank you for this article! I’ve gotten the furthest, still to no avail. I’m getting:

    We can’t install Hearthstone because your operating system doesn’t meet the minimum specs to run it.

    Your OS: Windows XP x64 Service Pack 2
    Minimum: Windows 7

    with a link to: https://eu.battle.net/support/en/article/28991

    Any OS I change to from winetricks, this still shows up.

    • IT WORKS ! Just a few things to be done like Gary mention the site.

      How to install on 64-bit Linux 2017-11-13
      by puargs on Monday November 13th 2017, 11:50
      Here’s what it took to install on Ubuntu 17.04 x64 with an Intel graphics chipset on 2017-11-13:

      Be careful following these steps – they are intended for brand new installations only. If you already have wine, don’t delete your whole .wine folder as in the steps below.

      1) install wine staging (wiki.winehq.org/Ubuntu)
      2) download winetricks (wiki.winehq.org/Winetricks)
      3) run from terminal:
      rm -r ~/.wine
      env WINEARCH=win32 winecfg

      4) (we are now inside winecfg)
      set windows version to windows xp
      go to graphics tab, uncheck “allow the window manager to decorate the windows”
      go to libraries tab, add “d3d11” and edit it to “DISABLED”.

      5) install battle.net “wine Battle.net-Setup.exe”

      6) run from terminal:
      winetricks corefonts vcrun2015 forcemono
      winecfg
      (change windows version to windows 7 and close)

      7) make sure wine isn’t running – run from terminal (you can skip step 7 if you’re not comfortable – just reboot your computer instead, then proceed from step 8):
      sudo ps -aux | grep wine
      sudo kill 1234 1235 1236 1237

      (replace 1234 1235 1236 1237 with the process numbers of any running wine processes found above)

      8) FINALLY, open battle.net application and hearthstone and it should run fine.

  2. Worked perfectly on Kubuntu 17.10 artful , I had to reboot for some wine config to take effect. I had restarted the wine-server process. Thanks for this and just to show that up until now it still works.

  3. Thanks for the guide. I just had to use a 32bit WINEARCH, set the OS to Win7 in winecfg, enable d3d11 once and then use -force-d3d9 in the Battle.net settings, seems redundant but it works.

  4. Hello, following the guide and the comments I managed to install Battle.Net and Hearthstone, but whenever I try to launch the game it just gives me eternal black screen and I have to kill the process.

    I have d3d11 enabled, because if I disable it BNet doesn’t launch with a missing DLL error. I have added “-force-d3d9” parameter to the Hearthstone launch settings, but it doesn’t change anything. I also tried enabling the d3d9_43 library through winecfg, but it doesn’t work either.

    I’ve tried disabling d3d11 and launching Hearthstone through “Hearthstone.exe” instead of Bnet, but still get the same black screen.

    I’m using wine-staging 2.21, 32bit WINEARCH, windows 7 as OS. Any help would be much appreciated.

    • Also worth noting that I have installed Starcraft on the same WINEPREFIX and it runs fine; Heroes of the Storm doesn’t run, but at least it crashes by itself, so I don’t have to kill it’s process.

      I’m actually using Debian 9, not Ubuntu, could this be the issue?

    • I had similar problems regarding the “missing DLL” when d3d11 is disabled and the Hearthstone “black screen”. I was able to get Hearthstone working on my Ubuntu machine using winehq-stable (3.0) by doing the following:

      export WINEARCH=win32
      wine Hearthstone-Setup.exe (this will install battle.net, gets the standard naggy messages, just close everything when done)
      cd ~/.wine/drive_c/Program Files/Battle.net
      wine Battle.net Launcher.exe -force-d3d9

      The login process to Battle.net was a little messy but it is possible to get in. Was able to launch hearthstone without a “blank screen” and completed a match without any problems.

      • Thanks for replying, but the -force-d3d9 parameter seems to not work for me for some reason, even if I add it in the command line instead of in the Battle.net app.

        I tried running ‘wine Hearthstone.exe -force-d3d9’ from command line but it still gives me the black screen. Here is the output from that command in hope someone might be able to figure it out:

        fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
        Mono path[0] = ‘C:/Program Files/Hearthstone/Hearthstone_Data/Managed’
        Mono path[1] = ‘C:/Program Files/Hearthstone/Hearthstone_Data/Mono’
        Mono config path = ‘C:/Program Files/Hearthstone/Hearthstone_Data/Mono/etc’
        Player data archive not found at `C:/Program Files/Hearthstone/Hearthstone_Data/data.unity3d`, using local filesystemfixme:imm:ImmReleaseContext (0x10056, 0x153428): stub
        fixme:module:load_dll Loader redirect from L”wined3d.dll” to L”wined3d-csmt.dll”
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8A8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B10G10R10A2_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G6R5_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5A1_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B8G8R8X8_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8A8_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B8G8R8X8_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B10G10R10A2_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G6R5_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5A1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
        fixme:d3d:wined3d_check_device_format_conversion wined3d 0x1585a8, adapter_idx 0, device_type WINED3D_DEVICE_TYPE_HAL, src_format WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
        err:winediag:wined3d_adapter_init GL_ARB_compatibility not supported, requesting context with GL version 3.2.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d9:wined3dformat_from_d3dformat Unhandled D3DFORMAT 0xffffffff.
        fixme:d3d:debug_d3dformat Unrecognized 0x36314644 (as fourcc: DF16) WINED3DFORMAT!
        fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x36314644) in the format lookup table.
        fixme:d3d:debug_d3dformat Unrecognized 0x434f5441 (as fourcc: ATOC) WINED3DFORMAT!
        fixme:d3d:wined3d_get_format Can’t find format unrecognized (0x434f5441) in the format lookup table.
        fixme:avrt:AvSetMmThreadCharacteristicsW (L”Audio”,0x6dee978): stub
        fixme:thread:create_user_shared_data_thread Creating user shared data update thread.
        fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
        fixme:win:RegisterDeviceNotificationW (hwnd=0x10056, filter=0x32fc0c,flags=0x00000004) returns a fake device notification handle!
        fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
        fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
        fixme:win:RegisterDeviceNotificationW (hwnd=0x10056, filter=0x32fb30,flags=0x00000004) returns a fake device notification handle!
        fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
        fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
        fixme:win:RegisterDeviceNotificationW (hwnd=0x10056, filter=0x32fc04,flags=0x00000004) returns a fake device notification handle!
        fixme:win:RegisterTouchWindow (0x10056 00000000): stub
        fixme:wbemprox:client_security_SetBlanket 0xf5a6782c, 0x106af428, 10, 0, (null), 3, 3, (nil), 0x00000000
        fixme:wbemprox:client_security_Release 0xf5a6782c
        fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x00000030
        fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x00000030
        fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x00000030
        fixme:wbemprox:client_security_SetBlanket 0xf5a6782c, 0x106afad8, 10, 0, (null), 3, 3, (nil), 0x00000000
        fixme:wbemprox:client_security_Release 0xf5a6782c
        fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x00000030
        fixme:wbemprox:wbem_services_CreateInstanceEnum unsupported flags 0x00000030
        fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot
        fixme:toolhelp:Heap32ListFirst : stub

  5. Thanks for the guide.I click on the Battle.net-Setup-CN .exe file to launch it with Wine, then it sugessting being downloading,but the progress bar is not moving, and the net speed of other applications is normal.

    • Same problem here.
      at first, the bar moves but stucks right at the middle of the window.

  6. I ran into a problem today. I am running wow via wine in linux. What worked for me was to go into winecfg, hit libraries tab. I had d3d11 disabled, so I edited it to be ‘native then builtin’, applied the change. I have windows version set to windows 7. When I launched wow, it worked!

  7. Blizzard Agent stuck at 50% updating..regardless of what ever steps I take it never gets beyone this stage.

  8. Hi! I am kinda embarrased about this but i fail at the first step already… When i use the command “wget -nc https://repos.wine-staging.com/wine/Release.key” it gives me the following error (kind of, its my own translation from german):

    resolving of hostname repos.wine-staging.com (repos.wine-staging.com) … failed: the name or service is unknown.
    wget: host-adress >> repos.wine-staging.com<< cant be resolved.

    is the server unavailable or something?

Comments are closed.

Sponsored Stories