Snowboard Kids 2 已实现100%反编译

Hacker News Top 工具

摘要

作者宣布,任天堂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》的最新消息。**

相似文章

这个周末你打算做什么?

Lobsters Hottest

一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。

Soul Player C64 – 在 1 MHz Commodore 64 上运行的真正 Transformer

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/

模拟器调试:Area 5150 的 Lake Effect

Lobsters Hottest

本文详细介绍了在MartyPC模拟器上调试Area5150演示中“Lake”效应的过程,解释了需要特定标题hack的原因,以及通过总线嗅探和动态时钟实现周期精确CGA模拟的后续修复方法。

WinCE64 – Windows CE 2.11 for N64

Hacker News Top

一个爱好项目,将Windows CE 2.11移植到真正的任天堂N64硬件上运行,使用自定义的HAL和驱动程序,支持完整的桌面和声音功能。