Heroes of the Storm in Linux with Wine

I’ve been wanting to get some of my games to play properly in Linux with Wine. Recently I’ve been able to get Heroes of the Storm working pretty well in Arch Linux. This is what I did to get it working with my NVIDIA GeForce GTX 1070.

Update 4/22/2017: Even more changes with wine 2.4-staging. This site is very helpful:

For Wine Staging release 2.3 and later

Change Windows Version to Windows XP

Open Wine configuration (winecfg) and change setting at the bottom

Install Visual C++ 2015 libraries (needed to update games)

winetricks vcrun2015

If you get errors about not being able to connect / login:

Install lib32-libldap and lib32-gnutls

Installer login Workaround:
- Create a clean 32-bit wineprefix
- Run the Battle.net installer with default options
* It crashes at the very end when it tries to launch, but installation still finishes and succeeds.
- Overwrite the default Battle.net config file:
cd "$WINEPREFIX/users/$(whoami)/Application\ Data/Battle.net/"
echo "{\"Client\": {\"HardwareAcceleration\": \"false\"}}" > "Battle.net.config"
- Set the default mimicked windows version to Windows XP
- Run Battle.net:
wine "$WINEPREFIX/drive_c/Program\ Files/Battle.net/Battle.net\ Launcher.exe"

Update 3/31/2017: A few things have changed since I wrote this article. I’ll keep the old information for historical purposes, but the process has updated

Install mainstream nvidia drivers
yaourt -Sy nvidia

Install wine-staging
pacman -Sy wine-staging

Remove / move existing wine configuration if you have one
rm -rf ~/.wine

Create new 32bit wine prefix
WINEARCH=win32 wine wineboot

Enable CSMT by going to the Staging Tab and checking “Enable_CSMT for better graphic performance”

(Dvorak keymap users only) Set keymap to US to allow for hotkeys to work

setxkbmap us

It’s not perfect. Battle.net splash screens don’t load (no news, patch info) and the first few moments in the game stutter (but it’s fine after that.) Without DX11 the game doesn’t quite look as shiny but is still quite playable. I hope future versions of WINE will help with this problem, but this is what I’m using for now.