[HOW TO] Use Battle.Net on Zorin (Diablo 3, Diablo 4)

This post will guide you through running Battle.Net, Blizzard's proprietary launcher, on Zorin OS. With Battle.Net, you can install and run Diablo 3 and Diablo 4, and likely other Blizzard games though I've not personally tested them. Heroic Games Launcher and Bottles will be covered. Both methods assume the user has done no initial set up.

At this time, it doesn't seem to be possible to get Lutris to work due to outdated Proton-GE libraries, but if I become aware of a method, I will include it.

Bottles
  1. Install Bottles from the software store in Zorin.
  2. Install ProtonUp-Qt from the software store in Zorin. (You may already have it from getting GE-Proton-23 for Lutris.)
  3. Launch Bottles and step through its first time screens.
  4. Close Bottles. This part matters! Don't do step 5 if Bottles is running.
  5. Use ProtonUp-Qt to install GE-Proton-9-23 for Bottles. You can select Bottles from the drop down menu at the top of ProtonUp-Qt.
  6. Start Bottles again.
  7. Click the + in the top left to create a new bottle, and name it Battle.Net. Choose Gaming when it asks what the bottle is for.
  8. If you new bottle didn't open automatically, click it to open it.
  9. In the Runner menu, select GE-Proton-9-23. Bottles will warn you that Proton is meant for Steam. Check the box that says "I got it," then click Use Proton in the top right.
  10. Back in the bottle's main window, click "Install Programs..." There's an automatic installer for Battle.Net that will make this much easier.
  11. When the installer finishes, if it launched Battle.Net for you, just log in and all should be good. If it didn't launch Battle.Net automatically, you should see it listed in the bottle's main screen:
  12. Click the triangle to launch Battle.Net. That's also how you launch it going forward, though the three dot menu provides some options for convenient shortcuts if you prefer.

Some notes:

  • Logging into Battle.Net, you may notice that there are boxes to type, but some of the login screen is missing. This is normal. Just enter your username and password and hit enter.
  • The game itself should run fine, but starting Battle.Net may look like it froze. Be patient. My computer is very fast, and I still have a delay here. Once the Battle.net client is properly loaded, it behaves very nicely.
  • As of January 20, 2025, Diablo 3 and 4 are confirmed working when running from Battle.Net installed this way.
