Set up an Apple silicon Mac
D2R Mobile compiles into a native macOS desktop application on Apple Silicon Macs. This guide covers building for macOS 26+ versus macOS 15–25, working directory dependencies, resource selection, save locations, and upstream-documented keyboard/mouse mappings.
Overview
On Apple Silicon Macs (M1, M2, M3, M4), D2R Mobile compiles into a native macOS application (D2R Mobile.app). It runs the full game with gamepad, keyboard, and mouse support, using local ad-hoc code signing without requiring developer accounts or weekly certificate refreshes.
For the separate community standalone package, see cloud builds. Do not apply this local workspace dependency to every community Mac package. We have reviewed the source instructions, not performed a game installation ourselves.
System Requirements
- Hardware: Any Apple Silicon Mac (M1 through M4 series). Intel x86_64 Macs are unsupported.
- Operating System Tiers:
- macOS 26 or later: Uses the default Metal 4 graphics pipeline; produces
D2R Mobile.app. - macOS 15.0 through 25.x: Uses the older Metal 3 compatibility pipeline; produces
D2R Mobile M3.app. - Game Files: Switch update release 1.0.34.0 (PC version 3.3.94012), placed at
~/dm-work/data/switch/3.3.94012/Update/containingExeFSandRomFS.
Step 1: Prepare Environment and Game Files
Open Terminal on your Mac and verify your dumped Switch game files:
git clone https://github.com/d2r-mobile/d2r-mobile.git
cd d2r-mobile
./setup.sh check
When ./setup.sh check confirms READY, run ./setup.sh to initialize the workspace and build dependencies.
Step 2: Build the Native App
Activate the workspace Python virtual environment and run the Mac build tool:
# 1. Activate the environment created by setup.sh
source ~/dm-work/build/cache/dm/venv/bin/activate
# 2. Build for your macOS version:
# For macOS 26 or later (default Metal 4):
dm/tools/mac_app.sh
# For macOS 15.0 through macOS 25.x (older Metal 3 API):
DM_MAC_M3=1 dm/tools/mac_app.sh
Build Output and Critical Local Invariant
- The default build takes approximately 10–20 seconds and produces
~/dm-work/out/macapp/D2R Mobile.app(approx. 3 MB). - The older-API build (
DM_MAC_M3=1) recompiles shader libraries for macOS 15 (taking 3–4 minutes on first run) and produces~/dm-work/out/macapp/D2R Mobile M3.app. - Critical Invariant: The generated
.appbundle contains only the host binary. The rewritten game program, translated shader libraries, and UI overlays reside inside your working directory (~/dm-work). The application records and references these local paths. - Do not move, delete, or clean
~/dm-work. - The application runs only on the specific Mac that compiled it; do not copy the
.appbundle to another computer.
Step 3: First Launch & Resource Selection
- Double-click the generated
.appin~/dm-work/out/macapp/. - On first launch, a native macOS file dialog will prompt you to select the game resource folder.
- Select
~/dm-work/data/switch/3.3.94012/Update(or theRomFSdirectory inside it). The folder must contain adatasubdirectory with the 18.dataarchive files andbuild_manifest.psv. - A correct selection is validated and saved permanently.
- On launch, the game displays a keyboard shortcut reference sheet (subsequently accessible from the menu bar under Help).
Controls and Key Mappings
The macOS app supports dynamic input switching: prompts on screen display keyboard shortcuts when typing, and switch back to gamepad letters when a controller button is pressed.
Keyboard Mappings
| Action / Gamepad Button | Keyboard Key |
|---|---|
| Confirm (A) | Space or J |
| Back (B) | Esc or K (in game with no panel open, Esc opens inventory group) |
| Return | Confirm; acts as + for prompt hints (e.g. Accept); enters game on main menu |
+ (Menu / New Character) |
= key |
− (Map) |
Tab |
| Left Stick (Move) | W A S D |
| D-pad | Arrow Keys |
X / Y |
U / I |
L / R |
Q / E |
ZL / ZR |
Z / C |
| Stick Press (L3 / R3) | F / G |
Mouse Actions
- Left click ground: Walk to clicked point (pathfinding around obstacles). Hold left button to continuously follow pointer (
WASDtakes priority). - Left click monster: Attack with primary skill bound to
J. Hold to continue attacking. - Right click: Back (
B). - Mouse wheel: Scroll inventory and UI lists.
- Interactions: Click NPCs, chests, waypoints, or ground items to walk over and interact. Double-click items to equip or drink. Click and hold empty inventory space to tidy the tab.
Window & Exit Shortcuts
- Full Screen:
⌃⌘F(Control + Command + F). - Save & Quit:
⌘Q(Command + Q) or closing the window. The application automatically saves game progress before terminating (waits up to 3 seconds for save write).
Saves, Logs, and iPhone Transfer
- Save Game Directory:
- Default build:
~/Library/Application Support/D2R Mobile/save - Older-API build:
~/Library/Application Support/D2R Mobile M3/save - Diagnostic Logs: Written to
~/Library/Logs/D2R Mobile/host.log(previous run ishost.prev.log). Use Help > Share Log... in the menu bar to package logs for troubleshooting. - Importing Saves from iPhone/iPad:
- Fully quit the game on both devices (
⌘Qon Mac; swipe away on iOS). - In the iOS Files app, go to On My iPhone > D2R Mobile and copy the entire
savefolder to your Mac via AirDrop or cable. - Back up your existing Mac
savefolder, then place the phone'ssavefolder into~/Library/Application Support/D2R Mobile/. - Ensure character folders and
Settingssit directly undersave/without extra nesting.
Verification & Operational Notes
- Input Verification: Key mappings and windowing features are derived from upstream keycode definitions and automated CI test runs.
- Performance: Frame rates vary depending on screen resolution and Apple Silicon tier; figures mentioned in upstream documentation reflect test runs and should be treated as guidance rather than guaranteed performance metrics.
Frequently Asked Questions
Can I move D2R Mobile.app to another folder or copy it to another Mac?
For the local build described here, the app records paths inside ~/dm-work. Do not delete or relocate that workspace or expect the small app bundle alone to run on another Mac. The community standalone package is a different build route; follow its own instructions.
Can Intel x86_64 Macs run D2R Mobile?
No. D2R Mobile executes ARM64 Switch binaries natively on ARM64 Apple Silicon (M1 through M4). Intel Macs cannot execute ARM64 instructions without full emulation, which is strictly unsupported.
Where are save files and diagnostic logs located on macOS?
Saves are stored in '~/Library/Application Support/D2R Mobile/save' (or 'D2R Mobile M3/save' for older-API builds). Diagnostic logs are written to '~/Library/Logs/D2R Mobile/host.log'.