言語関係ファイル

言語に関係するファイルは
index
Retain.sym
~.txt, ~.scn

englishにしかないファイルは.smp .idxの2つ
その他の言語にもあるのは .scn .txt

そこで、scn,txtファイルを変更することで翻訳できると考察。

txtは字幕ファイルである。ファイルサイズはバラバラ

txtファイル
english :  43 
spanish :  43X 
italian :  430 

txtファイルはバイナリエディタで編集すること。
単純にテキストエディタで編集してしまうと圧縮情報が削除され、「Fatal Message : Compression handling has been removed!」が表示されるため注意。
(直訳「深刻なメッセージ:圧縮の取り扱いが削除されている。」、以後FatalMessageをFM、CompressionHandlingをCHとする。)

参考:english.txtはファイルサイズは
サイズ:686 KB (702,751 バイト)
ディスク上のサイズ 688 KB (704,512 バイト)
テキストエディタで開いて編集せず保存すると
サイズが686 KB (702,747 バイト)
になってしまう。(ディスク上のファイルサイズは同じ)
おそらく、この減った分にcompression handle とやらが含まれている。

italian.txt english.txt ..0A位置からSound..が開始され、"."(0D)で次の項目へと移る。
文字数を判定しているため、文字数を変更してしまうと「Assert Message: Assertion fail ..\source\strres.c #272」というメッセージが出て強制終了。
別ファイルで各行の先頭アドレスを格納しているのかもしれない。

2バイト文字を使用するとエラーにはならないが、文字化けする。
(秀丸で「その他」モードでエンコードした時の表示に酷似している。スペイン語は英語にない文字を使うため1バイトでもエンコードを指定しているはず。エンコーダの場所か指定方法が分かれば日本語でもできるはず。)


プレイ中の字幕を変更すると台詞の後に吹き出しマークが表示される?(要確認)

".(char)"="0A(bin)"が定期的に入っており、スペースの位置で使われている(改行かもしれない。通常のスペースは" (char)"="20(bin)")。


メニュー(F1)の親ウィンドウの文字
親ウィンドウ用は子ウィンドウ用のすぐ下の38番地から開始。


.sch
.scnでtxtをDecompressionまたはCompressionしている。decompressionには.scn,.txt以外にも必要なものがある。
(spanish.scn の名前を english.scn にして起動するとAM「Decompression error」が表示される。)

cw3220.dll
2D2E6番地以降に英文がある。(std,string,char...)
2491C番地以降に英文がある。
Error 0、Invalid function numberなど、00(bin)で区切られた文が続いている。


english.txt-english.scnの組を名前だけjapaneseに変換して起動、言語選択画面で第4(第-1)の言語を選択しようとするとFM : Cant find handle for language sceneが発生。
germanに変更するとDecompression errorが発生。
どこかでgerman.scnを使用することが宣言されているが、japaneseは宣言されていない。

おそらく全ての.scnがRetain.symで宣言している。
<OD><OA>SCENES START<0D><0A>以降がscn。
<0D><0A>78<09>french<0D><0A>
その上にtxt用だか知らないけどSYMBOL START内にあった。
どちらも置換した。
FM : Cant find handle for language sceneが発生...。
japanese.scnもしくはjapanese.txtが存在すること自体が問題なのか。
.hファイルのTRANSLATE_NUMという表現が気になる。これは#defineで宣言された変数の接尾語のようで、たいてい値は75にセットされている。
宣言の塊のようなRetain.symで75はcardに割り当てられている。しかし、card.???など存在しない。


バイナリエディタで編集する場合は元の英文と文字数が変わらないように配慮する必要がある。
(長くならないようにして、短い場合は<00>で埋める。)

tin3_dxd.exe
ResourceHacker(以下RH)で編集する。
あれ?Cursor Group\999\0 に日本語表示があるぞ?
Icon Group内もだ。なんだ。画像ファイルの概要をRHが説明してくれてるだけか。
Menu\APPMENU\0 とかには文字情報があるので読んでみる。
&Open BMV file...\tF4" と書かれている。tF4の意味がわかれば.bmvが開ける気がする。
なんか宣言なのか関数なのか私にはわからないな。
ins_.exe ただのインストーラ。
ダイアログボックスの日本語化:FONTを"MS Pゴシック"に変える。

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
FONT 8, "MS Sans Serif"


index
Stirlingで開くとファイルの最後にenglish,french,german,spanish,italianと国名の羅列がある。

正確には
movies.scn <00 00 B9 3C 00 00 00 00 00 00 03 00 00 12>

english.scn <00 A1 2A 34 00 00 00 00 00 03 00 00 12>
french.scn <00 00 75 A9 33 00 00 00 00 00 03 00 00 12>
german.scn <00 00 81 92 33 00 00 00 00 00 03 00 00 12>
spanish.scn <00 11 AD 34 00 00 00 00 00 03 00 00 12>
italian.scn <00 81 84 23 00 00 00 00 00 03 00 00 12>
[EOF]

共通点:<00> xx <00>^5<03><00><00><12>
"ファイル名""番地"形式で宣言している。
ファイル名は7文字に合わせる。(japanes→japanes)国名の頭の<00>は文字数合わせ用。文字数を変えると起動時に「File index is corrupt!」というエラーが出る。



これらのitalianを全てjananesという名前に変えて、english.scnをコピーしてjapanes.scnにすると言語選択で"japanes"を選択できるが、FM:Cant handle エラー。
最終更新:2010年04月03日 11:42