AX 爱鲜报

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(界面)等模块。

构建流程概览

  1. 克隆仓库并准备依赖(Python、ninja,非 x86 平台需 wine 或 WiBo)。
  2. 使用 Dolphin 模拟器从 ISO 提取系统数据到 orig/GALE01,至少需要 main.dol。
  3. 运行 python configure.py 进行配置。
  4. 执行 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 频道提问。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。