RUNE/CAGE gアーカイブ
TODO:ソースコードからさらに多くを持ち込む。
Susieプラグイン作成時にわかったことのメモ。プラグインはgochaismにあるかもしれません。
概要
全体的な構造は至ってシンプルです。
Size | Description |
---|---|
8 | 識別子 "GML_ARC\0" |
4 | ファイルデータ位置 |
4 | 展開後のファイル情報のサイズ |
4 | ファイル情報のサイズ |
m | ファイル情報 (圧縮と暗号化が施されている) |
n | ファイルデータ (暗号化が施されている) |
ファイル情報には以下のものが含まれます。
- ファイルデータを復号するためのテーブル
- 各ファイルのファイル名の長さとファイル名
- 各ファイルのオフセットとサイズ
- 各ファイルの先頭4バイト
ファイル情報部分の圧縮形式はLZ77法の応用で、BIPとかいう名前らしいです(リングバッファ使用。多少亜種かもわからない)。この件に直接は関係しませんが、ダラケぱんだだらけ/研究成果には、いろいろな圧縮法のサンプルコードが置いてあるようです。これはいい仕事してますね。