cdlewis/snowboardkids2-decomp
GitHub: cdlewis/snowboardkids2-decomp
N64游戏《Snowboard Kids 2》的匹配式反编译项目,通过逆向工程将ROM还原为可重新编译的C源代码。
Stars: 80 | Forks: 3
# Snowboard Kids 2
[](https://github.com/cdlewis/snowboardkids2-decomp/actions/workflows/build.yaml)
[](https://decomp.dev/cdlewis/snowboardkids2-decomp)
[](https://decomp.dev/cdlewis/snowboardkids2-decomp)
[](https://discord.gg/DuYH3Fh)

这是一个进行中的、针对史上最棒 N64 游戏 [Snowboard Kids 2](https://en.wikipedia.org/wiki/Snowboard_Kids_2) 的匹配(matching)反编译项目。
**本代码仓库不包含任何游戏资产或汇编代码。你需要一份现有的游戏副本。本项目不是向 PC 或任何其他平台的移植。它读取 Nintendo 64 的 rom,从中提取资产,并将我们从 rom 中逆向工程得到的 C 代码与之结合,以生成一个完全相同的 rom。明确禁止将本项目用于任何商业目的。**
## 克隆
克隆本仓库,包括其子模块:
```
git clone --recurse-submodules -j8 git@github.com:cdlewis/snowboardkids2-decomp.git
```
# 依赖项
本项目已在 Ubuntu (x86) 上经过测试。在其他系统上可能存在差异。
系统软件包:
* make
* git
* docker
* python3
* pip3
* binutils-mips-linux-gnu
构建工具:
```
make setup
```
构建 Python 依赖项:
```
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -U -r requirements.txt
```
## 构建
将你的大端序 Snowboard Kids 2 rom 复制到仓库的根目录中。将其重命名为 `snowboardkids2.z64`。然后运行:
```
make clean
make extract
make
```
如果一切正常,你应该会看到:
```
build/snowboardkids2.z64: OK
```
# 文章
如果你有兴趣了解更多关于反编译和 Snowboard Kids 2 的信息,以下文章可能会让你感兴趣:
* [寻找 Jingle Town:在没有符号的情况下调试 N64 游戏](https://blog.chrislewis.au/finding-jingle-town-debugging-an-n64-game-without-symbols/)
* [Claude 一次性反编译意想不到的高效性](https://blog.chrislewis.au/the-unexpected-effectiveness-of-one-shot-decompilation-with-claude/)
* [使用编码代理反编译 Nintendo 64 游戏](https://blog.chrislewis.au/using-coding-agents-to-decompile-nintendo-64-games/)
# 贡献
非常欢迎做出贡献!显然我们需要反编译函数方面的帮助,但如果你对此不太适应,还有许多其他方式可以提供协助:
* 修复编译器警告
* 清理代码:你会看到很多匆忙反编译的函数使用了指针算术而不是正确的结构体访问。我们需要帮助来清理这些函数。
* 记录代码:有些函数/变量有有用的名称(而不是 func_XXX 或 D_XXX),但大多数没有。有些有名称的也可能是命名错误的。我们需要大量帮助来研究和记录所有这些函数的功能。
* 让项目在 Windows 和 Mac 上构建成功。目前构建仅经验证在 Linux 上可用,这限制了能够做出贡献的人群。
如果你有任何其他问题,请在 Discord 上联系(链接在页眉中)。但是请注意,由于这是一个净室反编译项目,我们不能接受基于泄露的源代码或来自拥有游戏及相关主题专有知识的人的贡献。
# 致谢
如果没有更广泛的反编译社区的集体知识、工具和支持,这个项目是不可能实现的。非常感谢其他 N64 反编译项目的贡献者,[decomp.me](https://decomp.me/) 和 [decomp.dev](https://decomp.dev/) 背后的团队,以及 Discord 上发生的极其有帮助的讨论。这些资源对于解决问题、加快设置速度以及在这个过程中保持动力都是非常宝贵的。
标签:Docker, MIPS架构, N64, Python, ROM提取, Snowboard Kids 2, 二进制分析, 云安全运维, 云资产清单, 代码重构, 任天堂64, 复古游戏, 安全防御评估, 客户端加密, 无后门, 游戏反编译, 游戏开发, 网络安全研究, 请求拦截, 跨平台编译, 软件考古, 逆向工程, 非商业项目