Melee 反编译项目
Super Smash Bros. Melee(美版 1.02)的匹配反编译项目,由社区协作将 GameCube 原版机器码还原为可编译的 C 代码,并支持 Mod 与游戏研究。
爱鲜报评分
0.0
0 人评分
2.4k
星数
否
中文
C
主语言
是
活跃
126
贡献者
人工分析
EDITORIAL推荐理由
这是 GameCube 逆向工程领域最知名的反编译项目之一,进度公开透明,社区活跃(Discord 频道与贡献指南齐全)。项目不仅还原代码,还提供了可自由增删代码的 Mod 构建流程,对想学习 PowerPC 汇编、匹配反编译与游戏引擎架构的开发者极具参考价值。
适用场景
- 游戏逆向工程与反编译学习
- GameCube/PowerPC 汇编与 C 代码对照研究
- Melee 游戏 Mod 开发
- 匹配反编译工具链(m2c、objdiff)实践
- 游戏引擎架构与代码整理研究
优点
- 社区活跃,有 Discord 频道、贡献指南和入门文档
- 构建产物 main.dol 可移位,方便 Mod 与实验
- 提供 objdiff 可视化对比工具,便于逐函数匹配
- 代码按 HAL 原始模块划分,结构清晰易读
- 进度公开,有 todo 与 cleanup 索引指导贡献
缺点
- 需要自备游戏 ISO 提取系统数据,存在版权与法律风险
- 构建依赖 Python、ninja、wine/WiBo 等工具,环境配置较繁琐
- 匹配反编译门槛高,需要熟悉 PowerPC 汇编与 GameCube 硬件
- 仓库未声明明确 License,商用或再分发需谨慎
上手难度
较难
项目简介
Melee 反编译项目(doldecomp/melee)致力于将 GameCube 游戏《Super Smash Bros. Melee》(美版 1.02,Game ID GALE01)的机器码还原为可编译的 C 源代码,并保证编译产物与原版 main.dol 完全匹配。
项目由社区协作维护,构建产物支持代码移位,因此可以自由增删代码,用于 Mod 开发或游戏研究。
核心特性
- 匹配反编译:目标是与原版二进制逐字节一致,便于验证还原正确性。
- 可 Mod 构建:通过
--non-matching配置,可在/src下自由添加自定义源文件。 - 可视化对比:配合
objdiff工具逐对象、逐函数对比汇编差异。 - 模块化结构:代码按 HAL 原始命名划分为
ft(角色)、gm(主循环)、gr(场景)、if(界面)等模块。
构建流程概览
- 克隆仓库并准备依赖(Python、ninja,非 x86 平台需 wine 或 WiBo)。
- 使用 Dolphin 模拟器从 ISO 提取系统数据到
orig/GALE01,至少需要main.dol。 - 运行
python configure.py进行配置。 - 执行
ninja完成构建。
git clone https://github.com/doldecomp/melee.git --depth=1
python configure.py
ninja
工具链
项目使用 Python 编写命令行工具,推荐使用虚拟环境:
python -m venv --upgrade-deps '.venv'
pip install -r reqs/decomp.txt
python tools/decomp.py my_function_name
decomp.py 基于 m2c 辅助反编译函数,objdiff 则用于对比构建结果与原版差异。
代码结构
src 目录下主要包含 melee 游戏代码,按两字母缩写划分:
ft:Fighter,玩家角色gm:Game,主游戏循环gr:Ground,关卡与场景if:Interface,用户界面it:Items,道具mn:Menu,菜单sc:Scene,游戏模式
角色代码位于 melee/ft/kinds,使用 HAL 的两字母缩写,例如 Ca 代表 Captain Falcon、Fx 代表 Fox。
参与贡献
项目欢迎新贡献者,当前重点在命名与代码清理。新手可先阅读 Getting Started 指南与贡献规范,也可在 Discord 的 #smash-bros-melee 频道提问。
评论
- 暂无评论,来写第一条吧。