爱好者阿迪蒂亚·辛格(Aditya Singh)放出了《生化危机4》任天堂GameCube调试版的完全字节级一致反编译成果。项目包含超过52.3万行C和C++代码,精确复现了2004年11月25日原型版的原始可执行文件以及全部110个可插拔模块。整个逆向工程耗时不到7天,靠的是基于Fable-5.1模型的自主神经网络代理几乎不间断地工作。
据辛格介绍,在Cursor开发环境里5天的工作总共消耗了略少于200亿个计算token。神经网络不需要设定具体的分步目标,不过由于内存泄漏,程序本身需要定期重启。为了实现机器码的绝对一致,神经网络启动了专门的子代理,从零重新构建了SN Systems公司1999年的GCC编译器,在寄存器分配算法中植入调试钩子,并创建了CodeWarrior编译器的可用模型。
项目中原有的调试符号文件Bio4.sym发挥了重要作用,其中保留了函数的最初命名。即便如此,研究者和人工智能仍需为编译器放置782个特殊标记,包括空汇编代码和特定的对齐结构,才能让机器码实现字节级一致。最终项目包含992个模块,其中673个属于主DOL文件,其余319个分布在负责敌人、武器和游戏房间的可插拔REL库中。
这次反编译揭开了速通玩家和模组制作者20年来一直想破解的隐藏程序机制。代码中终于找到了动态难度隐藏等级修正器的精确公式,此前无法通过内存转储准确计算。还发现整个游戏运行在一个16位随机数生成器上,该生成器每次启动时以相同值初始化,并在8064次掷骰后完全重复循环。此外,源代码中还发现了未使用的作弊码,比如用于加速角色更新循环的KAIOUKEN指令,以及来自Capcom日本程序员的一段隐藏信息,翻译过来是“教授是白痴”。
仓库创建者强调,该项目仅出于研究和数字遗产保护目的发布,不包含Capcom、任天堂和CRI Middleware受版权保护的纹理、声音或二进制文件。用户需要自备合法光盘镜像才能构建项目。同时,完全开源的源代码为社区铺平了道路,使其能够为现代平台创建原版恐怖游戏的非官方原生移植,而无需依赖模拟器。



