読者です 読者をやめる 読者になる 読者になる

ごちゃログぴこっ

はなまるデジタル創作紀行(DTM、TAS、いろいろな技術)

RUNE/CAGE gアーカイブ

技術 技術-仕様書

TODO:ソースコードからさらに多くを持ち込む。

Susieプラグイン作成時にわかったことのメモ。プラグインgochaismにあるかもしれません。

概要

全体的な構造は至ってシンプルです。

Size Description
8 識別子 "GML_ARC\0"
4 ファイルデータ位置
4 展開後のファイル情報のサイズ
4 ファイル情報のサイズ
m ファイル情報 (圧縮と暗号化が施されている)
n ファイルデータ (暗号化が施されている)

ファイル情報には以下のものが含まれます。

  1. ファイルデータを復号するためのテーブル
  2. 各ファイルのファイル名の長さとファイル名
  3. 各ファイルのオフセットとサイズ
  4. 各ファイルの先頭4バイ

ファイル情報部分の圧縮形式はLZ77法の応用で、BIPとかいう名前らしいです(リングバッファ使用。多少亜種かもわからない)。この件に直接は関係しませんが、ダラケぱんだだらけ/研究成果には、いろいろな圧縮法のサンプルコードが置いてあるようです。これはいい仕事してますね。

不明な点

ファイルデータの先頭4バイトに位置するデータ。おそらくSusieプラグインに反映できるもの(タイムスタンプ、CRC)ではないので、単に本物の4バイトを埋めるためのゴミとして認識しています。