案例

DevilutionX:移植重建后的 Diablo 引擎

基于 Devilution 重建成果提供现代平台上的 Diablo 与 Hellfire 移植,加入平台支持、错误修复及可选便利功能。项目记录了早期借助符号信息的重建过程,并包含特定地牢生成与存档回归检查。

使用条件与局限

  • 完整运行 Diablo 需要用户自备原版 DIABDAT.MPQ。Hellfire 还需 hellfire.mpq、hfmonk.mpq、hfmusic.mpq 和 hfvoice.mpq。另行提供的 spawn.mpq 只支持共享版部分;源码公开不附带原游戏内容的使用权。
  • 固定源码标识为 1.6.0-dev,要求 CMake 3.22 和 C++23。默认使用 SDL2,另有 SDL1/SDL3 选项;构建文档列出各平台依赖及打包步骤。这是源码快照,不表示本合集测试了发行版。
  • 背景文档说明 Devilution 借助 PlayStation 调试符号、断言字符串、编译器信息和汇编对照开展重建。历史上的二进制匹配里程碑不能证明加入主动修复与增强后的当前跨平台移植与原可执行文件逐字节一致。
  • 所审阅的 timedemo 测试回放战士从一级到二级的流程并对比角色存档状态;缺少 MPQ 时会跳过,而且明确使用共享版模式。另有地牢测试对比固定随机种子的样本。这些是有限回归检查,并非原版与移植完全等价的结果;本合集均未运行。
  • 根目录 LICENSE.md 声明采用 Sustainable Use License 1.0:使用/修改限于内部业务、非商业或个人用途,分发须免费且用于非商业目的。各组件与原游戏数据仍有各自条款。
  • 同一快照的 Windows 打包 README 仍写有 Public Domain,Apple 应用包配置仍含 Unlicense 元数据。本条保留这些冲突,不据此把当前完整项目称为宽松许可软件,也不裁定条款冲突。所审阅来源未证实 REA 或编程智能体参与。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/README.md
  2. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/docs/BACKGROUND.md
  3. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/VERSION
  4. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/CMakeLists.txt
  5. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/docs/building.md
  6. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/test/timedemo_test.cpp
  7. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/test/drlg_l1_test.cpp
  8. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/LICENSE.md
  9. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/Packaging/windows/README.txt
  10. https://github.com/diasurgical/DevilutionX/blob/94433061f847d22863e5d705c398f7c13d7bab85/Packaging/resources/README-SDL.txt