11 个不稳定版本 (3 个重大更改)
0.4.1 | 2024 年 6 月 26 日 |
---|---|
0.4.0 | 2024 年 2 月 26 日 |
0.3.1 | 2024 年 2 月 22 日 |
0.2.0 | 2023 年 1 月 6 日 |
0.1.3 | 2022 年 6 月 17 日 |
#361 在 硬件支持
26KB
430 行
描述
nust64
是一个将 rust 项目构建成 N64 ROM 的工具。它旨在作为 Cargo 运行器,但也可能用作库。
使用方法
要使用 nust64 作为 crate,请参阅 文档。
否则,您可以使用以下命令将 nust64 作为可运行的程序安装: cargo install nust64
。如果您希望从源安装,请下载仓库并运行 cargo install --path .
安装后,运行 nust64 --help
以获取更多信息。
Cargo 运行器
首先,您应按照上述说明安装 nust64。接下来,如果您的项目还没有,请创建文件 .cargo/config.toml
,并包含以下部分
[target.mips-nintendo64-none]
runner = [
"nust64",
"--elf"
]
当您运行 cargo run
或 cargo run --release
时,Cargo 将将运行器命令附加到您的项目编译的 ELF 文件的路径,并执行该命令。
如果您正在使用不同名称的目标,请将 mips-nintendo64-none
替换为您希望的目标 三元组 或 cfg 表达式。
如果您想要使用任何包含空格的参数,您必须像下面这样格式化。假设您在构建 ROM 之后想运行 Ares 模拟器
[target.mips-nintendo64-none]
runner = [
"nust64",
"--post-exec", "/path/to/ares >>ROM<<",
"--elf"
]
IPL3 选择
IPL3 是 N64 在启动过程中自动执行的代码小部分。每个 ROM 都必须包含有效的 IPL3。
要提供您自己的 IPL3, 使用如下所示的 --ipl3
参数
[target.mips-nintendo64-none]
runner = [
"nust64",
"--ipl3", "path/to/ipl3.bin",
"--elf"
]
要使用libdragon的一个开源IPL3,你必须省略--ipl3
,并且可以可选地指定要使用的IPL3版本,使用--libdragon <option>
。可用选项:compat
、debug
或release
。
如果都省略了--ipl3
和--libdragon
,则默认使用--libdragon release
。
以下是一个使用libdragon的IPL3调试(即“开发”)版本的示例
[target.mips-nintendo64-none]
runner = [
"nust64",
"--libdragon", "debug",
"--elf"
]
致谢
感谢由parasyte编写的第一个构建工具cargo-n64
。我最初依赖那个项目来学习为n64架构编译所需的基本知识。
依赖项
约3.5MB
约70K SLoC