{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/package.json",
    "https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/src/App.js",
    "https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/src/fs.js",
    "https://github.com/d07RiV/devilution/blob/798b5122731ae4b5e0c91348e5c44cf79354a94e/README.md",
    "https://github.com/d07RiV/devilution/blob/798b5122731ae4b5e0c91348e5c44cf79354a94e/LICENSE",
    "https://github.com/d07RiV/devilution/blob/798b5122731ae4b5e0c91348e5c44cf79354a94e/build.js",
    "https://github.com/diasurgical/devilution/blob/9f01757243412bb154d02d9af65c804159e6e0ea/README.md",
    "https://github.com/diasurgical/devilution/blob/9f01757243412bb154d02d9af65c804159e6e0ea/LICENSE.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Runs Diablo in web browsers by compiling a stripped-down fork of Devilution, the community reconstruction of the game’s original source, to WebAssembly behind a React front end. The fork removes the Storm, DiabloUI, DirectX and Windows dependencies and reworks event handling for the browser. It is a port built on a reconstruction and reports no matching or behavior-equivalence checks of its own.",
  "description_zh": "将社区重建 Diablo 原始源码的 Devilution 精简分支编译为 WebAssembly，并配合 React 前端，使 Diablo 可在网页浏览器中运行。该分支移除了 Storm、DiabloUI、DirectX 和 Windows 依赖，并为浏览器改写事件处理。这是基于重建成果的移植，本身未报告一致性或行为等价检查。",
  "entry_url": "https://awesomerea.org/resources/diabloweb-devilution-wasm-port-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/diabloweb-devilution-wasm-port-case/",
  "evidence_url": "https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/README.md",
  "group": "cases",
  "id": "diabloweb-devilution-wasm-port-case",
  "json_url": "https://awesomerea.org/resources/diabloweb-devilution-wasm-port-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/diabloweb-devilution-wasm-port-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/diabloweb-devilution-wasm-port-case/index.md",
  "name": "DiabloWeb: a WebAssembly browser port built on Devilution",
  "name_zh": "DiabloWeb：基于 Devilution 的 WebAssembly 浏览器移植",
  "reconstruction_method": "port",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "Reviewed diabloweb 1.0.39 at its last commit (May 2022). Prebuilt WebAssembly modules for the retail and shareware builds, and an MPQ compressor, are committed; their C/C++ source is the separate d07RiV/devilution fork. That fork’s README says many parts of the code were modified, correct behavior is not guaranteed and network play was broken; diabloweb carries WebSocket and WebRTC client modules.",
    "The full game needs the user’s own DIABDAT.MPQ from an original copy (the page points to the GOG release); the shareware SPAWN.MPQ runs the free demo. Data files are selected or dropped in the browser, saves are kept in IndexedDB and can be downloaded or uploaded as .sv files, and the app can optionally compress the MPQ locally. Neither repository includes retail game data.",
    "The front end is a webpack/React project built with Node.js. Rebuilding the WebAssembly modules requires Emscripten and the fork’s node build.js; the fork can also build a Windows app in Visual Studio 2017. README says the hosted page serves the shareware SPAWN.MPQ; local runs need it placed in the public folder.",
    "Neither README reports tests, matching results or comparisons with the original executable, and the reviewed front-end tree has no test files. Reported playability rests on the hosted deployment.",
    "diabloweb has no license file. The fork ships Unlicense text, yet its README limits the source to non-commercial use; current upstream Devilution uses the Sustainable Use License 1.0, and Blizzard retains its rights in Diablo and its data."
  ],
  "requirements_zh": [
    "所审阅的是 diabloweb 1.0.39 的最后一次提交（2022 年 5 月）。零售版与共享软件版的预构建 WebAssembly 模块及一个 MPQ 压缩器已提交入库；其 C／C++ 源码位于独立的 d07RiV/devilution 分支。该分支 README 称修改了大量代码、不保证行为正确且网络对战不可用；diabloweb 含 WebSocket 和 WebRTC 客户端模块。",
    "完整游戏需使用者从正版取得的 DIABDAT.MPQ（页面指向 GOG 版）；共享软件版 SPAWN.MPQ 可运行免费试玩。数据文件在浏览器中选择或拖入，存档保存在 IndexedDB，可作为 .sv 文件下载或上传，应用也可在本地选择压缩 MPQ。两个仓库均不含零售版游戏数据。",
    "前端是以 Node.js 构建的 webpack／React 项目。重建 WebAssembly 模块需要 Emscripten 及分支中的 node build.js；该分支也可用 Visual Studio 2017 构建 Windows 应用。README 称托管页面提供共享软件版 SPAWN.MPQ；本地运行需将其放入 public 文件夹。",
    "两份 README 均未报告测试、一致性结果或与原可执行文件的对照，所审阅的前端代码树也没有测试文件。可游玩性的依据是托管部署。",
    "diabloweb 没有许可文件。分支附带 Unlicense 文本，但其 README 将源码限于非商业用途；当前上游 Devilution 采用 Sustainable Use License 1.0，Blizzard 仍保有 Diablo 及其数据的权利。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/d07RiV/diabloweb",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
