>>955 DS3は持っていないので、実データが確認できず推測になりますが、
readmeを見る限りだと、オフセットデータの範囲からして、テキストデータ数が
0x279B = 10,139なので、0x20 - 0x9E8Fまでは、テキストIDが4バイト単位で
入っているのではないかと思われます。もしかしたら、ずれているかもしれませんが。
あと、頭0x00 - 0x03 はマジックで、0x04 - 0x07がファイルサイズ、 0x08 - 0x1F
間のどこかに、テキストデータ数(おそらく4バイトで、0x0000279B)があるのではない
かと思います。
複雑な構造ではないので、ファイルの頭50バイトくらいのスクリーンショットでもあれば、
正確にわかるかなとは思います。。。
早々にレス下さっていたのにこちらは遅れてすみません、感謝です
とりあえず英文と中文改変を比較した所、変更箇所が
ファイルサイズ、テキストのポインタアドレス、テキスト の3点のみだったので
他は別に良いかなとぞんざいな調べ方をしてしまいましたが
仰る通りテキストデータ数及びテキストポインタのオフセットは0x10に格納されていました
DS1と併せて調べ直した所
[:0x10:]-0x1 がテキストデータ数
[:0x10:]*0x4+0x20 がテキストポインタの始点アドレスみたいです
ちなみにDS3の中文改変テキストファイルなら
>>924にあるので
もし参考になったなら幸いです
958 :
956:2013/02/19(火) 13:11:46.91 ID:ZoUKXJ8q
とりあえず、unpackだけですが作ってみました。中文のテキストはcsvになりました。
http://www.mediafire.com/download.php?mlve6x4ybdmm60i ds3strings -u <lh2ファイル> <csvファイル>
コマンドラインで、上記のようにするとcsvファイルとしてテキストが吐き出されます。
文字コードはUTF-8です。
CSVのフォーマットは、ID, Offset, Text です。
LH2ファイル内では、テキストが同一のものは同じオフセットが指定されていて
重複データの削減が考慮されているようでしたが、packは特に同じものが複数個所あっても
たぶん問題ないと思うので、また、夜にでも対応してみます。