Show HN:Decomp Academy – 学习将 GameCube 游戏反编译为匹配的 C 代码
摘要
Decomp Academy 是一个交互式在线平台,教会用户如何通过编写字节匹配的 C 代码,针对 2001 年 MWCC 编译器生成的真实 PowerPC 汇编输出来反编译 GameCube 游戏。
过去几个月,我深入参与了反编译社区。我亲手反编译了我童年钟爱的一款游戏(Star Fox Adventures)。开始时我完全没有反编译经验——更糟的是,我几乎没碰过 C 语言和汇编。
学习反编译很有挑战性。很难找到好的学习资源,而且现有的开源项目要么不活跃,要么缺乏实质性的学习材料。
于是我做成了 Decomp Academy!Decomp Academy 是一种交互式学习方式,教你如何将 PowerPC 汇编反编译回 C 语言。网站运行一个实时的 Metrowerks CodeWarrior GC/2.0 编译器,把你的 C 代码转换成汇编,然后检查你的汇编与目标汇编的匹配程度。只要有一条指令或一个比特不对,就算失败。这是视频游戏反编译的金标准,比普通反编译严格得多。
截至目前,网站上有 250 多节课程,从最基础的内容开始,因此只要有一点点编程经验的人都能直接上手,即使你不是 C 语言专家。部分课程还使用了来自活跃开源反编译项目(Star Fox Adventures、Mario Party 4、Pikmin、Metroid Prime)的真实函数。这样做的目的是让你学完所有必要知识后,能够直接参与并贡献到真实的反编译项目中。
网站完全免费、开源,无需注册即可访问所有课程。所有课程都以 Markdown 格式保存在仓库中(src/curriculum),添加或修改课程非常简单。网站还很新,课程每天都在快速更新,而且即将推出完整的 C++ 部分。网站已经深受反编译社区的欢迎,我很高兴能在 HN 上分享它。我热切期望其他人能为这个项目做出贡献,希望它能成为互联网上学习反编译艺术的最佳资源。请告诉我你的想法!
源码:<a href="https://github.com/JackPriceBurns/decomp-academy-fe" rel="nofollow">https://github.com/JackPriceBurns/decomp-academy-fe</a>
查看缓存全文
缓存时间: 2026/06/28 01:52
# Decomp Academy — 学习 GameCube 反编译 (MWCC GC/2.0)
来源: https://decomp-academy.dev/
Decomp Academy Decomp Academy MWCC GC/2\.0
## 学习如何将 GameCube 汇编反编译为字节匹配的 C 语言
从从未读过寄存器开始,到逐指令匹配真实的《星际火狐大冒险》函数。你编写 C 代码,真实的 2001 年编译器实时评分。
步骤 1
阅读汇编
逐指令研究零售编译器生成的 PowerPC 目标代码。
步骤 2
编写 C 语言
重构原始源码。提示和参考解近在咫尺。
步骤 3
编译器评分
真实的 MWCC GC/2.0 编译你的代码并进行差分 —— 匹配每一个字节才能获胜。
## 课程大纲
读汇编 · 写 C · 编译器逐字节评分。
返回到 → (https://decomp-academy.dev/lesson/foundations-welcome)
0/268
已匹配
函数重构中
招募
已解决 尝试过 未开始 概念(阅读) 难度 1–5
I
热身
学会阅读机器语言
0/10
II
核心惯用法
C 语言编译成的各种形式
0/164
III
真实的 ABI
栈帧、全局变量、优化器、64 位
0/80
IV
实战演练
完整的真实《星际火狐大冒险》函数
0/14
相似文章
Snowboard Kids 2 已实现100%反编译
作者宣布,任天堂64游戏《Snowboard Kids 2》现已完全反编译,意味着所有函数都有了对应的C语言实现,并能够编译回原始汇编代码。该项目耗时近两年,功劳归于N64反编译社区以及AI编程助手(Claude、GLM、Codex)的加速作用。
模拟器调试:Area 5150 的 Lake Effect
本文详细介绍了在MartyPC模拟器上调试Area5150演示中“Lake”效应的过程,解释了需要特定标题hack的原因,以及通过总线嗅探和动态时钟实现周期精确CGA模拟的后续修复方法。
Windows NT 用于 GameCube/Wii
该项目将 Windows NT 移植到任天堂 GameCube 和 Wii 主机,支持多种输入设备和驱动程序。它是开源的,可在 GitHub 上获取。
Show HN:有没有人对一个探索C++ AST的工具感兴趣?
ACAV是一个交互式抽象语法树可视化工具,适用于C、C++和Objective-C,基于Clang和Qt构建,允许开发者通过编译数据库从真实代码库中探索AST。
这个周末你打算做什么?
一位开发者描述了将《完美黑暗64》关卡移植到 noclip.website 的过程,强调了读取 N64 显示列表和重新实现渲染引擎的挑战。