#patch #rom #ips #ups #flip #bps

无 std flips

Rust 绑定到 Flips,浮动 IPS 补丁工具

3 个不稳定版本

0.2.1 2020年5月14日
0.2.0 2020年4月5日
0.1.0 2020年3月22日

#201模拟器

每月下载量26次

GPL-3.0 许可证

1MB
7K SLoC

C++ 4.5K SLoC // 0.1% comments C 1.5K SLoC // 0.1% comments Rust 826 SLoC // 0.0% comments Shell 42 SLoC // 0.2% comments

flips.rs Star me

Rust 绑定到 Flips,浮动 IPS 补丁工具。

TravisCI Codecov License Source Crate Documentation Changelog GitHub issues

🗺️ 概览

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::ErrorVec<u8> 的支持。它还将禁用硬件加速 CRC32 实现的动态调度。

🧩 CRC32

Flips 已更新为使用 crc32fast crate 而不是它使用的原始算法,这在创建或应用 BPS 和 UPS 补丁时大大提高了性能,因为这两种格式都会在每次计算输入和输出的校验和。

📋 更新日志

本项目遵循语义化版本控制并提供变更日志,日志格式遵循Keep a Changelog规范。

📜 许可证

此库在GNU通用公共许可证v3.0下提供,因为Flips自身是GPLv3软件。

依赖项