Heroic
  1. Install Heroic Game Launcher from the software store.
  2. Run Heroic Game Launcher.
  3. On the left side of the window, click Wine Manager.
  4. At the top of the right side of the window, click PROTON-GE
  5. In the table that appears, click the download button for Proton-GE-Latest and let it download.
  6. On the left side of the screen, click Library. Click the blue ADD GAME button.
  7. A window will appear. Enter "Battle.Net" for Game/App Title, then click Show Wine Settings farther down the screen. Take note of the folder under WinePrefix; it's needed later.
  8. Set Wine version to "Proton - Proton-GE-latest"
  9. In a web browser, go to the Battle.Net website. (The name in this line is a link.) Download the Battle.Net installer from here and save it in your normal downloads folder.
  10. In Heroic, click RUN INSTALLER FIRST and point it to the Battle.Net installer you just chose. You shouldn't need to change anything; accept all defaults during the install process.
  11. When prompted for to log in, use your normal Battle.Net username and password.
  12. Once you're on the Battle.Net main screen, exit Battle.Net entirely. Don't install games yet.
  13. Back in Heroic, the button that said RUN INSTALLER FIRST will have changed, to show that it was running the installer. When it goes back to RUN INSTALLER FIRST, click the little folder icon under Select Executable (it's just above the FINISH button.) Select the Battle.Net executable here. If you chose defaults during installation and used Battle.Net for the title, the file you want is: ~/Games/Heroic/Prefixes/default/Battle.Net/pfx/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe
  14. Click FINISH.
  15. Run Battle.Net from your library in Heroic, and you can install games and play normally now.

As you can see, setting these up is a fair bit more work than using Steam. Bottles is probably the easier of the two since it includes an automatic Battle.Net installer, but Heroic can automate installing and running games from GOG, EGS, or Amazon, so if you use those services, it may be the better choice. If anyone installs other Blizzard games using these methods, let me know and I'll update the post to make it more searchable.

2 Likes

Just a heads up that Diablo 4 is having a free weekend this weekend if anyone cares to poke at it. It's changed drastically since launch. Some of that is good, some of it is bad. Can't say I'm a fan of the game as it is, but free is free, and something to learn Bottles or Heroic if you're inclined but didn't have a reason at the time.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

EDIT: Proton 10 has been released and resolves this problem. The original instructions in this thread can be used again as long as you select a Proton 10 based runner.

It seems I can't edit the original how to, but as an FYI, Blizzard recently updated Battle.Net's update agent which seems to have undermined Linux support. Using Proton 10 and running Battle.Net as a non-Steam game is currently the easiest way to get it running. I've read that using a Wine 10 TKG runner may also work for Lutris, but I haven't tried it. Proton Experimental may also work, however Steam just fixed a bug that was disappearing people's cloud saves in Experimental. It shouldn't be used for general purposes anymore; it's really experimental.

If you have Battle.Net already installed from the original steps above, you can go to your library in Steam, click Games, Add non-Steam game... and find Battle.net Launcher.exe wherever you originally installed it. Choosing that and confirming it will add Battle.Net to your Steam library, but you won't have Proton 10 because it's still a beta. To add Proton 10, search your library (that is, with the actual search bar) for Proton, and all available versions will show up. Install Proton 10 as if it were a game. After that, you'll be able to set Proton 10 beta as the compatibility tool for Battle.Net by right clicking it in your library, choosing Properties, Compatibility, checking "Force the use of a specific Steam Play compatibility tool" and choosing Proton 10 (beta) from the dropdown.

If you don't already have Battle.Net installed by one of the methods above, instead of adding Battle.Net as a non-Steam game, you need to download the installer from Battle.net's website, and add the installer executable as described above, and follow the same steps as if you were setting it up as a non-Steam game. Run the installer from your Steam Library, let it go through its process, and then follow the steps above for adding Battle.net Launcher.exe. It'll be wherever your Steam Library is, I expect, but I haven't personally gone this route. (I already had Battle.net installed.) Once Battle.Net itself is listed as a non-Steam game, you can remove the installer from your library to clean up.

This entire bit will likely become unnecessary in due time as Proton 10 based runners make their way to other tools like Heroic and Lutris.

2 Likes

thank you for the original post either way, I was able to get it installed then running as a non steam game with no issues so i could play warcraft 1 and 2 remastered, I have xbox game pass but can only really use cloud gaming on linux, the battle.net launcher is letting me leverage some of those benefits still.

1 Like

If I understand you correctly here, it seems Blizzard is intentionally blocking a growing client base (and from what I understand, fast growing recently, thanks to Micro$oft Windoze Helleven and Recall) from playing their games? Rather dumb business-wise, I'd say. I hope I'm wrong, but they seem to be into pushing clients away (WC3 Reforged dropped the ball, picked up and remade better by fans, then blocked by Blizzard, remember that?) But it's their choice.

That's not the case here. Don't get me wrong; I agree that Blizzard is short-sighted and bad at a lot of things, but if they actually WANTED to lock Linux users out, they could do so very easily by implementing a kernel mode anti-cheat. WINE/Proton can't get around that, period; all working anti-cheats are in user space. Granted, kernel mode anti-cheat is off-putting to some Windows players too (they don't appreciate a game developer demanding that level of system access), but most of Blizzard's games are big enough not to have to care.

Not having to care is exactly what I think the Battle.net breakage was, too--Linux makes up a very small portion of their userbase, and they can assume Proton will update to fix any breakage they cause, so there's no reason, from their perspective, to care if they break it.

1 Like

I've stopped playing Diablo 4, so I don't have an immediate answer, but I'll try to replicate your problem and get back to you with my findings. Thank you for providing so much information up front like this; it saves us both a lot of time. USUALLY when I see that error something has gone wrong with the graphics driver, but since you're able to run the Steam version, we can rule that out.

How did you install Battle.net in your bottle? Did you download the battle.net installer, or did you use Bottles' tool for easily installing it? Importantly, have you been able to run ANY game from a bottle?

