#n64 #rom #mips #elf-file #mips3

bin+lib nust64

构建将 Rust 项目编译成 N64 ROM 的工具

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硬件支持

MIT 许可证

26KB
430

License: MIT Crates.io Documentation

描述

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 runcargo 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>。可用选项:compatdebugrelease

如果都省略了--ipl3--libdragon,则默认使用--libdragon release

以下是一个使用libdragon的IPL3调试(即“开发”)版本的示例

[target.mips-nintendo64-none]
runner = [
    "nust64",
    "--libdragon", "debug",
    "--elf"
]

致谢

感谢由parasyte编写的第一个构建工具cargo-n64。我最初依赖那个项目来学习为n64架构编译所需的基本知识。

依赖项

约3.5MB
约70K SLoC