Engine

アーカイブファイル | ファイルフォーマット

アーカイブファイル　( *.arc )　のフォーマットリファレンスです。
Version 1.0.0.0

最初のフォーマット

ファイルヘッダ
情報ヘッダ
ファイルアロケーション
ファイルデータ
文字データ

ファイルヘッダ

ファイルヘッダはアーカイブファイルを識別するためのものです。

ファイルヘッダ ( ARC_FILE_HEADER 構造体 )

- ARC_FILE_HEADER

名前 | 型 | 説明 | 値
--- | --- | --- | ---
magic | UInt32 | マジック値 | 0x5F46414D
version | UInt32 | バージョン | 0x01000000

情報ヘッダ

情報ヘッダはアーカイブファイル全般の情報を記述します。

情報ヘッダ ( ARC_INFO_HEADER 構造体 )

- ARC_INFO_HEADER

名前 | 型 | 説明
--- | --- | ---
alignment | UInt32 | アラインメント。
numFile | UInt32 | ファイル数。
szDataSize | UInt32 | 文字データのサイズ ( バイト単位 )。
reserve | UInt32 | 予約領域。
faTablePos | UInt64 | ファイルアロケーションテーブルの位置。 この値はアーカイブファイルの先頭からのオフセット ( バイト単位 ) になります。
szDataPos | UInt64 | 文字データの位置。 この値はアーカイブファイルの先頭からのオフセット ( バイト単位 ) になります。

ファイルアロケーション

ファイルアロケーションは、ARC_INFO_HEADER::numFile の値の数だけ存在します。

ファイルアロケーション ( ARC_FILE_ALLOC 構造体 )
・
・
・

- ARC_FILE_ALLOC

名前 | 型 | 説明
--- | --- | ---
namePos | UInt32 | 名前の位置。 この値は文字列テーブルの先頭からのオフセット( バイト単位 ) になります。
dataPos | UInt32 | データの位置。 この値はファイルデータの先頭からのオフセット ( アライメント単位 ) になります。 また、バイト単位の位置は データの位置 * データヘッダ：：アラインメント で求められます。
dataSize | UInt32 | データのサイズ ( バイト単位 )。
reserve | UInt32 | 予約領域。

ファイルデータ

全てのファイルのデータが書き込まれています。

文字データ

全ての文字 ( ファイルパス ) の文字列が書き込まれています。