1个不稳定版本
0.1.0 | 2020年2月29日 |
---|
#664 在 压缩
22KB
421 行
ages-prs: Rust的PRS编/解码器
用于压缩和解压缩PRS编码缓冲区的IO类型。
PRS是SEGA出版的多个游戏使用的LZ77编码。它主要用于压缩游戏资源,例如纹理和游戏数据,偶尔也用于网络游戏中应用协议的消息压缩。
API接口故意保持最小化。底层的LZ77实现未被暴露;目前,此crate使用libflate的LZ77编码器。
当针对WebAssembly时,此crate应该可以直接使用,尽管尚未进行测试。
使用方法
在您的Cargo.toml
中添加
[dependencies]
ages-prs = "0.1"
在您的代码中
use std::io::{self, Cursor, Read};
use ages_prs::LegacyPrsDecoder;
// unitxt_j.prs contains localized strings used in Phantasy Star Online's UI.
// PSO uses "legacy" variant PRS.
fn decompress_unitxt() -> io::Result<Vec<u8>> {
let mut data = Vec::with_capacity(2048);
let file = File::open("unitxt_js.prs")?;
let mut decoder = LegacyPrsDecoder::new(file);
decoder.read_to_end(&mut data)?;
Ok(data)
}
支持的游戏
"Legacy"版本
- 幻想之星在线(所有版本)
- 索尼克大冒险
- 索尼克大冒险2
"Modern"版本
- 幻想之星宇宙
- 幻想之星在线2
这些列表并不全面。SEGA从SEGA Saturn时代起就在许多游戏中使用了PRS,并且这些年来它已经经历了各种修改。
许可证
ages-prs
是双许可,以与Rust公共生态系统兼容。
ages-prs
根据MIT许可证和Apache许可证(版本2.0)的条款进行分发。
有关详细信息,请参阅LICENSE-APACHE和LICENSE-MIT。