4 个版本
0.2.0 | 2022 年 6 月 16 日 |
---|---|
0.1.2 | 2020 年 2 月 16 日 |
0.1.1 | 2019 年 5 月 18 日 |
0.1.0 | 2019 年 4 月 11 日 |
在 嵌入式开发 中排名 731
每月下载次数 33
39KB
965 行
cargo-n64
使用 Rust 构建 任天堂 64 ROM 的 cargo
子命令!🦀
安装
需要 Rust nightly 版本。
从源代码构建时,cargo
将根据 rust-toolchain
文件自动安装正确的 nightly 编译器版本。但是,您仍然需要单独安装 rust-src
组件。建议您使用以下描述的 CI 中使用的相同版本的依赖项显式安装依赖项。
安装依赖项
rustup toolchain install $(cat rust-toolchain)
rustup run $(cat rust-toolchain) -- rustup component add rust-src
从源代码安装 cargo-n64
cargo install --path cargo-n64
从 crates.io 安装 cargo-n64
cargo install cargo-n64
它做什么?
任天堂 64 ROM 是平面二进制文件,每个都是独特的。除了简单的 64 字节头部和约 4KB 的引导代码(即初始程序加载器 3/IPL3)之外,没有标准的二进制格式。在第一个 4KB 边界之后是 MIPS 代码及其所需的所有数据。这与现代应用程序或游戏开发不同,在现代应用程序或游戏开发中,操作系统有标准的二进制格式(如 ELF、PE 或 WASM)。实际上,N64 甚至没有操作系统!ROM 中的平面二进制文件实际上是操作系统,从所有意义上讲。
这使得开始 N64 开发变得具有挑战性。首先,您必须从头开始构建操作系统,或者使用像 libdragon
或 libn64
这样的库。然后您需要一个工具(或两个、三个!)将编译器工具链中的目标文件转换为平面二进制文件,添加头部和 IPL3,最后修复 IPL3 校验和。cargo-n64
替换了后者集的工具,并很好地集成到 Rust/cargo 生态系统。
出于版权目的,本包不包含 IPL3 二进制文件。收集有效的 IPL3 二进制文件作为读者的练习。您需要使用 --ipl3
命令行参数提供您的 IPL3 路径,或者使用 --ipl3-from-rom
从现有的 ROM 中提取。
依赖项
~4–15MB
~141K SLoC