本页目录

Doom 64 逆向工程(DOOM64-RE)

DOOM64-RE · Erick194/DOOM64-RE

由 [GEC] 完成的 Doom 64 逆向工程源码,使用 C 语言;据 README 说明,需要安装 N64 SDK 进行编译,并建议在 Windows XP 或虚拟机中操作。目前仅兼容美版 Doom 64,编译前需借助 Tools 目录中的 Doom64Extractor,从原版 ROM 提取 WAD、...

动作游戏 射击 自研引擎 C 关卡管理 游戏状态管理 音频系统 渲染技术 专家
★ Stars 239 Forks 26 License GPL-3.0 更新 2026-11-06

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
N64 SDK 与 iQue SDK 的下载链接指向 mega.nz 与 ultra64.ca,国内访问可能不稳定;编译依赖 Windows XP 或 Red Hat Linux 9 等旧系统,通常需借助虚拟机;原版 ROM 与数据文件需自行准备,待核验。

中文项目介绍

DOOM64-RE 是开发者 [GEC] 对《Doom 64》进行的一次完整逆向工程,目标是把这款 N64 平台上的经典射击游戏还原为可重新编译的 C 语言源码。根据 README 的说明,这项工作前后历时约一年半,其中前期进展有限,作者从当年 6 月起重新从零开始,理论上用约 5 个月完成了整体重构。

需要强调的是,本仓库提供的是逆向所得的源码工程,而不是一个开箱即用的游戏发行版。它依赖原版 ROM 中的数据文件,并且需要特定的老式工具链才能编译出可运行的 N64 ROM。

技术架构分析

安装与构建流程

README 给出了两条构建路线,分别面向 N64 SDK 与 iQue SDK。

N64 SDK 路线

  • 下载并安装 N64 SDK(README 提供了 mega.nz 链接,并给出 n64.dev 作为参考站点)。
  • 编译环境要求使用 Windows XP,也可以在虚拟机中完成。
  • SDK 安装完成后,把 doom64 文件夹复制到硬盘根目录 C:\。
  • 目前仅兼容美版《Doom 64》。
  • 编译前需要原版数据:DOOM64.WAD、DOOM64.WMD、DOOM64.WSD、DOOM64.WDD。
  • 进入 Tools 目录解压 Doom64Extractor.zip(含源码),编辑 ExtraerDatos.bat,把其中的 Doom 64 (Usa) .z64 替换为你自己的 ROM 文件名,ROM 必须是 z64 格式,然后执行该批处理,把提取出的数据复制到 Data 文件夹。
  • 若手上只有 n64 或 v64 格式,可用 Tools 中的 Tool64_v1.11.zip 转换为 z64。
  • 最后运行 MAKE_ROM.bat,编译产物为 doom64.n64。

iQue SDK 路线

  • 下载并安装 iQue SDK(README 指向 ultra64.ca 的软件页面)。
  • 编译环境要求 Red Hat Linux 9,同样可用虚拟机。
  • 把 doom64 文件夹复制到用户主目录。
  • 同样仅兼容美版,同样需要上述四个原版数据文件。
  • 在 Tools 目录中按 dm64ex.cpp 内的说明编译 Doom64 Extractor,然后执行 ./dm64ex -i baserom.us.z64 提取数据(ROM 名仅为示例,格式须为 z64)。
  • 把提取数据放入 Data 文件夹,回到主目录执行 make PLATFORM=BB,产物 doom64.n64 可在 iQue 上运行。

补充说明

工程说明

README 的 Notes 部分交代了几个实现细节:

  • 项目使用 CodeBlocks 创建,但它的作用不是编译,而是让代码保持有序、便于查看与核对。
  • 音频部分可以选择复用原版《Mortal Kombat Trilogy》N64 中的 WESSLIB.o,而不使用作者重建的代码。做法是在 wessarc.h 中去掉 //#define NOUSEWESSCODE 前的斜杠,使其变为 #define NOUSEWESSCODE;随后在 Makefile 中把 WESSLIB = #wesslib.o 改为 WESSLIB = wesslib.o,并把 ASMFILES = wessint_s.s 改为 ASMFILES = #wessint_s.s,再编译 ROM。

功能动态

README 的 News 列表记录了作者在原版基础上解锁或新增的若干选项:

  • SECURITY KEYS:原版中被锁定的功能,可给予关卡内全部可用钥匙。
  • WALL BLOCKING:原版中被锁定的功能,作者将其视作 Noclip。
  • LOCK MONSTERS:原版中被锁定的功能,可停止敌人移动,效果类似 Doom 64 Ex。
  • MUSIC TEST:原版中被锁定的功能,可播放游戏内可用音乐。
  • Colors:作者新增的功能,可开关颜色。
  • FULL BRIGHT:作者新增的功能,让所有颜色完全清晰。
  • FILTER:作者新增的功能,用于开关游戏的三点滤镜。

学习建议

本仓库更适合对 N64 平台开发、老式工具链以及游戏逆向工程感兴趣的读者:阅读时可先关注 Tools 中的数据提取流程,理解原版资源如何被拆解与重组;再结合 Makefile 与 wessarc.h 的开关,观察音频模块在“重建代码”与“复用原版库”之间的取舍。需要注意,README 未提供 Stars、实际构建结果或运行验证信息,编译环境又依赖 Windows XP / Red Hat Linux 9 等旧系统,实际复现前应做好环境准备与核验。

开源许可证与版权说明

许可证标识:GPL-3.0。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目