Decomp Academy:学习将 GameCube 汇编代码反编译为 C 语言代码,实时评分!
学习目标
从对寄存器一无所知,到逐指令匹配《星际火狐:冒险》(Star Fox Adventures)中的真实函数。编写 C 代码,2001 年的真实编译器会实时评分。从零开始学习
学习进度
课程总数 254 节,已解决课程数 0,掌握程度 0%,评分编译器为 `mwcceppc.exe`,来自 SFA-Decomp 实时项目的函数
匹配示例
| 目标代码 | 你的输出 |
|---|---|
| `lwz r0, 0x0(r3)` | `lwz r0, 0x0(r3)` |
| `lfs f1, 0x4(r3)` | `lfs f1, 0x4(r3)` |
| `fmuls f0, f0, f1` | `fmuls f0, f0, f1` |
| `fadds f0, f0, f2` | `fadds f0, f0, f2` |
| `stfs f0, 0x0(r4)` | `stfs f0, 0x0(r4)` |
| `blr` | `blr` |
课程体系
阅读汇编代码,编写 C 代码,编译器逐字节进行评分。继续学习 →
进度统计
已匹配函数数 0 / 264,正在重构函数数 0,经验值(XP)0,学员状态:招募中
课程阶段划分
阶段一:热身学习读懂机器语言,了解反编译的概念、PowerPC 寄存器以及阅读 MWCC 输出结果。已完成课程数 0/6,难度等级 1,推荐课程:你的首次匹配、参数也存于寄存器中 等
阶段二:核心惯用法涵盖 C 语言编译后的各种形式,包括整数运算、位运算与移位、控制流、循环、类型与宽度、指针与内存、结构体与联合体、浮点运算等多个方面。已完成课程数 0/164,难度等级 2 - 9
阶段三:真实 ABI涉及函数与 ABI、全局变量、优化与调度、高级惯用法、64 位整数以及融合各方面知识的完整函数等内容。已完成课程数 0/80,难度等级 11 - 16
阶段四:实践检验使用《星际火狐:冒险》中的真实函数进行实践,从热身到完整的综合项目。已完成课程数 0/14,难度等级 17,推荐课程:一个真实的设置函数:状态、浮点微调与布尔返回值、带偏移的位置复制 等
关于 Decomp Academy
学习将 GameCube 的 PowerPC 汇编代码反编译为字节匹配的 C 语言代码,由真实的 Metrowerks CodeWarrior GC/2.0 编译器实时评分。GitHub 源码
学习资源
开始训练、在线实践区、术语表、课程目录 · 254 节课程
反编译项目
课程借鉴了开源 GameCube 反编译项目中的真实函数:《星际火狐:冒险》、《皮克敏 2》、《银河战士:Prime》、《马里奥派对 4》
社区资源
decomp.me、decomp.dev、反编译维基
本项目与任天堂、Rare、Retro Studios 或 Hudson Soft 无关联。《星际火狐:冒险》《皮克敏》《银河战士:Prime》和《马里奥派对》是其各自所有者的商标。链接的反编译项目是独立的社区项目。