There is. I've run a number of things that way (Genshin Impact, Cyberpunk 2077 using GOG's offline installer, etc.)

The method is to download the installer .exe and manually copy it to the bottle's C: drive. This is pretty easy since there's a "Browse Files..." button in Bottles. (It's in the three vertical dots menu, immediately left of a bottle's minimize button.) Put the installer in the folder called "drive_c" in there, and then use the "Run Executable..." button in Bottles to locate and run the installer. When it finishes, assuming it worked (let's keep expectations realistic here, not everything will), it will try to add shortcuts to the installed program. Sometimes the install succeeds, but it can't guess at shortcuts, in which case you can use the "Add Shortcuts..." button to manually select the installed program's executable and add it to the list in Bottles.

Possibly not, if the problem lies in Proton trying to initialize Direct3D, if the game didn't use 3D.

Good news for certain definitions of "good." I hit the same problem. I can't promise I can fix it, as Blizzard is prone to breaking things, but I'll see what I can figure out.

Update: I am annoyed. Oh, I am annoyed. Don't misunderstand me; I got the game to work, and I have instructions for you, but it's working when it shouldn't. The pragmatist in me is just glad I got it working, but boy do I hate it when I don't know why things suddenly cooperate. I can no longer get the exact error. This ties into the above annoyance. If you want to see the error, I'll provide a means below, but know that if you fix your problem you may not be able to get the error back either. Adding an @MrDecapoda here so you get a notification without me spamming multiple replies to the thread.

The problem: For whatever reason, Proton was failing to create a Vulkan graphics device. When running DirectX games using Proton, it translates DirectX API calls to Vulkan to preserve GPU acceleration. It couldn't create the (logical) device necessary to do that, and thus, failure.

The solution: Use Steam. No, not re-buy the game--you don't even have to reinstall it. In fact, and this is what annoys me so much, doing this once will even fix it in Bottles, or did for me, when it shouldn't!

  1. In Steam, from your library, click the Games menu at the very top and choose "Add a non-Steam Game to My Library..."
  2. Click "Browse..."
  3. Navigate to your bottle in the actual filesystem. I don't know where you set up your bottle, but since you used the battle.net installer built into Bottles I know that when you DO find the bottle, it'll be in that bottle's drive_c/Program Files (x86)/Battle.net/ directory. Pick "Battle.net launcher.exe" and click select.
  4. You'll be back at the Steam Add a game dialogue. Click "Add Selected Programs."
  5. Battle.net Launcher.exe will be added to your Steam Library. You may need to manually set Proton 10-24 on it by right clicking it, choosing Properties > Compatibility, checking the box to use a specific tool, and then choosing Proton 10-24. Note that you would need to use ProtonUp-Qt to add it to Steam as well, if you only used Bottles. It's also possible that a Proton-GE version will not be needed and you could use Proton Hotfix. I haven't tested this.
  6. Launch Battle.net from Steam as you would any Steam game, and launch Diablo IV from it. You'll need to sign into Battle.net again; your login from Bottles will not be preserved. Your installation however should be found by the launcher, and you shouldn't need to re-download anything.
  7. Play! Or, quit the game and go run it from Bottles where (for me at least) it magically worked.

Why I'm annoyed: I'm used to things working in Steam that I couldn't get working in Bottles. I don't know what the difference is, but things just work in Steam that don't elsewhere. That's not bothering me. What's bothering me is that it worked in Bottles again afterward! Whatever Steam did ought to be in Steam's own WINE prefix for the game, which is entirely separate from Bottles'. (This is why you had to log into Battle.net again on the Steam side.) I don't get it, and I don't like not getting it. I've wasted more of poor Aravisian's time on "but why though?" than I have on getting actual help from the poor guy. This is going to drive me nuts.

Anyway, you can play either from Steam or Bottles now, as you please. Enjoy.

Edit: Oh, right, the means to see the error. Before running from steam, open a terminal and type flatpak run com.usebottles.bottles. This will launch Bottles with the terminal window showing extra debug output. Run Diablo as you've been trying to, and when you hit the error, look at the terminal to see the error I mentioned. This is kind of a Linux protip in general: if a windowed application isn't working, running from the terminal can often get you more information.

First, thanks for all the work. Second, I'll get right to testing everything you typed when I get a moment, tonight most probably. I'll let you know of my findings. :slight_smile:

1 Like

So, one thing that does not translate on my system is the ability to launch Battle net from Steam. It just plain doesn't work.

I can't attach a video and the forums do not like Imgur so let me try to post it to Youtube and report back with the link.

(Seems like it was battle dot net that was causing the error?)
https://imgur.com/a/Q2Ttbxh

So that's a new one. :smiley:

Hi Locklear,

Don't know what happened, my account got abruptly deactivated and our discussion wiped?

I had to create a new account... What's up with that?

Anyway, I just wanted to let you know I followed the instructions in the discussion and it doesn't work on my computer. :frowning:

I am now afraid of posting any links at all because I fear this was the problem with my previous posts?

I'm just afraid of getting the boot again and I'm gonna run out of email addresses...

@community-moderators Any idea what happened here? I can confirm that @MrDecapoda and I had had substantial conversation here, entirely revolving around fixing his Diablo 4 install. All of it, including my posts, have vanished.

MrDecapoda, since I didn't get the problem you're now having (I did in fact see your post before it vanished), please try running steam from a terminal (steam is the command) and repeating the whole process--let me know what, if anything, is output in the terminal when you try to launch the Diablo 4 launcher.

1 Like

Sorry, still in shock about my account being deactivated, realized I didn't provide much information.

SO, the problem is that when I add the launcher in Steam and configure it completely, I hit "Launch" and then it says "Running" for about 2 seconds and then ... it closes.

I'll do what you asked in your answer. :slight_smile:

ALRIGHT. We're making some progress now.

So, I tried to launch Steam from the terminal. The command "Steam" was not recognized, terminal told me to install it. So that got me thinking...

I installed Steam from the Store, so it was a Flatpack. I uninstalled Steam from the store, then apt installed it from terminal.

After doing so and using ProtonUp-Qt to push ge-proton10-24 in the new Steam installation, I went ahead and added Bnet Launcher (carefully avoiding links here, lol) and it works!

So I can play the game from Steam. I will now try to launch it from Bottles to see if your (now vanished) solution applies to my configuration as well.

EDIT & UPDATE

Both my Bottles will NOT launch the game, they have the same behavior as before : "Graphics Initialization Failed"

At least it's consistent on my machine? :smiley: Haha!

1 Like

Yeah, Steam is a really bad one to use as a flatpak from what I understand. I personally use the .deb straight from Valve since they provide one, but since Steam is cleverly written and self-updates, you should be fine to use what's in the repository. As for the command line not working with the flatpak, flatpaks being what they are don't have their own command as such--you'd have had to run it with flatpak run com.valvesoftware.Steam. Glad you have a route to run the game now, and the likely problem with running the launcher was Flatpak Steam not having access to your Bottles directory.

*bonks head on desk*

But whyyyyyyyyyyyyyyyyyyyyyyyyyy? It makes no sense that it worked for me, but if it did, it ought to have worked for you as well! *flail*

I'm happy with the solution you help me put in place.

Funny story : being all content about running from Steam, I went ahead and deleted both my Bottles. ... ... ... ALONG WITH THE GAME.

But, being prepared for my inevitable stupid moves, I did a backup of the complete D4 game directory on my desktop.

I just moved that directory to /home/games and added "D4 Launcher" to Steam which, when launched, reinstalled Bnet Launcher in a mysterious C: drive somewhere. Probably in a Steam sub directory. I wouldn't know. It works.

LOL

Thanks again for the helping hand, is there a kudos system in here, a way I can show my appreciation a little further? <3

The gaming category isn't a "help" category as such, so there's no option to mark my responses as a solution... and we still have the ongoing mystery of what happened to the solution I wrote up. As such, about all you can do is click the little heart on stuff that I wrote, which shows appreciation, even if it can't mark my advice as a fix.

Ordinarily, this is going to be in ~/.steam/steam/steamapps/common/ with a subdirectory, but given that Diablo IV did the launcher reinstallation... I honestly don't know.

1 Like