1 个不稳定版本
0.1.0 | 2020年2月8日 |
---|
#5 in #截断
5KB
77 行
IPS 补丁格式解析器。
处理运行长度编码的块以及截断扩展。
示例
使用 IPS 文件修补 ROM
use std::fs::{self, File};
use std::io::{Seek, SeekFrom, Write};
use ips::Patch;
let mut rom = File::open("Super Metroid.sfc")?;
let patch_contents = fs::read("Hyper Metroid.ips")?;
let patch = Patch::parse(&patch_contents)?;
for hunk in patch.hunks() {
rom.seek(SeekFrom::Start(hunk.offset() as u64))?;
rom.write_all(hunk.payload())?;
}
if let Some(truncation) = patch.truncation() {
rom.set_len(truncation as u64)?;
}
依赖项
~1MB
~20K SLoC