3 个不稳定版本
0.2.1 | 2020年5月14日 |
---|---|
0.2.0 | 2020年4月5日 |
0.1.0 | 2020年3月22日 |
#201 在 模拟器
每月下载量26次
1MB
7K SLoC
flips.rs
Rust 绑定到 Flips,浮动 IPS 补丁工具。
🗺️ 概览
Flips 是一个流行的 IPS、BPS 和 UPS 格式补丁工具,通常用于视频游戏卡带的 ROM 补丁。它以其在所有广泛使用的补丁工具中创建最小的 BPS 和 IPS 文件而闻名。此库提供了一个安全的 API 来创建和应用任意源补丁。
格式 | 应用 | 创建 | 元数据 | 学习 |
---|---|---|---|---|
UPS | ✔️ | |||
IPS | ✔️ | ✔️ | ✔️ | |
BPS | ✔️ | ✔️ | ✔️ |
🔌 使用方法
从两个文件中加载 ROM 和补丁,将补丁应用到 ROM 上,然后将其写回文件
extern crate flips;
// get the input ROM and patch
let patch = std::fs::read("FE_LonelyMirror_v3_3.ups").unwrap();
let rom = std::fs::read("Fire Emblem 8.rom").unwrap();
// apply the patch and write the output
let output = flips::UpsPatch::new(patch).apply(rom)
.expect("could not apply patch");
std::fs::write("FE_LonelyMirror.rom", output).unwrap();
查看 在线文档 以获取更多关于如何使用此库的示例。
📝 特性
📦 no_std
支持
no_std
支持可以通过禁用 std
功能来选择。这将禁用对 std::error::Error
和 Vec<u8>
的支持。它还将禁用硬件加速 CRC32 实现的动态调度。
🧩 CRC32
Flips 已更新为使用 crc32fast
crate 而不是它使用的原始算法,这在创建或应用 BPS 和 UPS 补丁时大大提高了性能,因为这两种格式都会在每次计算输入和输出的校验和。
📋 更新日志
本项目遵循语义化版本控制并提供变更日志,日志格式遵循Keep a Changelog规范。
📜 许可证
此库在GNU通用公共许可证v3.0下提供,因为Flips自身是GPLv3软件。