214 lines
6.4 KiB
Markdown
214 lines
6.4 KiB
Markdown
# 安装说明
|
||
|
||
各支持操作系统的安装说明可在 `docs/install/` 下相应目录中找到。
|
||
各系统对应的链接见下方标题。
|
||
本文档仅包含对各支持系统的简要介绍。
|
||
如遇问题,请在 Discord 寻求帮助(参见 [README_ZH.md](README_ZH.md))。
|
||
|
||
完成适用于您操作系统的安装说明后,请继续阅读[构建 pokeemerald-expansion](#构建-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 系统。
|
||
|
||
[WSL 安装说明](docs/install/windows/WSL_ZH.md)
|
||
|
||
[Msys2 安装说明](docs/install/windows/MSYS2_ZH.md)
|
||
|
||
[Cygwin 安装说明](docs/install/windows/CYGWIN_ZH.md)
|
||
|
||
## Linux
|
||
|
||
该项目可在任意 Linux 发行版上构建。
|
||
已有说明的发行版:
|
||
|
||
- [Ubuntu](docs/install/linux/UBUNTU_ZH.md)
|
||
- [Debian](docs/install/linux/DEBIAN_ZH.md)
|
||
- [Arch Linux](docs/install/linux/ARCH_LINUX_ZH.md)
|
||
- [NixOS](docs/install/linux/NIXOS_ZH.md)
|
||
|
||
其他发行版请参考 [通用说明](docs/install/linux/OTHERS.md)。
|
||
|
||
## Mac
|
||
|
||
需要额外配置才能使测试系统正常工作。
|
||
|
||
[Mac 安装说明](docs/install/mac/MAC_OS_ZH.md)
|
||
|
||
## ChromeOS
|
||
|
||
仅在 x86_64 架构系统上测试过。
|
||
|
||
[Chrome OS 安装说明](docs/install/chromeos/CHROME_OS_ZH.md)
|
||
|
||
# 构建 pokeemerald-expansion
|
||
|
||
按照以下步骤构建 `pokeemerald-expansion`:
|
||
|
||
1. 导航到您要存放项目的目录,注意任何系统特定的限制。
|
||
2. 使用 `git` 下载 `pokeemerald-expansion`
|
||
|
||
```console
|
||
git clone https://github.com/rh-hideout/pokeemerald-expansion
|
||
```
|
||
|
||
3. 进入新下载的项目目录。
|
||
|
||
```
|
||
cd pokeemerald-expansion
|
||
```
|
||
|
||
4. 构建项目。
|
||
|
||
```
|
||
make
|
||
```
|
||
|
||
5. 如果一切正常,您将看到类似以下输出:
|
||
|
||
```
|
||
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 文档](https://www.gnu.org/software/make/manual/html_node/Parallel.html) 和 [Stack Exchange 讨论](https://unix.stackexchange.com/questions/208568)。
|
||
|
||
要加速构建,首先通过以下命令获取 `nproc` 值:
|
||
|
||
```
|
||
nproc
|
||
```
|
||
|
||
然后通过以下命令加速构建:
|
||
|
||
```
|
||
make -j<nproc 输出值>
|
||
```
|
||
|
||
将 `<nproc 输出值>` 替换为 `nproc` 命令返回的数字。
|
||
|
||
macOS 上无 `nproc` 命令。替代命令是 `sysctl -n hw.ncpu`(相关 [Stack Overflow 讨论](https://stackoverflow.com/questions/1715580))。
|
||
|
||
### 其他工具链
|
||
|
||
要使用 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 迁移
|
||
|
||
1. 添加 RHH 作为 git 远程仓库
|
||
|
||
```
|
||
git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion
|
||
```
|
||
|
||
1. 拉取您选择的分支
|
||
有三种可选分支:
|
||
|
||
```
|
||
git pull RHH master # 如选择 upcoming 分支,将 master 替换为 upcoming
|
||
# 如选择最新补丁版,将 master 替换为 expansion
|
||
# 如选择特定版本(如 1.11.0),将 master 替换为 expansion/1.11.0
|
||
```
|
||
|
||
如果您未使用最新版 pret/pokeemerald,可能需要解决一些合并冲突。完成后,您即可使用 **pokeemerald-expansion**。
|
||
|
||
# 更新 pokeemerald-expansion
|
||
|
||
1. 添加 RHH 作为 git 远程仓库(若未添加)
|
||
|
||
```
|
||
git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion
|
||
```
|
||
|
||
2. 检查当前版本
|
||
本地 更新日志 会显示您仓库的当前版本。
|
||
3. 选择目标版本
|
||
我们建议按以下顺序逐步更新到下一版本:
|
||
若当前版本低于 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。
|
||
|
||
4. 拉取目标版本
|
||
|
||
```
|
||
git pull RHH expansion/X.Y.Z # 将 X.Y.Z 替换为目标版本,如 `1.9.3`、`master` 或 `upcoming`
|
||
```
|
||
|
||
可能需要解决合并冲突。
|
||
|
||
如果您选择的目标版本不是 [标签页](https://github.com/rh-hideout/pokeemerald-expansion/tags) 上的最新版本,请重复步骤 3 和 4 直至更新到最新版。
|
||
|
||
# 实用附加工具
|
||
|
||
- [porymap](https://github.com/huderlem/porymap) - 查看和编辑地图
|
||
- [porytiles](https://github.com/gruntlucas/porytiles) - 为地图添加新元图块
|
||
- [poryscript](https://github.com/huderlem/poryscript) - 脚本编写([VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=karathan.poryscript))
|
||
- [Tilemap Studio](https://github.com/Rangi42/tilemap-studio) - 查看和编辑图块地图
|