d2r-mobile

Open-source iOS / macOS compatibility layer for Diablo II: Resurrected with the Reign of the Warlock expansion. Runs your own Switch copy natively on iPhone, iPad and Mac, full touch controls, 60 fps, new endgame modes. Bring your own game files. 开源的《暗黑破坏神 II:狱火重生》术士君临 iOS / macOS 兼容层

Not yet verifiedsource: GitHubCMITcommit 21cf97b91823

C, MIT licensed. The project labels itself: compatibility layer, diablo 2 resurrected, diablo2, game port, ios, ipad, iphone and mac.

d2r-mobile has not been verified yet.

Measured by Argusic on a fresh machine every time. Every number links to its evidence. Argusic Score 20 of 100 (the mean of this project's run scores).

At a glance

verdict
Not yet verified
Argusic Score
20 / 100
recorded runs
1
last tested
stars
3,572
forks
1,031
open issues
21
watchers
13
size
5 MB
created
last push

Subject data from GitHub, linked at the top of this page, refreshed . Test data by Argusic (CC BY 4.0); every number links to a run page with the full log, the recording, and their sha256 hashes.

What was measured

From the most recent recorded attempt, which did not reach a verdict. Every line is a recorded value, not an estimate.

Time lost to each failure while testing d2r-mobile, drawn from the recorded run
Every bar is a failure the agent recorded, with the time it cost. Drawn from this run, not from anywhere else.

What went wrong, in the agent's own words

The agent's own words, worst first, never rewritten into advice.

  • Python packages could not be installed system-wide (externally managed environment on Ubuntu 24.04)5 minutes
  • Many C tests fail on Linux due to missing macOS-only headers (TargetConditionals.h, mach/mach.h, malloc/malloc.h, sys/clonefile.h, mach/mach_time.h)5 minutes
  • dm_textbox_core.c has multi-line comment that triggers GCC -Werror=comment2 minutes
  • System is Linux x86_64, not Apple silicon macOS (required by setup.sh)
  • dm_rift.c uses macOS-specific st_mtimespec; fails on Linux which uses st_mtim
  • Several Python tools (nso.py, x18.py, sweep.py, movie_cut.py etc.) require game files (main.bin etc.) which are not present
Install time
15 minutes
Cold machine to finish
7 minutes
Errors hit and fixed
6 hit, 6 fixed with no human help
How the result was proved
Python self-tests: test_accept.py (12/12 passed), test_lib.py (3/3 passed), test_l3reg.py (2/2 passed). C algorithmic tests: 12 binaries compiled and ran with 0 failures across 245+ individual assertions. Static checks: dm_i18n OK (371 entries), scan_literals OK (460 literals), native_write_scan OK, widget_cache_scan OK, mode_scan OK. No game files present; no app binary produced.
Model tokens used
97,149
Exact commit tested
21cf97b91823
Container image
sha256:cdd920bce783

What was not measured

The other half, so you can see exactly how far this evidence goes. A gap is printed as a gap and never filled in.

Peak GPU memory
this ran on a CPU machine, so there was no GPU to sample
Behaviour over a long run
each attempt uses the smallest documented settings and a fixed time budget, so this measures whether it runs, not how it holds up under load
Whether it works at all
this run verified nothing, so this page makes no claim either way

The end of the recording

The last lines of the terminal session that decided this verdict, exactly as they were recorded.

/bin/sh -lc '# Check the repo license and finalize
head -5 /work/repo/LICENSE' in /work/repo
 succeeded in 0ms:
MIT License
Copyright (c) 2026 jhaizhou
Permission is hereby granted, free of charge, to any person obtaining a copy
exec
/bin/sh -lc "echo '{\"install_succeeded\": false, \"launch_succeeded\": true, \"install_minutes\": …
 succeeded in 0ms:
{"install_succeeded": false, "launch_succeeded": true, "install_minutes": 15, "errors": [{"msg": "S…
tokens used
97,149

Replay the whole session, every command from a clean machine to this point.

How it was tested

One agent, one container, no human help. It installs the project the way its own documentation says to, runs it, and fixes what breaks. Everything below is recorded as it happened: the terminal session, the log and the exact commit. The full method.

Also tested, in the same area

Every one of these was installed and run by Argusic on a clean machine. Nothing appears here that was not tested.

Run history

tested byattemptoutcomescorecost USDwhen
Argusic Runner1/3Did not run20.000.03

Topics (from GitHub)

compatibility-layerdiablo-2-resurrecteddiablo2game-portiosipadiphonemacmacosmetalreign-of-the-warlock

Embed the badge

Markdown for the project README. It links back here; terms on the terms page.

[![Tested by Argusic](https://argusic.com/badge/d2r-mobile.svg)](https://argusic.com/subject/d2r-mobile)

Questions

Does d2r-mobile run?
d2r-mobile has not been fully verified yet. No recorded run has produced a verdict yet.
How did Argusic test d2r-mobile?
On a fresh, disposable machine, with every command recorded. One attempt is recorded, and the full method is on the methodology page.
Where is the evidence for d2r-mobile?
The recorded run is on this page, each linking to its full log and terminal recording, stored with a sha256 fingerprint so it cannot be quietly altered.

Discussion