Playing Diablo IV on macOS
- modified:
- reading: 7 minutes
It is incredible. You can actually play AAA games on your Mac that require DirectX12. Diablo IV is one of them. I am able to play Diablo IV on my maxed-out MacBook Pro 16" 2023 with M2 Max 96Gb of RAM.
Don’t want to get credit on that, as I have found an almost working for me solution on r/macgaming.
Prerequisites
I am running the latest macOS 14 (Sonoma), but some people mentioned that it might work on macOS Ventura as well. You need to have an Apple Silicon Mac, as it will not work on Intel-based Macs.
Install Command Line Tools for Xcode 15
Download and Install Command Line Tools from https://developer.apple.com/download/all/.
Install Rosetta 2
Rosetta 2 is allowing you to run Intel-based apps on Apple Silicon. Considering that most of the games for Windows are
built for Intel (x86-64
architecture), you will need to install Rosetta 2.
Open terminal and run:
softwareupdate --install-rosetta
Install Game porting toolkit
Download it from https://developer.apple.com/download/all
and run Game_porting_toolkit_1.1.dmg
. It will mount a volume in "/Volumes/Game Porting Toolkit-1.1"
.
You can open Read Me.rtf
file to read more about the Game porting toolkit and how to use it.
Switch to Intel architecture in terminal
Open terminal and run:
arch -x86_64 zsh
That will run all the following commands under Rosetta 2 with Intel architecture.
Install homebrew
Even if you already have homebrew installed on your macOS, it is probably installed for Apple Silicon. You need to install it for Intel architecture.
Homebrew is an unofficial package manager that most of the developers use to install various tools for Development, Terminals, and not only. It is very respected in the community and has a lot of packages available.
To install it, you can look at the installation manual at https://brew.sh, you need to run the following command in the terminal (here, and later I already assume that you are running it under Rosetta 2, see the previous section):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
If you already have homebrew
installed for Apple Silicon, that version is located under /opt/homebrew
. The version
for Intel will be installed under /usr/local
. So they are not going to conflict with each other.
But you want to tell this terminal session to use /usr/local
instead of /opt/homebrew
. To do that, you need to modify
the PATH
environment variable for this terminal session. You can do that by running:
export PATH="/usr/local/bin:${PATH}"
Make sure that when you run which brew
it prints /usr/local/bin/brew
.
You can also check that homebrew
is installed for Intel correctly by running:
brew doctor
And see if there are any permission issues. For me, I had to run the following
sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions
If you already had
homebrew
installed for Intel, you might have to runbrew update
andbrew upgrade
to update.
Install game-porting-toolkit
Tap (brew terminology to add) official packages provided by Apple for homebrew
brew tap apple/apple http://github.com/apple/homebrew-apple
And install them
brew -v install apple/apple/game-porting-toolkit
If you see an error similar to one I had, that svn is missing just run
brew install subversion
and try again.
That command will run for a while (40 minutes on my MBP 16" 2023). It will install a lot of dependencies.
Prepare Diablo IV
I decided to keep all the games in ~/Games
, so I have created a folder in my home director
mkdir ~/Games
After that I decided to keep all Battle.net games in one folder under ~/Games/battle-net
.
Configure that for the current terminal session (command to tell Wine where the games are located):
Wine is a tool to run Windows apps on macOS. It is used by Crossover and Game Porting Toolkit provided by Apple.
export WINEPREFIX=~/Games/battle-net
Prepare the folder for Diablo IV
`brew --prefix game-porting-toolkit`/bin/wine64 winecfg
A “Wine configuration” window should appear on your screen. Change the version of Windows to Windows 10. Choose Apply and then OK to exit winecfg.
Install Game Porting Toolkit library directory into Wine’s library directory
ditto /Volumes/Game\ Porting\ Toolkit-1.1/redist/lib/ `brew --prefix game-porting-toolkit`/lib/
And copy all the required executables to /usr/local/bin
, so you can access them later without attaching Game Porting Toolkit volume.
cp /Volumes/Game\ Porting\ Toolkit-1.1/gameportingtoolkit* /usr/local/bin
Update a Windows version in Wine registry to match expected build by Battle.net app
`brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuild /t REG_SZ /d 19042 /f
`brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /t REG_SZ /d 19042 /f
`brew --prefix game-porting-toolkit`/bin/wineserver -k
Install Battle.net app and Diablo IV for Windows
Download Battle.net app for Windows from https://www.blizzard.com/download/.
Assuming you have it downloaded in your ~/Downloads
folder, verify that Wine already has it too:
ls ~/Games/battle-net/drive_c/users/crossover/Downloads/
You should see Battle.net-Setup.exe
there.
Install Battle.net app for Windows
gameportingtoolkit ~/Games/battle-net ~/Games/battle-net/drive_c/users/crossover/Downloads/Battle.net-Setup.exe
You should see Battle.Net app window on your screen. Login with your Blizzard account and install Diablo IV. After installing, you can launch the game.
By default, you will see a performance HUD, that shows you FPS, CPU, and GPU usage. You can use it to configure the game Graphics settings to get the best performance. Later we can disable them.
Diablo IV Graphics settings
I am playing on 6k external display. My resolution is set to 3072x1728 in game. To get the best performance, I have set Quality Preset to Ultra, and changed FidelityFX Super Resolution to Quality. I see about 40-50 FPS in the game.
Creating a shortcut to launch Diablo IV
You can always launch Diablo IV from the terminal by running
PATH="/usr/local/bin:${PATH}" arch -x86_64 /usr/local/bin/gameportingtoolkit-no-hud ~/Games/battle-net ~/Games/battle-net/drive_c/Program\ Files\ \(x86\)/Diablo\ IV/Diablo\ IV\ Launcher.exe
Here I am using gameportingtoolkit-no-hud
instead of gameportingtoolkit
to disable the performance HUD.
But I found it nicer to create a shortcut to run the game without opening the terminal. To do that, you can open an Automator.app on your macOS and
create a new Application. Add a Run Shell Script
action and paste the following code there:
#!/bin/zsh
export PATH="/usr/local/bin:${PATH}"
(arch -x86_64 /usr/local/bin/gameportingtoolkit-no-hud ~/Games/battle-net ~/Games/battle-net/drive_c/Program\ Files\ \(x86\)/Diablo\ IV/Diablo\ IV\ Launcher.exe) || true
Save the application to ~/Applications/Diablo IV.app
(create the folder ~/Applications
if it doesn’t exist).
Download a Diablo IV
image for example from Diablo IV Official Website.
In Finder go to the folder where you save Diablo IV.app
, select it and Open Get Info
(⌘I). Drag and drop the image
to the top left corner of the window. It should replace the default icon.
Now you can launch Diablo IV from the Applications folder.
How to upgrade Game Porting Toolkit
At this point, we assume that you have already installed Game Porting Toolkit 1.1 using this guide.
Make sure to download the latest Xcode 15, Command Line Tools for Xcode 15, and macOS 14.
After that download the latest Game_porting_toolkit_X.XX.dmg
from https://developer.apple.com/download/all
and run downloaded Game_porting_toolkit_1.1.dmg
. It will mount a volume in "/Volumes/Game Porting Toolkit-1.1"
.
Open terminal.
Update/install Rosetta
softwareupdate --install-rosetta
Switch to the x86_64 architecture
arch -x86_64 zsh
Point to the x86_64 version of Homebrew
export PATH="/usr/local/bin:${PATH}"
And run the following commands (this command will take a long time to finish):
brew update
brew upgrade
Now copy all the required executables and libraries to /usr/local/bin
.
ditto /Volumes/Game\ Porting\ Toolkit-1.1/redist/lib/ `brew --prefix game-porting-toolkit`/lib/
cp /Volumes/Game\ Porting\ Toolkit-1.1/gameportingtoolkit* /usr/local/bin
At this point, you should be able to launch Diablo/Battle.net using that Automator shortcut we created earlier.
Having issues?
If you have any questions, the best place to ask questions is r/macgaming. You can reach out to me, but CrossOver and Wine is new to me too. I am just sharing my experience.
Troubleshooting and known issues
Battle.net app is asking for an update
If you see a message, that Battle.net app needs to be updated. At the current moment, you can still play Diablo IV without updating. Do not try to update Battle.net app, as it will not finish successfully and probably froze during the update.
If you already started the process of updating, you will have to kill the wine processes in your Activity Monitor.
To do that, open Activity Monitor, search for wine
and kill all the processes.
Removing HUD (performance overlay)
During this guide I have used gameportingtoolkit
to install the game, and later switched to gameportingtoolkit-no-hud
to
disable the performance overlay. Both of the binaries are available in the mounted volume of Game Porting Toolkit.
And during this guide I have copied both of them to /usr/local/bin
.
If you want to suggest a change or update this guide, you can open a pull request to this repository.
See Also
- Review of Macbook Pro 14 (M1 Max, 32GPU Cores, 64GB Memory) - Performance, Windows, Parallels and more
- My apps were listed at the top of Developers Tools (iOS and Mac App Stores), I made around $60
- Running multiple macOS side by side (no Flash Drive required)
- CloudAnalytics for AWS Amplify (Analyzing AWS Amplify Access logs. Part 3)
- Spotlight, Automator and Siri as a replacement for Alfred