6.4 KiB
安装说明
各支持操作系统的安装说明可在 docs/install/ 下相应目录中找到。
各系统对应的链接见下方标题。
本文档仅包含对各支持系统的简要介绍。
如遇问题,请在 Discord 寻求帮助(参见 README_ZH.md)。
完成适用于您操作系统的安装说明后,请继续阅读构建 pokeemerald-expansion。
Windows
Windows 需要以下任一系统来构建项目
注意:由于 Windows 7 和 Windows 8 已被微软官方停止支持,部分维护者可能不会长期维护 Win7/8 的安装说明。因此这些说明未来可能失效,修复时间可能长于 Windows 10/11 的说明修复。
在 Windows 上,可使用以下系统构建项目:
- WSL2(速度最快)
- WSL1(比 WSL2 慢 7 倍)
- Msys2(比 WSL2 慢 20 倍)(注意:目前在 pret 上游已损坏)
- Cygwin(比 WSL2 慢 30 倍)(注意:目前在 pret 上游已损坏)
注意:仅推荐使用 WSL 系统。
Linux
该项目可在任意 Linux 发行版上构建。 已有说明的发行版:
其他发行版请参考 通用说明。
Mac
需要额外配置才能使测试系统正常工作。
ChromeOS
仅在 x86_64 架构系统上测试过。
构建 pokeemerald-expansion
按照以下步骤构建 pokeemerald-expansion:
- 导航到您要存放项目的目录,注意任何系统特定的限制。
- 使用
git下载pokeemerald-expansion
git clone https://github.com/rh-hideout/pokeemerald-expansion
- 进入新下载的项目目录。
cd pokeemerald-expansion
- 构建项目。
make
- 如果一切正常,您将看到类似以下输出:
arm-none-eabi-ld: warning: ../../pokeemerald.elf has a LOAD segment with RWX permissions
Memory region Used Size Region Size %age Used
EWRAM: 243354 B 256 KB 92.83%
IWRAM: 30492 B 32 KB 93.05%
ROM: 26072244 B 32 MB 77.70%
cd build/modern && arm-none-eabi-ld -T ../../ld_script_modern.ld --print-memory-usage -o ../../pokeemerald.elf <objs> <libs> | cat
tools/gbafix/gbafix pokeemerald.elf -t"POKEMON EMER" -cBPEE -m01 -r0 --silent
arm-none-eabi-objcopy -O binary pokeemerald.elf pokeemerald.gba
tools/gbafix/gbafix pokeemerald.gba -p --silent
构建完成的 ROM 将以 pokeemerald.gba 文件名位于项目目录中。
构建指南
并行构建
更多信息请参阅 GNU 文档 和 Stack Exchange 讨论。
要加速构建,首先通过以下命令获取 nproc 值:
nproc
然后通过以下命令加速构建:
make -j<nproc 输出值>
将 <nproc 输出值> 替换为 nproc 命令返回的数字。
macOS 上无 nproc 命令。替代命令是 sysctl -n hw.ncpu(相关 Stack Overflow 讨论)。
其他工具链
要使用 devkitARM 以外的工具链构建,需用工具链路径覆盖 TOOLCHAIN 环境变量(该路径必须包含 bin 子目录):
make TOOLCHAIN="/path/to/toolchain/here"
示例如下:
make TOOLCHAIN="/usr/local/arm-none-eabi"
要使用此工具链编译 modern 目标,还需存在 lib、include 和 arm-none-eabi 子目录。
构建调试信息
要在现代工具链下构建带调试符号和调试优化级别的 pokeemerald.elf:
make debug
选择分支
pokeemerald-expansion 提供不同分支供用户选择使用。
最新补丁版 (Latest Patch)
此选项包含所有官方发布的扩展功能和错误修复。
master 分支
master 分支包含"最新补丁版"的所有功能,以及自该版本发布以来发现的所有错误修复。
upcoming 分支
upcoming 分支包含"最新补丁版"的所有功能,以及自该版本发布以来添加的所有新功能。
master 分支的错误修复会不定期合并到 upcoming,但无固定时间表。
从 pokeemerald 迁移
- 添加 RHH 作为 git 远程仓库
git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion
- 拉取您选择的分支 有三种可选分支:
git pull RHH master # 如选择 upcoming 分支,将 master 替换为 upcoming
# 如选择最新补丁版,将 master 替换为 expansion
# 如选择特定版本(如 1.11.0),将 master 替换为 expansion/1.11.0
如果您未使用最新版 pret/pokeemerald,可能需要解决一些合并冲突。完成后,您即可使用 pokeemerald-expansion。
更新 pokeemerald-expansion
- 添加 RHH 作为 git 远程仓库(若未添加)
git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion
- 检查当前版本 本地 更新日志 会显示您仓库的当前版本。
- 选择目标版本
我们建议按以下顺序逐步更新到下一版本:
若当前版本低于 1.6.2,应先更新到 1.6.2
- 1.6.2
- 1.7.4
- 1.8.3
- 1.9.4
- 1.10.3
例如,若当前版本为 1.7.0,应更新到 1.7.4。
- 拉取目标版本
git pull RHH expansion/X.Y.Z # 将 X.Y.Z 替换为目标版本,如 `1.9.3`、`master` 或 `upcoming`
可能需要解决合并冲突。
如果您选择的目标版本不是 标签页 上的最新版本,请重复步骤 3 和 4 直至更新到最新版。
实用附加工具
- porymap - 查看和编辑地图
- porytiles - 为地图添加新元图块
- poryscript - 脚本编写(VS Code 扩展)
- Tilemap Studio - 查看和编辑图块地图