# DiabloWeb：基于 Devilution 的 WebAssembly 浏览器移植

> 将社区重建 Diablo 原始源码的 Devilution 精简分支编译为 WebAssembly，并配合 React 前端，使 Diablo 可在网页浏览器中运行。该分支移除了 Storm、DiabloUI、DirectX 和 Windows 依赖，并为浏览器改写事件处理。这是基于重建成果的移植，本身未报告一致性或行为等价检查。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/d07RiV/diabloweb>
- 一手来源：<https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/diabloweb-devilution-wasm-port-case/>
- 记录 JSON：<https://awesomerea.org/resources/diabloweb-devilution-wasm-port-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/diabloweb-devilution-wasm-port-case/index.md)

## 使用条件与局限

- **前提条件：**完整游戏需使用者从正版取得的 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 文件夹。
- **范围：**所审阅的是 diabloweb 1.0.39 的最后一次提交（2022 年 5 月）。零售版与共享软件版的预构建 WebAssembly 模块及一个 MPQ 压缩器已提交入库；其 C／C++ 源码位于独立的 d07RiV/devilution 分支。该分支 README 称修改了大量代码、不保证行为正确且网络对战不可用；diabloweb 含 WebSocket 和 WebRTC 客户端模块。
- **测试证据：**两份 README 均未报告测试、一致性结果或与原可执行文件的对照，所审阅的前端代码树也没有测试文件。可游玩性的依据是托管部署。
- **许可：**diabloweb 没有许可文件。分支附带 Unlicense 文本，但其 README 将源码限于非商业用途；当前上游 Devilution 采用 Sustainable Use License 1.0，Blizzard 仍保有 Diablo 及其数据的权利。

## 一手来源

1. <https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/README.md>
2. <https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/package.json>
3. <https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/src/App.js>
4. <https://github.com/d07RiV/diabloweb/blob/c61ef19c54ea646aed328bd8cc82c8a5f1ebd81d/src/fs.js>
5. <https://github.com/d07RiV/devilution/blob/798b5122731ae4b5e0c91348e5c44cf79354a94e/README.md>
6. <https://github.com/d07RiV/devilution/blob/798b5122731ae4b5e0c91348e5c44cf79354a94e/LICENSE>
7. <https://github.com/d07RiV/devilution/blob/798b5122731ae4b5e0c91348e5c44cf79354a94e/build.js>
8. <https://github.com/diasurgical/devilution/blob/9f01757243412bb154d02d9af65c804159e6e0ea/README.md>
9. <https://github.com/diasurgical/devilution/blob/9f01757243412bb154d02d9af65c804159e6e0ea/LICENSE.md>

## 同分区更多条目：游戏

- [Dusklight：基于反编译的《黄昏公主》原生移植](https://awesomerea.org/zh/resources/dusklight-twilight-princess-port-case/index.md) · 案例
- [Ghostship：基于 libultraship 的 Super Mario 64 原生移植](https://awesomerea.org/zh/resources/ghostship-sm64-port-case/index.md) · 案例
- [GoldenEye 007：基于反编译成果的智能体辅助原生移植](https://awesomerea.org/zh/resources/goldeneye-pc-port-case/index.md) · 案例
- [ico-pc：由 PS2 反编译源码编译而成的《ICO》原生移植](https://awesomerea.org/zh/resources/ico-pc-port-case/index.md) · 案例
- [Kingdom Hearts 358/2 Days：基于一致性反编译的原生 PC 移植](https://awesomerea.org/zh/resources/khdays-native-pc-port-case/index.md) · 案例
- [LEGO Island 可移植版：反编译源码的多平台移植](https://awesomerea.org/zh/resources/lego-island-portable-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
