Ogre Battle 64 重编译项目进度99.05%
摘要
本项目旨在使用N64Recomp工具链将N64游戏Ogre Battle 64静态重编译为原生PC可执行文件,主要代码段已完全重编译。工作主要由DeepSeek v4/v4.1 Flash AI模型完成。
查看缓存全文
缓存时间: 2026/09/21 00:37
lfarroco/ogre-battle-64-recomp 来源: https://github.com/lfarroco/ogre-battle-64-recomp
《魔神天骑战记64:高贵血统》(PC移植项目)
使用 [N64Recomp] 工具链,将N64游戏《魔神天骑战记64:高贵血统》(美版, Rev A)静态重编译为原生PC可执行文件。
本仓库不包含任何受版权保护的游戏数据。
您必须自行提供ROM转储文件(请见下文)。
系统要求
一台64位PC及渲染器支持的GPU:
- GPU — Windows平台需Direct3D 12.0 (Shader Model 6.0) 或Vulkan 1.2;Linux平台需Vulkan 1.2;macOS平台需Metal。支持的最低GPU型号大致为GeForce GT 630、Radeon HD 7750 (2012年) 和Intel HD 510 (Skylake架构)。
- CPU — x86-64架构,支持SSE4.1指令集(Intel Core 2 Penryn、AMD Bulldozer或更新)。macOS构建版本需要Apple Silicon芯片。
- 操作系统 — Windows 10或11 (64位);macOS 11或更新版本(Apple Silicon);带有Vulkan 1.2驱动的glibc Linux。
- 内存 — 2 GB。模拟的N64系统占用512 MB。
- 磁盘 — 应用程序约需150 MB,外加ROM文件。
- 游戏数据 — 需要您自行提供《魔神天骑战记64》(美版, Rev A) 的卡带转储文件,40 MB,格式为
.z64、.n64或.v64。本项目不包含任何游戏数据。
使用键盘即可游玩;支持XInput (Windows) 或SDL控制器协议的手柄为可选配件。音频设备也为可选项:若无音频设备,游戏将以静音模式运行。
在Windows上无需安装Visual C++可再发行组件——软件包已包含其着色器编译器所需的运行时环境。
如果游戏启动时崩溃,请首先更新显卡驱动。
在较旧的GPU上,可通过设置环境变量 OGRE_CONSOLE=1 打开显示启动日志的控制台,并通过 OGRE_GRAPHICS_API 指定后端(vulkan 或 d3d12)。
AI 声明
本项目的工作主要由 DeepSeek v4/v4.1 Flash 模型完成。
项目状态
主要代码段(807个函数)已完全重编译为C语言。运行时应用程序(渲染、输入、音频)是下一个里程碑。完整计划、当前状态和技术发现请参阅 PLAN.md。
目录结构
assets/
您的ROM文件(已加入gitignore;预期为大端序 .z64 格式)
asm/
由splat生成的反汇编代码
debug/
针对wasm构建的无头浏览器探针(参见 debug/README.md)
config.yaml
splat配置文件(段定义、虚拟内存映射)
config.toml
N64Recomp配置文件
Makefile
汇编 + 链接 + 重编译流程
n64recomp-ob64.patch
我们对N64Recomp的修改(应用于上游克隆)
rt64-plume-sdl.patch
我们对RT64 plume的补丁——针对SDL >= 2.0.22的防护(应用于具有较旧SDL2的系统(如Ubuntu 22.04)上的 tools/RT64 子模块)
PLAN.md
项目计划
快速入门
请参阅 PLAN.md 中的 “复现” 章节。 摘要:
# 工具(macOS)
brew install mips-linux-gnu-binutils cmake
python3 -m venv tools/venv && tools/venv/bin/pip install 'splat64[mips]'
git clone --recurse-submodules https://github.com/N64Recomp/N64Recomp.git tools/N64Recomp
git -C tools/N64Recomp apply ../../n64recomp-ob64.patch
cmake -S tools/N64Recomp -B tools/N64Recomp/build -DCMAKE_BUILD_TYPE=Release
cmake --build tools/N64Recomp/build --target N64RecompCLI -j4
# ROM:将您的 .z64 转储文件放入 assets/ 目录,然后重新生成重编译代码
# (参见 docs/guides/app-build.md -> "Regenerating the recompiled code")
make regenerate
ROM必须是美版Rev A的转储文件(40 MB,.n64 为16位字节交换格式或已转换的.z64格式)。tools/convert_rom.py 可用于转换 .n64 → .z64。
在运行 make regenerate 一次之前,全新克隆无法构建应用程序:重编译的C代码(RecompiledFuncs/, Bank*Funcs/, RspFuncs/, app/src/bank_funcs.inc)由您自己的ROM生成,并且有意不提交到仓库中。
make regenerate 会按照特定顺序运行splat、MIPS链接器、34个bank单元、主重编译和RSP微代码。
构建并运行应用程序
cmake -S app -B build-app -DCMAKE_BUILD_TYPE=Release
cmake --build build-app -j
./build-app/ogrebattle64
启动后,应用会显示一个黑色的开始屏幕——显示 OGRE BATTLE 64: RECOMP / CLICK TO LOAD YOUR ROM (OR DROP IT IN THIS WINDOW)。点击此区域选择您的ROM,将ROM拖放到窗口上,或将ROM放在可执行文件旁边。ROM会通过哈希校验并存储,因此后续启动将直接进入游戏。电池存档文件将保存在 可执行文件同级目录 的 saves/ 文件夹中。
可分发的构建版本
make dist # -> dist/ogre-battle-64-recomp/ (一个独立的自包含可执行文件)
make dist-zip # -> dist/ogre-battle-64-recomp-.zip
软件包是一个单独的文件:SDL2是静态链接的(make dist 会获取并构建一个固定版本的完整SDL2,因为Homebrew的 sql2 是基于SDL3的兼容层,不提供静态库)。软件包不包含游戏数据,因此玩家需要在启动屏幕上提供自己的ROM。
请参阅 docs/guides/app-build.md → “Distribution”。
渲染器 (tools/RT64) 是一个固定到上游提交的git子模块,在SDL版本低于2.0.22的系统(例如Ubuntu 22.04搭载SDL 2.0.20,但 SDL_GetWindowSizeInPixels 需要2.0.22+)上需要打一次补丁:
git submodule update --init --recursive
git -C tools/RT64/src/contrib/plume apply ../../../../rt64-plume-sdl.patch
在 tools/RT64 内部进行任何 git submodule update 后需要重新应用补丁,因为更新会重置子模块并丢弃补丁。
法律声明
《魔神天骑战记64》© Quest / Nintendo。本项目用于保存和互操作性研究。请勿分发ROM或其提取的游戏资产。 [N64Recomp]: https://github.com/N64Recomp/N64Recomp
相似文章
Snowboard Kids 2 已实现100%反编译
作者宣布,任天堂64游戏《Snowboard Kids 2》现已完全反编译,意味着所有函数都有了对应的C语言实现,并能够编译回原始汇编代码。该项目耗时近两年,功劳归于N64反编译社区以及AI编程助手(Claude、GLM、Codex)的加速作用。
在84天内反编译一款Nintendo 64游戏
文章宣布在84天内完整反编译Nintendo 64游戏Snowboard Kids,强调社区贡献和AI辅助,与以往项目相比,进度更快。
如何在2026年制作一款Nintendo 64游戏
作者详细讲述了他如何将自己的JavaScript游戏引擎移植到C语言,并制作出由Modretro发行的实体N64新游戏Xibalba 64——这是N64主机商业生命周期结束后推出的第二款新游戏。
这个周末你打算做什么?
一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。
Resident Evil 4 (GameCube) – 完全的字节级一致反编译至 C/C++
一个 GitHub 仓库提供了《Resident Evil 4》为 Nintendo GameCube 完全反编译至 C/C++,确保字节级一致,并包含构建工具和验证方法以重现原始二进制文件。