# D2R Mobile: rehosting Diablo II: Resurrected’s Switch program on Apple devices

> Runs the Nintendo Switch release’s own aarch64 program natively on iPhone, iPad and Apple silicon Macs, rewriting only instructions that depend on the Horizon kernel and supplying its system services and the NVN graphics API on Metal. Shaders are translated offline from the user’s files, and the project adds its own touch interface and endgame features. It is a rehosting compatibility layer, not a decompilation or recompiled source.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-18
- Added to the catalog: 2026-10-18
- Original resource: <https://github.com/jhaizhou-ops/d2r-mobile>
- Primary source: <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/README.md>
- Catalog page: <https://awesomerea.org/resources/d2r-mobile-switch-rehost-case/>
- Record JSON: <https://awesomerea.org/resources/d2r-mobile-switch-rehost-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/d2r-mobile-switch-rehost-case/index.md)

## Requirements & limits

- **Prerequisites:** Supply your own Switch program files (ExeFS main, sdk and subsdk0) and RomFS update data for that version; the rewritten program, translated shaders and on-device resource folder are generated locally from them. The repository holds no game code, art, text or shaders, but records shader interface tables, graphics-API names and about 800 main-program addresses, itemized in docs/DERIVED.md.
- **Prerequisites:** The main route is a full build on an Apple silicon Mac with Xcode, the Python environment that setup.sh prepares and an Apple signing account; a no-Xcode route packages a prebuilt shell on Windows, with Linux packaging and sideloading-tool signing reported unverified. Shader translation bundles Ryujinx’s translator, and SPIRV-Cross emits Metal source.
- **Scope:** Targets only the Switch release with the Reign of the Warlock expansion at 1.0.34.0 (PC 3.3.94012); the rewrite rules stop on other versions. README reports iPhone/iPad builds for A14/M1 or later (iOS 26, or iOS 18–25 via an older-API build) and native Apple silicon Mac builds; A16-and-earlier devices need an extra texture pack, Apple TV is a community developer preview, and Intel Macs, A13-and-earlier chips and online play are unsupported.
- **Testing evidence:** dm/verify documents structural checks and Unicorn-based equivalence tests for every rewrite site, which need only the user’s files, plus unit tests. Save, tick-state and screenshot gates compare against ground-truth recordings from a patched Ryujinx; those recordings and driver scripts are not shipped, so these gates cannot be rerun from the repository. README reports a 44-device closed beta and dated iPhone 17 Pro Max measurements.
- **License:** The project declares MIT; bundled third-party code keeps its own license (the Ryujinx translator MIT, deko3d-derived code zlib, FLIP BSD 3-Clause). Seven offline-play rewrites come from a community patch whose authorship and license are unknown. Blizzard and Nintendo retain their rights in the game.

## Primary sources

1. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/README.md>
2. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/dm/README.md>
3. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/dm/verify/README.md>
4. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/docs/GAME_FILES.md>
5. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/docs/DERIVED.md>
6. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/docs/DEPENDENCIES.md>
7. <https://github.com/jhaizhou-ops/d2r-mobile/blob/9393b00ea9aca52d9254214da93738f26582562f/LICENSE>

## More in Games

- [Destiny 2 build 86657: Sunrise/Dawn reconstruction research report](https://awesomerea.org/resources/destiny2-build-86657-reconstruction-report-case/index.md) · Case study
- [DLSSNR-AMD: reimplementing DLSS 5 neural rendering for RDNA4](https://awesomerea.org/resources/dlssnr-amd-neural-rendering-case/index.md) · Case study
- [Does reverse engineering need a bigger model? General and specialist models in Touhou reconstruction](https://awesomerea.org/resources/rea-bigger-model-essay-case/index.md) · Case study
- [FH2MP: reconstructed Forza Horizon 2 online services](https://awesomerea.org/resources/fh2mp-case/index.md) · Case study
- [game-and-watch-patch: Nintendo Game & Watch custom firmware](https://awesomerea.org/resources/game-and-watch-patch-cfw-case/index.md) · Case study
- [GTA Mode: reverse-engineering SimCity 3000 Unlimited for a native plugin](https://awesomerea.org/resources/simcity-3000-gta-mode-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
