2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年2月17日 |
---|---|
0.1.0 | 2018年2月17日 |
#685 in 压缩
每月下载量 28
27KB
495 行
sega_cmp
此Rust crate提供了Sega的CMP 运行长度编码压缩格式的实现。此格式由Sega创建,并用于许多由Sega和第三方开发的Saturn游戏。此库旨在提供100%兼容的压缩器,可用来替换零售Saturn游戏中的数据。
此crate包含由@MrConan1编写的C代码。
贡献
- 复制仓库
- 创建一个新分支
- 提交你的更改
- 发起一个拉取请求
- 🎉
错误和支持
请在此仓库的问题跟踪器上报告任何问题。我将尽力帮助!
lib.rs
:
此crate提供了使用Sega的CMP运行长度编码方案压缩文件的支持,该方案用于Sega Saturn游戏机的游戏。
运行长度编码是一种简单的压缩方法,它通过分析数据中的重复数据序列(或“运行”)来工作;任何重复序列都可以通过重复X次N次的命令来替换。
例如,想象一下文本 AAAAAAAABBBBAABA
。如果你用模式描述它,你可以认为它就像 8A4B2A1B1A
- 这只需要10个字节而不是16个字节。
Sega将CMP包含在官方Saturn SDK中;他们提供了一个闭源的命令行工具来压缩数据和源代码,以便在游戏内部进行压缩。因此,许多游戏使用它来处理大量重复内容的数据,如文本和图形。此crate的CMP实现旨在与原始解码器100%兼容;它产生的压缩数据与原始编码器相同。其输出已在使用CMP的商用Saturn游戏中进行测试。
此crate提供了两个基本功能:生成头的 create_header
和创建数据的 compress
。大多数Saturn游戏将两者存储在同一个地方,头信息紧跟在压缩数据之后。
依赖项
~225KB