projectPiki/pikmin2

GitHub: projectPiki/pikmin2

一个由粉丝驱动的 GameCube 游戏《皮克敏2》反编译项目,将原始 ROM 逆向还原为可编译的源代码并支持 Mod 开发。

Stars: 352 | Forks: 37

# Pikmin 2 [![Build Status]][actions] [![Code Progress]][progress] [![Data Progress]][progress] [![Linked Progress]][progress] [![Discord Badge]][discord] 正在进行中的 Pikmin 2 反编译项目。 支持的版本: - `GPVE01`: 美国零售版 - `GPVE01_D17`: 美国试玩版 17 ## 目录 - [依赖项](#dependencies) - [Windows](#windows) - [macOS](#macos) - [Linux](#linux) - [构建](#building) - [差异比对](#diffing) - [Mod 开发](#modding) ## 依赖项 ### Windows 在 Windows 上,**强烈建议**使用原生工具链。**不需要**使用 WSL 或 msys2。 在 WSL 下运行时,[objdiff](#diffing) 无法获取文件系统通知以进行自动重新构建。 - 安装 [Python](https://www.python.org/downloads/) 并将其添加到 `%PATH%` 中。 - 也可以从 [Windows Store](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K) 获取。 - 下载 [ninja](https://github.com/ninja-build/ninja/releases) 并将其添加到 `%PATH%` 中。 - 通过 pip 快速安装:`pip install ninja` ### 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/pikmin2.git - 使用 [Dolphin Emulator](https://dolphin-emu.org/),将你的游戏系统数据解压到 `orig/GPVE01`。(如果是试玩版,则解压到 `orig/GPVE01_D17`) - 在 Dolphin 的游戏列表中右键点击游戏并选择 `Properties`。 - 转到 `Filesystem` 标签页,右键点击 `Disc` -> `Extract System Data`。 ![Dolphin 文件系统解压](https://static.pigsec.cn/wp-content/uploads/repos/cas/2d/2df128c039e1da9cc37fb91c0453729ce61791b6386754ad71bed9646a115d6f.png) - 解压完成后,应存在以下文件:`orig/GPVE01/sys/main.dol`。 - 配置: python configure.py 要使用试玩版,请添加 `--version GPVE01_D17`。添加 `--help` 可查看所有可用选项。 - 构建: ninja ## 差异比对 初始构建成功后,项目根目录下应存在一个 `objdiff.json`。 从 [encounter/objdiff](https://github.com/encounter/objdiff) 下载最新版本。在项目设置中,设置 `Project directory`。配置文件应会自动加载。 从左侧边栏选择一个对象以开始差异比对。项目的更改将自动重新构建:包括对源文件、头文件、`configure.py`、`splits.txt` 或 `symbols.txt` 的更改。 ![objdiff 项目配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/28/2811a77eb51a8d16411ada1034e9a622f2f1e814fb85abbf55c879ae63ae55f9.png) ## Mod 开发 要启用 Mod 开发,请使用 `--non-matching` 标志运行 `configure.py`: ``` python configure.py --non-matching ``` 此操作会: - 禁用最终哈希验证。 - 构建 `asm` 中的所有汇编文件。 - 构建 `configure.py` 中标记为 `Matching` 和 `Equivalent` 的所有源文件。 要向 DOL 添加新的源文件: - 取消注释 `configure.py` 中最后的 `"lib": "moddingU"` 括号 - 将名称更改为你喜欢的任何名称,并可以以此作为模板自由添加多个新库。 - 在指定位置添加任何新文件及其路径,格式为 `Object(Matching, folder/file.cpp)`。 - 在对象配置下方的 `link_order_callback` 函数中,取消注释并添加 `src` 中的每个新文件及其路径,如提示所示。 使用 `ninja` 构建完成后,新的 DOL 将位于 `build/GPVE01/main.dol`。
标签:C++, GameCube, Mod, UML, URL提取, Wii, 云资产清单, 反编译, 安全报告生成, 数据擦除, 游戏, 逆向工具, 逆向工程