案例
C2C:《古惑狼 2》的混合重编译与手工反编译
一个早期的 PlayStation《古惑狼 2》逆向工程项目:把引擎的 MIPS 机器码直接转换为一个体量巨大的 C 文件,并调用改造后的 PCSX-R 模拟器库处理硬件 I/O。转换出的函数计划逐个手工反编译为普通 C 代码,逐步替换机械转换的部分。
- 目标
- 游戏
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 来源复核于
使用条件与局限
- 前提条件:运行需要用户自有的 PAL 版《古惑狼 2》光盘原始 BIN 镜像(含完整扇区头)及该光盘中的 SCES_009.67 可执行文件,另需第三方 PlayStation 模拟器的 GPU、SPU 和两个手柄插件,以及一个 128 KB 记忆卡文件;仓库不附带游戏数据。
- 前提条件:仅支持 Windows:主程序在 Cygwin 下使用 GNU Make、GCC 和 SDL2 构建,模拟器库需要 Microsoft Visual C++ 2005 或更高版本,可选的 C# 反汇编器需要 Visual C# 2005 或更高版本。develop 分支的开发集中在 2015 年 1 月至 4 月,没有发布版本。据 2026-10-20 核查,GitHub 记录的最后一次推送为 2020-09-30,仓库未归档,README 未标注其仍在维护、已被取代或已归档。
- 局限:README 警告该软件不适合日常使用,也未报告可游玩程度。其转换器几乎不做反编译,也不解析间接跳转或跳转表,因此代码区域须手工列出;docs/FUNCTIONS.md 在列出的 818 个函数入口中仅为 18 个命名。
- 许可:项目未公布字节一致或等价性检查。仓库没有许可证文件;源自 PCSX-R 的模拟器源码带有 GPL-2.0 或更高版本的文件头,原游戏保留各自权利。
关于此条目
说明已依据一手来源复核。
一手来源
- README.md GitHub · ughman/c2c · 修订 2e9535f
- docs/FUNCTIONS.md GitHub · ughman/c2c · 修订 2e9535f
- srcdisasm/Main.cs GitHub · ughman/c2c · 修订 2e9535f
- srcemu/gte.c GitHub · ughman/c2c · 修订 2e9535f
- Makefile GitHub · ughman/c2c · 修订 2e9535f
- srczz GitHub · ughman/c2c · 修订 2e9535f
同分区更多条目:游戏
- Castlevania 64: Recompiled:测试版静态重编译移植 · 案例
- Conker's Bad Fur Day: Recompiled:基于 N64Recomp 的原生移植 · 案例
- CPS-2 Recomp:Capcom CPS-2 与 CPS-1 街机游戏的静态重编译 · 案例
- Crash Bandicoot 2 Recompiled:基于 PSXRecomp 的原生构建 · 案例
- Dead Rising 2: Case West:同系列的 Xbox 360 XBLA 静态重编译移植 · 案例
- Dead Rising 2: Case Zero:Xbox 360 XBLA 游戏的静态重编译移植 · 案例