This is not an arbitrary requirement. The port's entire premise is that iPhone and Switch use the same class of processor (aarch64), so the game's real program can execute on your device natively — with only the handful of instructions that cannot run unchanged under Apple's kernel rewritten, and every other byte left as shipped. The Switch release's program is the one that matches that premise; that is the program whose shaders get translated to Metal, whose system calls the host provides, and whose build the verification tools check.
| Item | Required |
|---|---|
| Release | Nintendo Switch release of Diablo II: Resurrected |
| Expansion | Reign of the Warlock — required. Running the project without it is not supported and has not been verified |
| Version | 1.0.34.0 (the number the console shows; corresponds to PC version 3.3.94012 — the directory names and tools use the latter) |
| Tools behavior | Rule tables are keyed by the main program's build ID; the tools accept that version by default |
The install guide's workspace layout, in one place (default ~/dm-work, or set DM_ROOT):
~/dm-work/data/switch/3.3.94012/Update/ExeFS/ main, sdk, subsdk0
~/dm-work/data/switch/3.3.94012/Update/RomFS/ data/…
Separately, 18 resource archives from your game files go onto the phone itself (about 5.6 GB, placed apart from the ~100 MB app package). The exact on-phone layout is in the project's GAME_FILES.md — updating the app never touches your saves or resources.
If your game is a whole package file rather than extracted files, the install guide's first step handles it:
./setup.sh <game-package> <prod.keys>
This extracts the game files into place and then continues setup (install hactool first). The project ran the whole path with an .xci itself, and users have reported that .nsp packages work perfectly as well — the tools check the main program's version and do not distinguish package formats.
The project provides only tools and an install shell. It does not distribute or endorse, and is not responsible for, any third party distributing game assets, executables or install packages containing game content. Use only game files you legally own. What the repository does carry is interface information — shader interface descriptions, graphics API tables, program addresses — documented item by item in its DERIVED.md. We link no alternative sources, and neither should you.
No PC-copy route is documented. The tools are keyed to the Switch program's build ID, and the project's technical premise (same-class aarch64 program, few instructions rewritten) is about the Switch release's program specifically. Community adaptations mentioned by the project concern other Switch versions, not PC files.
Yes — the project is built for the version with the expansion, and using it without the expansion is not supported and has not been verified. That is the project's own wording, not ours.
The tools accept the documented version by default. When a new game version ships, you follow the project's releases — an updated rule table keyed to the new build ID is what unlocks it, and the project welcomes contributed adaptations. Meanwhile, keep your current files: the app on your phone keeps working with the resources it already has.
From your own console copy — extraction is a local operation between your game and your computer. The install guide shows the workspace layout step by step.
Version numbers, tool behavior and legal statements from the d2r-mobile project README and GAME_FILES.md (accessed 2026-10-15). The "why Switch, technically" explanation restates the project's own architecture description.