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/ containing ExeFS and RomFS.

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 .app bundle 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 .app bundle to another computer.

Step 3: First Launch & Resource Selection

  1. Double-click the generated .app in ~/dm-work/out/macapp/.
  2. On first launch, a native macOS file dialog will prompt you to select the game resource folder.
  3. Select ~/dm-work/data/switch/3.3.94012/Update (or the RomFS directory inside it). The folder must contain a data subdirectory with the 18 .data archive files and build_manifest.psv.
  4. A correct selection is validated and saved permanently.
  5. 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 (WASD takes 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 is host.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 (⌘Q on Mac; swipe away on iOS).
  • In the iOS Files app, go to On My iPhone > D2R Mobile and copy the entire save folder to your Mac via AirDrop or cable.
  • Back up your existing Mac save folder, then place the phone's save folder into ~/Library/Application Support/D2R Mobile/.
  • Ensure character folders and Settings sit directly under save/ 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'.