DIABLO II: RESURRECTED / BUILD GUIDE
Build Diablo II: Resurrected for Mac
Prepare the tools, check the workspace, then run the app builder for your macOS version. The final section helps you recover if a stage stops.
The sequence is setup.sh check → setup.sh → mac_app.sh. Run these from the D2R Mobile source folder. The final app appears in ~/dm-work/out/macapp/.
Prepare the Mac and source
- App target: Apple silicon with macOS 26+, or macOS 15–25 for the older-API app.
- Build Mac: Apple silicon with full Xcode 26.6 and the Metal compiler; Xcode 26.6 requires macOS Tahoe 26.2–26.x.
- Homebrew, XcodeGen, .NET 10 SDK, SPIRV-Cross and Python 3.
- The supported Switch game files and expansion.
brew install xcodegen dotnet spirv-cross pythongit clone https://github.com/jhaizhou-ops/d2r-mobile.git
cd d2r-mobile
git checkout 53e7c5bOpen Xcode once to complete its setup and install its required components before starting. Python packages are installed by setup.sh in the workspace environment.
The older-API app can run on macOS 15+, while this documented toolchain needs a newer build Mac. See Apple’s Xcode system requirements before preparing the workspace.
Put the game files in place
~/dm-work/data/switch/3.3.94012/Update/
├─ ExeFS/
│ ├─ main
│ ├─ sdk
│ └─ subsdk0
└─ RomFS/
└─ data/
├─ build_manifest.psv
└─ *.dataFor a whole game package containing the supported base and update, use the project’s extractor. It needs hactool; the extractor setup instructions explain building that tool and setting HACTOOL if it is outside your PATH.
dm/tools/extract_game.sh "/path/to/game.nsp" "/path/to/prod.keys"Extraction needs about 20 GB extra free space. The setup check asks for at least 30 GB before game data is present, or 15 GB once it is in place.
Check, prepare, then build
Run the read-only health check
./setup.sh checkResolve each missing tool or game-file message before continuing.
Prepare the workspace
./setup.shThe preparation finishes without a failed step. Keep the first error if it stops.
Activate its Python environment
source ~/dm-work/build/cache/dm/venv/bin/activateYour Terminal is using the workspace environment before the app command.
Build for your system
dm/tools/mac_app.shDM_MAC_M3=1 dm/tools/mac_app.shFind D2R Mobile.app or D2R Mobile M3.app in ~/dm-work/out/macapp/.
Choose the resources on first launch
Open the app in Finder
The first launch asks for a game resource folder. Select ~/dm-work/data/switch/3.3.94012/Update or its RomFS folder. The selected folder must lead to the game’s data folder.
The folder is accepted; a wrong selection produces an explanation and lets you choose again.
Read the key reference
It appears once and is available later from Help. To change language, use Options → Custom, select the language, Accept All, then reopen the app.
The main menu appears and you can start character creation.
Keep ~/dm-work and the output directory in place. The app is locally signed; building the Mac app does not require an Apple developer account.
If a step stops
| What happens | Next action |
|---|---|
| Missing tool or wrong game version | Run ./setup.sh check; fix the item it names, then rerun setup. |
| App cannot run on this macOS | On macOS 15–25, use the DM_MAC_M3=1 build. |
| Resource folder rejected | Select Update or RomFS with the expected data folder, not an unrelated game installation. |
| Need a log | Help → Share Log… prepares a local archive containing current/previous logs and version information. |
After updating project code, run ./setup.sh again before rebuilding the app. Keep a save backup before changing versions. The macOS first-open guide covers system warnings rather than game-data errors.