データ整合性チェックについてうんたらかんたら
まったく更新していないのでたまには、何か書くかなってことでデータ整合性チェックについて
以前(2か月前)に書いたCRCチェックのプログラムは、PSPのデータインストール時の整合性チェック用に
つかったもの。本来であれば、より安全性の高いMD5を使うべきなのだが事情によりCRC32を使っている。
この事情というのだが、まず私はCRCをファイルに直接埋め込むのではなく、データアーカイブツールを
通した際に作成されるMAPファイルの中に埋め込んでいる。
このMAPファイルは
ファイル名、オフセット、サイズ、CRC、暗号化の有無、格納数
で構成されており、ファイル読み込みを高速化するものだ。
このファイルはゲーム起動時に最初に読み込むわけだが、上記の事情というのは
このファイルがメモリ常駐することにある。
CRC32のハッシュ値が4バイトのメモリを食うのに対して、MD5のハッシュ値は16バイトのメモリを食う。
チェックする必要のあるファイルが少ないのであれば特に問題はないが
前回作ったゲームでチェックする可能性があるファイル数は2万8千ファイルだ。
容量にするとCRCのハッシュ値をMD5のハッシュ値にすると109KBほど容量が増えてしまい
リソースが少ないPSPで109KBは結構致命的である。