# pokeruby：一致构建的《精灵宝可梦 红宝石／蓝宝石》反编译

> 以 C 源码重建 Game Boy Advance 游戏《精灵宝可梦 红宝石／蓝宝石》，使用 pret 的 agbcc 编译器构建，并附有汇编数据脚本和可编辑图像。一致构建涵盖英文版 1.0、1.1、1.2 修订版、调试构建以及德文初版，并逐一与保存的 SHA-1 比对。另有使用现代 GCC 的构建目标，不以一致为目标。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/pret/pokeruby>
- 一手来源：<https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/pokeruby-decomp-case/>
- 记录 JSON：<https://awesomerea.org/resources/pokeruby-decomp-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/pokeruby-decomp-case/index.md)

## 使用条件与局限

- **前提条件：**构建不读取任何原版 ROM：代码、脚本、文本、图像和音频源文件都在仓库中，因此仓库本身以源文件形式包含游戏内容。德文构建需先运行设置脚本再编译，并在构建任何英文版之前运行还原脚本。
- **前提条件：**INSTALL.md 列出 Linux、需 Xcode Command Line Tools 的 macOS，以及通过 WSL 或 devkitPro MSYS2 环境的 Windows，并要求 build-essential、git、libpng 和 devkitARM。需克隆、构建 pret 的 agbcc 并安装到仓库中；make modern 则改用 devkitARM 的 arm-none-eabi-gcc，也可通过 TOOLCHAIN 指定其他工具链。
- **范围：**README 仍称该项目为反汇编，并列出英文版 pokeruby.gba 和 pokesapphire.gba 的哈希；INSTALL.md 另列 1.1／1.2 修订版目标、仅支持 1.0 的调试目标及德文初版构建，仓库中共有 14 个 SHA-1 文件。所审版本已没有 asm/ 目录：游戏代码均为 src/ 下的 C 源码，仅手写的启动与库汇编以及标为 NONMATCHING 的函数除外，后者在一致构建中仍使用内联汇编。贡献指南仍描述早期从汇编逐步转为 C 的流程。
- **测试证据：**设置 COMPARE=1 时，Makefile 会用对应的 SHA-1 文件检查所选构建。GitHub Actions 工作流比对英文版 1.0／1.1／1.2 的红宝石和蓝宝石构建及德文初版各变体，随后编译 NONMATCHING 源码和 modern 目标但不作比对；README 的构建徽章仍指向 Travis CI。哈希一致说明 ROM 字节相同。
- **许可：**仓库没有许可证文件，复用条款未作说明；原游戏内容仍归其权利人所有，agbcc 和 devkitPro 组件各自适用其条款。

## 一手来源

1. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/README.md>
2. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/INSTALL.md>
3. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/CONTRIBUTING.md>
4. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/Makefile>
5. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/config.mk>
6. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/ruby.sha1>
7. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/sapphire.sha1>
8. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/.github/workflows/build.yml>
9. <https://github.com/pret/pokeruby/blob/5784633ce4ef7ade1a7f2d2d0c288e3d5e6cdd7f/src/money.c>

## 同分区更多条目：游戏

- [《宝可梦 绿宝石》：生成一致 ROM 的 Game Boy Advance 反编译重建](https://awesomerea.org/zh/resources/pokemon-emerald-decomp-case/index.md) · 案例
- [《宝可梦 火红／叶绿》：生成一致 ROM 的 Game Boy Advance 反编译重建](https://awesomerea.org/zh/resources/pokemon-firered-leafgreen-decomp-case/index.md) · 案例
- [《宝可梦 心金／魂银》：校验一致的进行中 DS 反汇编项目](https://awesomerea.org/zh/resources/pokemon-heartgold-soulsilver-disassembly-case/index.md) · 案例
- [《宝可梦 白金》：校验一致的 Nintendo DS 反编译重建](https://awesomerea.org/zh/resources/pokemon-platinum-decomp-case/index.md) · 案例
- [pw：Pokéwalker 固件的一致性反编译重建](https://awesomerea.org/zh/resources/pokewalker-matching-decomp-case/index.md) · 案例
- [Ratchet & Clank：记录了代理流程的 PS2 一致性反编译](https://awesomerea.org/zh/resources/rac1-matching-decomp-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
