grimrock.datのunpack/repackツール完成したので公開。unpackしたファイルのファイル名が分からないため、現状は、各ファイルに付いていたIDをファイル名、ファイルのヘッダから種別を判定して、拡張子をつけています。
LoGtool
アンパックデータを確認。
ただ、パックされたファイルのオリジナルのファイル名を復元する方法はわからない。たぶん、ファイル名やパスからハッシュを生成してファイルIDとして活用していると思われるが、そもそもファイル名なのかパスなのかリストがないので、確認が難しい。IDが4バイトなのでCRCかと思って試したが合わなかった。
日本語化について現状は難しそう。。。
分かっていること:
- フォント
フォントは、tgaファイルのフォントテクスチャを使う形と、TrueTypeフォントをfreetypeライブラリで動的にラスタライズする方式の2つを使っている。
tgaの方は、メニュー画面等でマウスオーバーで光る凝った文字
TrueTypeは、オープニングやインベントリなどの各所で使用されている白文字(4種類ある)
- マルチバイト対応
基本的に1byteコードにしか対応していない。さらにスクリプト内でASCIIコードを32-127以外弾いている。これはスクリプト修正すれば0-255で問題ないかな。
スクリプト言語にluaを採用しているが、そもそもluaがマルチバイト対応していない。テキスト描画部分がluaで書かれている。
- テキスト
アンパック後のバイナリファイルのあちこちにバラバラに点在している。このファイルをそれぞれアンパックしないとならない。
一応TrueType入れ替えは試したもののエラーで起動せず。ファイルサイズの問題なのかマルチバイトのせいなのかはわからない。
LoGについては、AHはマルチバイト圏へのローカライズは、はなから考えてないんじゃないかという感じに思える。
でも、スクリプトやその他のデータを眺めているとMODについてはいろいろできそうな感じ。マップレイアウトと思われるデータもあった。。