Free, open-source Battle.net launcher for Apple Silicon Macs. Run Diablo IV and other Blizzard games natively. No CrossOver licence. No subscription.
π d4mac.com Β· π₯ Download latest Β· π Report an issue Β· πΊ Buy me a beer
A native macOS .app that wraps a self-contained Wine 11.0 + Apple Game
Porting Toolkit 3.0 stack, set up specifically to run Battle.net and
Diablo IV on Apple Silicon. Drag-to-Applications, double-click, log into
Battle.net, play.
The launcher itself is MIT-licensed open source. The .app bundle ships
third-party binaries (Wine, GPTK, DXMT, MoltenVK, MS VC++ Redist, Adobe
Source Han Sans) β see THIRD_PARTY_LICENSES.md
for the full breakdown.
| Game / app | Status |
|---|---|
| Battle.net | β launches, login + chat work, keyboard works |
| Diablo IV | β playable; β see Known issues for in-game hangs |
| Other Blizzard titles | not tested β try and open an issue |
After anywhere from a few minutes to several hours of play, the game can
freeze unrecoverably and macOS shows a persistent beachball. This is a
Rosetta 2 deadlock, not a Wine or D3DMetal bug β the wedged thread
parks on os_sync_wait_on_address inside Apple's libd3dshared.dylib,
triggered when Blizzard's anti-cheat reads translated x86_64 code pages.
CodeWeavers publicly confirmed
this is an Apple-side bug β nothing the launcher can patch from the Wine
side.
Fix: upgrade to macOS 26.4 Tahoe (released 2026-03-24) or later. Apple silently patched the underlying Rosetta 2 issue in 26.4. Users report 1+ hour clean play sessions on 26.4 where 26.3 and earlier still freeze.
If you can't upgrade yet, these mitigations reduce β but do not cure β the freeze frequency:
- Run the game in Windowed or Borderless Windowed mode (not Fullscreen)
- D4 Graphics β disable FSR; set Background FPS to 30
- Bottle env (Settings β Advanced):
WINEESYNC=1,ROSETTA_ADVERTISE_AVX=1
About half the time, the very first launch hangs during the initial
Metal pipeline shader compile β a race in Apple's D3DMetal pipeline
state object creation. Force-quit (ββ₯β) and relaunch; the second
launch always works because the shader cache is now warm.
Switching macOS Spaces or invoking Mission Control while D4 is running in fullscreen can wedge the game's main window thread (an AppKit busy-spin variant). Running in Borderless Windowed mode avoids this entirely.
- Apple Silicon Mac (M1, M2, M3, M4 β any)
- macOS 14 (Sonoma) or later β macOS 26.4 Tahoe strongly recommended for D4 stability (see Known issues)
- ~400 MB free for the
.appbundle, plus space for the Battle.net + game install (Diablo IV is ~80 GB) - Apple ID (only if Gatekeeper prompts you to verify the bundle on first launch)
Intel Macs are not supported and will not be β Apple's GPTK is Apple-Silicon-only.
- Grab the latest signed
D4Mac.dmgfrom the Releases page. - Open it, drag
D4Mac.appto/Applications. - Launch it. The first run unpacks Wine and runs the Battle.net installer; it takes ~2 minutes.
- Log in to Battle.net, install your game, play.
If a launch ever gets weird (Battle.net hangs, login fails repeatedly), open
Settings β Reset bottle. The reset rebuilds the bottle from the bundled
prereqs β your D4Mac.app itself stays untouched.
Battle.net + Diablo IV on Apple Silicon already work via CrossOver, but CrossOver is $74 and bundles features most users don't need. Apple's GPTK is free for non-commercial redistribution, and Wine has been LGPL since forever. There was no reason this had to cost anything β so it doesn't.
D4Mac is funded entirely by beer tips. Optional, never gated, no nag.
git clone https://github.com/MichaelLod/D4Mac.git
cd D4Mac
Resources/Fonts/fetch.sh # downloads MS Core Fonts (one-time)
Prereqs/fetch.sh # downloads VC++ Redistributable (one-time)
# build.sh also auto-runs Prereqs/fetch-wine-libs.py to stage the x86_64
# FreeType/GnuTLS chain into the Wine runtime (one-time, ~8 MB from GHCR).
./build.sh # debug build
./build.sh --release # optimised
./build.sh --release --notarize --dmg # full release pipelineYou'll also need a built Wine 11.0 runtime staged at ../wine-cx26.1/.
See THIRD_PARTY_LICENSES.md for sources, or
the LGPL CodeWeavers release at media.codeweavers.com/pub/crossover/source/.
build.sh --release --notarize --dmg produces a signed + notarised DMG ready for distribution. Notarisation requires:
- Developer ID Application certificate installed in your keychain
- Apple notarytool credentials saved as profile name
D4Mac(xcrun notarytool store-credentials D4Mac β¦)
ββββββββββββββββββββββββ
β D4Mac.app (Swift) β SwiftUI launcher: bottle manager,
β β first-run installer, Battle.net launcher
ββββββββββββ¬ββββββββββββ
β spawns
βΌ
ββββββββββββββββββββββββ
β Wine 11.0 (LGPL) β PE loader, kernel32, ntdll, β¦
β + Apple GPTK 3.0 β D3D12 / D3D11 (64-bit) β Metal forwarders
β + DXMT v0.72 β D3D11 / DXGI (32-bit, BNet CEF) β Metal
β + MoltenVK β Vulkan fallback
ββββββββββββββββββββββββ
The whole runtime lives inside the .app bundle at
Contents/SharedSupport/Wine/. No system-wide install, no PATH
manipulation, no admin password.
| Path | Purpose |
|---|---|
Sources/D4Mac/ |
SwiftUI launcher source |
Resources/ |
App icon, Info.plist, fonts, entitlements |
Resources/Fonts/fetch.sh |
One-time fetch of MS Core Fonts For The Web |
Prereqs/fetch.sh |
One-time fetch of VC++ Redistributable installers |
Prereqs/fetch-wine-libs.py |
Stages the x86_64 FreeType/GnuTLS chain into Wine's lib/external (GHCR bottles) |
web/ |
The d4mac.com Next.js site (download landing page, BMC tip checkout, dashboard) |
build.sh |
Build / notarise / DMG packaging |
THIRD_PARTY_LICENSES.md |
Per-component licence breakdown |
LICENSE |
MIT β for the launcher source only |
Use GitHub Issues. Include:
- macOS version (e.g. 14.5 Sonoma)
- Mac model (e.g. MacBook Pro M3 Pro)
- D4Mac version (Settings β About)
- Logs from
~/Library/Logs/D4Mac/ - Screenshots if you have them
Launcher source: MIT β see LICENSE.
The .app bundle ships third-party binaries with their own licences.
Most importantly, Apple's GPTK is redistributable for non-commercial
use only, which means D4Mac itself can be freely distributed for
download but may not be sold while GPTK is bundled. See
THIRD_PARTY_LICENSES.md for every
component and its terms.
D4Mac is a community project. Not affiliated with, endorsed by, or sponsored by Blizzard Entertainment, Apple Inc., or CodeWeavers Inc. "Diablo" and "Battle.net" are trademarks of Blizzard Entertainment.