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
Unofficial build maintained at github.com/jonx/D4Mac while upstream is quiet β every change is also submitted upstream as a PR. Not affiliated with @MichaelLod; tips still go to him.
Supported
- Hardware/OS: Apple Silicon (M1βM4/M5), macOS 14 Sonoma or later.
- Diablo IV: β confirmed working on the current patch β 3.1.0 (verified end-to-end on
3.1.0.72698, Season 14, 2026-07). 3.1.0 started importingFindNextFileNameW, which stock Wine doesn't export, so the game aborts at launch with error 127 on other builds β this one adds the export, so it launches to the menu and plays.- Blizzard can change the client on any patch; if a future D4 patch breaks launch, open an issue and it'll need a new build.
Good to know
- Logging in works β an emailed verification code, a browser passkey, or the Battle.net mobile app push notification all work for signing in.
- D4Mac doesn't need network access. It makes no game-server connections and doesn't need the "find devices on local network" permission β that prompt comes from Battle.net (its LAN peer-download feature) and is safe to Deny. (D4Mac only reaches the internet to check for its own updates.)
- You can quit D4Mac once your game is running β Battle.net and the game run as independent processes and keep playing after the launcher closes.
- First-play stutter is normal. Diablo IV compiles Metal shaders the first time you cross into a new area or trigger a new effect, which causes brief hitches. They fade as you play β the shader cache builds up and persists across sessions, so revisits and later sessions are smooth. (Not a bug, and not specific to this build.)
- RAM matters. Diablo IV wants ~20 GB of unified memory. Verified comfortable on a 32 GB Mac; on 16 GB Macs expect heavy swapping and stutter β set Texture Quality to Low/Medium and close other apps, or it'll struggle.
Everything here is also open as an upstream PR β this build just bundles them while upstream is between releases:
- Diablo IV 3.1.0 launch fix β exports
FindNextFileNameWso the Season 14 client loads (else: error 127). - Battle.net installs on a clean Apple Silicon Mac β bundles the x86_64 FreeType/GnuTLS chain, so no Intel Homebrew needed (fixes the blank-window /
BLZBNTBTSβ¦install failures). (PR #4) - Fast downloads + stable gameplay β Wine sync defaults to
Noneand the Settings toggle actually works (fixes the ~4 KB/s throttle and mid-session freezes). (PR #4) - Live install progress bar (%, GB, MB/s). (PR #4)
- Import an existing Diablo IV install β reuse a CrossOver/Porting Kit/Whisky/GPTK download instead of re-downloading ~140 GB. (PR #6)
- Move bottle to another disk β put everything on an external SSD, linked back invisibly. (PR #9)
- Reset launcher state β one-click fix for Battle.net stuck on "Update β Queued." (PR #8)
- Metal FPS/HUD toggle. (PR #7)
- Signed + notarized β clean double-click install (no right-click bypass).
- @MichaelLod β created D4Mac. All the hard parts (the Wine/GPTK stack, the launcher) are his. Tips go to him, via the in-app button and d4mac.com.
- @BastianOrth2 β the FreeType/GnuTLS bundling, sync-off default, and progress bar (PR #4).
- @0ximu β deep diagnostics in issue #2 (missing-library cascade, sync deadlocks, launcher-state reset, external-SSD setup).
- @jonx (this fork) β the Diablo IV 3.1.0 fix, plus #6 (import existing install), #7 (Metal HUD), #8 (reset launcher state) and #9 (external-drive move).
This fork is a stopgap and will happily be obsoleted by an official release.
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 end-to-end Β· patch 3.1.0 confirmed working (3.1.0.72698, 2026-07) |
| First-launch shader compile | β ~50 % of the time it hangs once on the Metal pipeline race; second launch always works |
| Other Blizzard titles | not tested β try and open an issue |
- Apple Silicon Mac (M1, M2, M3, M4 β any)
- macOS 14 (Sonoma) or later
- ~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.