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 显示列表和重新实现渲染引擎的挑战。

Can you run every line of code in Super Mario Bros.?

Lobsters Hottest

A speedrunner attempts to execute every byte of the 32KB ROM in Super Mario Bros. using glitches and exploits, covering most of the code including unreachable paths, while documenting the remaining unexecuted bytes.

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模拟的后续修复方法。