OpenDriver2/REDRIVER2
GitHub: OpenDriver2/REDRIVER2
将 PlayStation 游戏 Driver 2 的 MIPS 机器码完整逆向还原为 C 源码并实现跨平台原生运行的开源逆向工程项目。
Stars: 1264 | Forks: 71
# REDRIVER2 (逆向工程版 Driver 2)
在 Windows 上运行的游戏:

在 Firefox Web 浏览器中运行的游戏:

在 PlayStation(模拟)上运行的游戏

构建状态(Windows 和 Linux):
[](https://ci.appveyor.com/project/SoapyMan/redriver2-10jm8/branch/master)
### 简介
- 这是一个原版游戏——它经过了仔细且完整的反汇编,并从 MIPS 逆向翻译回了 C 语言(Memory Card 菜单除外)——***不涉及任何模拟***
- 游戏相较于原版 PlayStation 版本有了*显著改进*,修复了原始 Bug,并完善了一些未完成的玩法内容
- 它现在可以在 Windows、Linux 上运行,并且即将支持其他平台(包括向 PlayStation 的反向移植),同时利用 [Psy-X (Psy-Cross)(前身为扩展版 TOMB5 模拟器)](https://github.com/OpenDriver2/REDRIVER2/tree/master/src_rebuild/PsyX)作为 PlayStation 的移植层
- 基础 Mod 支持——通过 [OpenDriver2Tools](https://github.com/OpenDriver2/OpenDriver2Tools) 提供纹理和模型替换功能
### 这是如何做到的?
- 所有信息(变量、类型和函数名)均从调试符号(.SYM)、driver_psx_level 和 DLE 中获取
- 使用 Ghidra 项目(基于意大利语 SYM)来处理 overlay 和简单的代码复杂分支——半自动反编译
- 当遇到 Ghidra 无法妥善处理的情况时,使用基于西班牙语 SYM 的 IDB——手动反编译(主要是 GTE 代码)
历史:
- 2019年2月19日 - 创建了基础框架,进行了长达一年的准备工作
- 2020年3月28日 - 开始重新实现游戏,游戏开场动画可运行
- 2020年9月19日 - 游戏重新实现完成 - 游戏已完全可玩
- 2021年1月15日 - 代码重构完成
### 如何使用
请参阅 [Wiki/安装说明](https://github.com/OpenDriver2/REDRIVER2/wiki/Installation-instructions)
### 如何贡献?
请参阅 [为项目做贡献](https://github.com/OpenDriver2/REDRIVER2/wiki/Contributing-to-project) 页面
### 未来计划
- ***OpenDriver2*** 项目——完全重写,增加大量新功能,例如*新渲染器和声音引擎、Lua 脚本、Driver 1 内容支持*
### 致谢
- **SoapyMan** - 首席逆向工程师和程序员
- **Fireboyd78** - 代码重构与改进
- **Krishty, someone972** - 早期格式解码
- **Gh0stBlade** - 作为 Psy-Cross 基础的 HLE 模拟器代码 [(链接)](https://github.com/TOMB5/TOMB5/tree/master/EMULATOR)
- **Ben Lincoln** - [This Dust Remembers What It Once Was](https://www.beneaththewaves.net/Software/This_Dust_Remembers_What_It_Once_Was.html) (*TDR*)
- **Stohrendorf** - [Symdump](https://github.com/stohrendorf/symdump) 工具
标签:Driver 2, Ghidra, IDA, MIPS汇编, PlayStation, PSX, Psy-X, URL提取, Wayback Machine, Web浏览器, 云资产清单, 反汇编, 反编译, 复古游戏, 客户端加密, 开源游戏, 游戏Modding, 游戏移植, 游戏逆向, 源码还原, 经典游戏重制, 调试符号, 软件重构, 逆向工程, 驱动程序2