一位工程师把一款任天堂64游戏完整逆向,只用了84天。同一系列的前作,他花了596天。时间差接近7倍,但他说,AI不是全部答案。

2026年8月26日,工程师克里斯·刘易斯在个人博客上公布:N64游戏《滑雪少年》的逆向工程已100%完成。所有函数都用C语言重新写了一遍,只要编译,就能生成和原版游戏完全一致的机器码。

打开网易新闻 查看精彩图片

这不是简单的"跑通"。逆向工程的终点是"可复现"——代码结构和原版逐位对齐,编译产物和卡带里的二进制一模一样。做到这一步,才算真正把游戏拆解到了骨架上。

打开网易新闻 查看精彩图片

84天 vs 596天,差在哪

刘易斯此前逆向过《超级滑雪少年》,耗时596天。这次只用了大约七分之一的时间。他把原因归结为两点:大语言模型的使用,以及——他强调——不只是大语言模型。

AI真正发挥作用的场景很具体:标准库代码的比对。这部分工作量大、模式重复,AI能快速匹配已有资源。但要让AI用上现成的库资源,需要更高级的提示词工程,也就是人类专家持续介入。

换句话说,AI是加速器,不是发动机。刘易斯明确表示,没有逆向工程社区的大量协作,这件事不可能完成。他点名感谢了inspectredc、queueRAM、Bl00D4NGEL等人。

真正的硬骨头:一个失传的编译器

整个项目最难的部分,是分析SGI开发的专有编译器IDO 5.3。这个编译器没有公开源码,还依赖早已过时的SGI硬件。不靠社区做逆向和重新编译,根本没法理解它的行为,更别说让它在现代硬件上跑起来。

IDO的麻烦在于它的多阶段优化和代码生成流程。C语言代码只要改动一点点,寄存器分配就可能大幅变化。这种不可预测性,直接让AI驱动的逆向工作流变得复杂。

刘易斯对IDO行为的评价是:理解它"更接近艺术,而不是科学"。

AI在这里的表现有明显边界。它在"标准库代码匹配""特定编译器怪癖记录"这类有公开信息可用的领域很活跃。项目里有一个叫DECOMPILATION_LEARNINGS.md的文件,专门记录IDO的"怪癖",在多个AI代理之间形成了学习反馈循环。调试工具N64 Decomp Workbench则帮助定位代码不一致的原因,区分结构问题和寄存器分配问题。

打开网易新闻 查看精彩图片

但AI不擅长复现IDO的独特输出。要还原IDO的行为,人类团队的专业知识和直觉仍然不可替代。

完成之后,活才刚开始

逆向100%完成,不等于项目结束。刘易斯把"完善游戏文档"列为最优先事项。目标是让每个函数都能和C代码对应上,但现状是,并非所有函数的功能都已搞清楚。

接下来的工作包括:

  • 把生成的函数名改成更贴合实际内容的名字
  • 找出那些用途不明的结构体字段
  • 清理生成的代码

与此同时,《滑雪少年》的重新编译工作也在推进。刘易斯发现,这里出现的很多bug,和当年修《超级滑雪少年》重新编译时遇到的是同一批。

他还提到了几个后续方向:把《滑雪少年》的关卡和内容移植到《超级滑雪少年》的引擎上,以及逆向PlayStation版的《滑雪少年Plus》。

博客的结尾是一句招募:欢迎更多人加入。

84天这个数字容易被读成"AI赢了"。但拆开看,AI吃掉的是可检索、可模式化的那部分工作量;真正卡住项目进度的,是一个没有源码、依赖老旧硬件、行为难以预测的编译器,以及一群愿意花时间逆向它的人。