Snowboard Kids 2 已实现100%反编译
摘要
作者宣布,任天堂64游戏《Snowboard Kids 2》现已完全反编译,意味着所有函数都有了对应的C语言实现,并能够编译回原始汇编代码。该项目耗时近两年,功劳归于N64反编译社区以及AI编程助手(Claude、GLM、Codex)的加速作用。
暂无内容
查看缓存全文
缓存时间:
2026/05/30 01:22
# 滑雪板小子2 已实现100%反编译
来源:https://blog.chrislewis.au/snowboard-kids-2-is-100-decompiled/
我非常高兴地宣布,《滑雪板小子2》已实现100%反编译!
游戏中所有功能均已用C语言实现,编译后的汇编代码与原版完全匹配。虽然偶尔仍有一些`__asm__`的「黑科技」痕迹 [1](https://blog.chrislewis.au/snowboard-kids-2-is-100-decompiled/#fn:1),且大量代码需要更好的命名和文档,但每个函数现在都有了匹配的C实现。
这一点之所以重要,是因为匹配反编译将游戏从一堆MIPS汇编代码转变为一个可读、可构建、可学习、可修改的代码库。它将有助于重新编译、资源提取、模组开发,以及总体理解N64上最伟大游戏的机制。
截图:decomp.dev上的《滑雪板小子2》反编译报告
[decomp.dev上的《滑雪板小子2》反编译报告](https://decomp.dev/cdlewis/snowboardkids2-decomp)。箱体代表不同文件。
## 历程
该项目耗时近两年,首笔提交于2024年9月 [完成](https://github.com/cdlewis/snowboardkids2-decomp/commit/f1025d16a8aa1d11ec937f8c721af59149feee7c)。
最终匹配时的境况与我开始时的预期大相径庭。此刻,我正和刚出生的女儿一起住院。她身体状况良好,但进食需要一些帮助。反编译成为一种有用的消遣,也是打发安静时光的愉快方式。
我的女儿和我在医院的照片
反编译任何游戏——更不用说N64游戏——的路径都不是特别有据可查。没有N64反编译Discord社区(其成员慷慨地付出了大量时间),这个项目就不可能完成。我特别想感谢 [Bl00D4NGEL](https://github.com/Bl00D4NGEL)、[inspectredc](https://github.com/inspectredc)、[SlaveOfIDO](https://github.com/SlaveOfIDO) 和 [queueRAM](https://github.com/queueRAM),他们对项目做出了重大贡献,尤其是在最后十个函数上。
截图:decomp.dev上的《滑雪板小子2》排行榜
Discord上共享的排行榜,用于跟踪剩余《滑雪板小子2》函数的工作进展。
社区比任何模型都更重要:人们回答了我那些愚蠢的问题,解释了工具,并且亲自反编译了函数。尽管如此,编码智能体也极大地加速了反编译工作,尤其是Claude、GLM和Codex。我不想把这变成又一篇关于AI的博客文章 [2](https://blog.chrislewis.au/snowboard-kids-2-is-100-decompiled/#fn:2),但我确实有一些观察:
1. 根据我在最后十个函数(其中一些是最难的)上的经验,最有效的模型似乎是Codex 5.5 xhigh。历史上Claude更有效,我预计这种情况会继续变化,也许等你读到这篇文章时已经变了。
2. 前沿模型现在非常擅长反编译,但这需要付出成本。对于这种特定工作,GLM可能是性价比最高的。如果你想在自己的反编译项目中尝试编码智能体,但又对高昂的订阅费望而却步,GLM是个不错的起点。
## 接下来做什么?
达到100%反编译在技术上并不阻碍重新编译工作,但对我个人而言更有趣。反编译完成后,我的下一个目标是发布一个高质量的《滑雪板小子2》重新编译版本。
感谢 [sonicdcer](https://github.com/sonicdcer) 和 [DarioSamo](https://github.com/DarioSamo) 的帮助,这个版本已经相当完善了,但在我觉得可以放心发布之前,还有一些bug需要修复。
截图:《滑雪板小子2:重新编译》的Alpha版本
《滑雪板小子2:重新编译》的截图。注意使用了宽屏和扩展的绘制距离。这可能会导致一些视觉问题。
反编译项目本身也有很多工作要做。100%匹配并不意味着源代码被完美理解。许多函数仍然使用生成的名称,许多结构需要清理,图形/音频资源大多仍被当作二进制数据块处理。项目现在对于这些工作来说处于更好的状态,但工作仍需完成。
最后,我有兴趣启动《滑雪板小子1》的反编译。我认为如果能有一个「超级滑雪板小子」 [3](https://blog.chrislewis.au/snowboard-kids-2-is-100-decompiled/#fn:3) 将两款游戏结合起来,并允许你在第二款游戏的更现代引擎上玩所有原始赛道,那将是非常酷的。我不知道这最终有多可行,但这是一个有趣的想法。
如果你读到了这里,你很可能对反编译和《滑雪板小子2》感兴趣。请看看 [《滑雪板小子2》反编译项目](https://github.com/cdlewis/snowboardkids2-decomp)。README中包含了一份适合新手入手的好任务列表。
**你也可以在 [Bluesky](https://bsky.app/profile/chrislewis.au) 上关注我,获取更多《滑雪板小子2》的最新消息。**
相似文章
Hacker News Top
Decomp Academy 是一个交互式在线平台,教会用户如何通过编写字节匹配的 C 代码,针对 2001 年 MWCC 编译器生成的真实 PowerPC 汇编输出来反编译 GameCube 游戏。
Lobsters Hottest
一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。
Hacker News Top
# gizmo64k/soulplayer-c64 来源:[https://github.com/gizmo64k/soulplayer-c64](https://github.com/gizmo64k/soulplayer-c64)
# Soul Player C64
**一款在 1 MHz Commodore 64 上运行的真实 Transformer。**
```
.-------.
| O O |
| V |
|..|---|..| # SOUL PLAYER C64
2.5万个参数。
2 层网络。
真实的 Transformer。
从软盘加载运行。
你> 嗨
C64> 你好!这声音不错。真神奇!
```
一个 2 层仅解码器(Decoder-Only)Transformer —— 与 ChatGPT、Claude 和 Gemini 背后的架构相同 —— 采用手写 6502/
Lobsters Hottest
本文详细介绍了在MartyPC模拟器上调试Area5150演示中“Lake”效应的过程,解释了需要特定标题hack的原因,以及通过总线嗅探和动态时钟实现周期精确CGA模拟的后续修复方法。
Hacker News Top
一个爱好项目,将Windows CE 2.11移植到真正的任天堂N64硬件上运行,使用自定义的HAL和驱动程序,支持完整的桌面和声音功能。