#patch #rom #ips #ups #bps

sys no-std flips-sys

对Flips的原始FFI绑定,Flips是浮点IPS修补器

3个不稳定版本

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

无标准库中排名第331

每月下载27
flips中使用

GPL-3.0许可证

235KB
6.5K SLoC

C++ 4.5K SLoC // 0.1% comments C 1.5K SLoC // 0.1% comments Rust 327 SLoC // 0.0% comments

flips.rs Star me

Rust对Flips的绑定,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::Errorstd::vec::Vec的支持。它还将禁用硬件加速CRC32实现的动态调度。

🧩 CRC32

Flips 已修复以使用 crc32fast 库,而不是它原本使用的朴素算法,这在创建或应用 BPS 和 UPS 补丁时显著提高了性能,因为这两种格式都会在每次计算它们的输入和输出时的校验和。

📋 更新日志

本项目遵循 语义版本控制,并提供了一份 更新日志,其格式符合 保持更新日志 的规范。

📜 许可证

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

依赖项

~68–290KB