projectPiki/pikmin
GitHub: projectPiki/pikmin
GameCube 游戏《皮克敏》的粉丝反编译项目,旨在将原始二进制还原为可编译的源代码以实现精确重建。
Stars: 260 | Forks: 24
# Pikmin
[![Build Status]][actions] [![Code Progress]][progress] [![Data Progress]][progress] [![Linked Progress]][progress] [![Discord Badge]][discord]
Pikmin(GameCube,2001)的正在进行的反编译项目。
支持的版本(活跃):
- `GPIE01_01`: USA (Rev 1) - 默认版本
- `GPIE01_00`: USA (Rev 0)
- `G98E01_PIKIDEMO`: USA 互动多游戏试玩盘 - 2002年1月 "zz_PikminDemo-1210.tgc"
- `GPIP01_00`: Europe (Rev 0)
支持的版本(待开发):
- `DPIJ01_PIKIDEMO`: 店頭ゲームデモディスク 2001年10月(Pikmin 実演用 Sample Disc)"zz_pikmin_game/PikiDemo.tgc"
- `GPIJ01_01`: Japan (Rev 1)
- `GPIJ01_02`: Japan (Rev 2)
- `G98P01_PIKIDEMO`: Europe 互动多游戏试玩盘 - 2002年5月 "zz_PikiDemo.tgc"
注意:此代码库**不包含任何游戏资源** - 需要已有的游戏副本。
## 目录
- [依赖项](#dependencies)
- [Windows](#windows)
- [macOS](#macos)
- [Linux](#linux)
- [构建](#building)
- [比对](#diffing)
## 依赖项
### Windows
在 Windows 上,**强烈建议**使用原生工具链。**不**需要使用 WSL 或 msys2。
在 WSL 下运行时,[objdiff](#diffing) 无法获取文件系统通知以进行自动重新构建。
### macOS
- 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages):
brew install ninja
- 安装 [wine-crossover](https://github.com/Gcenx/homebrew-wine):
brew install --cask --no-quarantine gcenx/wine/wine-crossover
在操作系统升级后,如果 macOS 提示 `Wine Crossover.app` 未经验证,你可以使用以下命令取消隔离:
```
sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app'
```
### Linux
- 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages)。
- 对于非 x86(_64) 平台:从你的包管理器安装 wine。
- 对于 x86(_64),[wibo](https://github.com/decompals/wibo)(一个最小化的 32 位 Windows 二进制包装器)将被自动下载并使用。
## 构建
- 克隆代码库:
git clone https://github.com/projectPiki/pikmin.git
- 将你的游戏光盘镜像复制到 `orig/GPIE01_01`。(或者相应的版本文件夹中。)
- 支持的格式:ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC
- 初始构建完成后,可以删除光盘镜像以节省空间。
- 配置:
python configure.py
要使用 `GPIE01_01` 以外的版本,请添加 `--version`。添加 `--help` 可查看所有可用选项。
- 构建:
ninja
## 比对
初始构建成功后,项目根目录下应存在一个 `objdiff.json`。
从 [encounter/objdiff](https://github.com/encounter/objdiff) 下载最新版本。在项目设置中,设置 `Project directory`。配置文件应该会自动加载。
从左侧边栏选择一个对象以开始比对。项目的更改将自动重新构建:包括对源文件、头文件、`configure.py`、`splits.txt` 或 `symbols.txt` 的更改。
标签:UML, 客户端加密, 逆向工具