#压缩 #snes #游戏 #格式 #lz5 #rle2 #lz19

bin+lib snes_compress

用于解压缩和重新压缩 SNES 游戏数据的库

5 个版本

0.1.4 2022 年 10 月 25 日
0.1.3 2022 年 10 月 24 日
0.1.2 2022 年 10 月 22 日
0.1.1 2022 年 10 月 22 日
0.1.0 2022 年 10 月 22 日

游戏 中排名第 234

MIT 许可证

47KB
1.5K SLoC

snes_compress

老游戏的压缩库。

支持的格式

  • LZ1
  • LZ19
  • LZ2
  • LZ3
  • LZ5
  • RLE1
  • RLE2

用法

Rust 库

添加依赖 https://crates.io/crates/snes_compress

use snes_compress::{CompressionType, errors::{DecompressionError, CompressionError}};

fn decompress_data(compressed_data: &[u8]) -> Result<Vec<u8>, DecompressionError> {
    snes_compress::decompress(compressed_data, CompressionType::LZ5)
}

fn compress_data(decompressed_data: &[u8]) -> Result<Vec<u8>, CompressionError> {
    snes_compress::compress(decompressed_data, CompressionType::LZ5)
}

共享库

待办事项:添加包装项目以编译为 so (Linux)、dll (Windows) 和 dylib (Mac)

二进制

cargoinstall snes_compress

Usage:
  snes_compress [option] [format] "<input_file>" "<output_file>"

Options:
  -d: Decompress
  -c: Compress

Formats:
  -LZ5: LZ5


lib.rs:

snes_compress 提供了解压缩和重新压缩 snes 数据的函数。

支持的格式

  • LZ1
  • LZ19
  • LZ2
  • LZ3
  • LZ5
  • RLE1
  • RLE2

示例

use snes_compress::{CompressionType, errors::{DecompressionError, CompressionError}};

fn decompress_data(compressed_data: &[u8]) -> Result<Vec<u8>, DecompressionError> {
snes_compress::decompress(compressed_data, CompressionType::LZ5)
}

fn compress_data(decompressed_data: &[u8]) -> Result<Vec<u8>, CompressionError> {
snes_compress::compress(decompressed_data, CompressionType::LZ5)
}

依赖项

~285–740KB
~17K SLoC