DQ3モンスター・アイテム・呪文名編

 

tomorrowさんのページhttp://www.pp.iij4u.or.jp/~tomorrow でセーブデータ改造表を見てキャラクターの名前を変えられることを知り、いろいろ試してみた結果、数値と文字の対応表を作ることができた。

 

-- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00 SP 0 1 2 3 4 5 6 7 8 9 あ い う え お

10 か き く け こ さ し す せ そ た ち つ て と な

20 に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ

30 よ ら り る れ ろ わ を ん っ ゃ ゅ ょ ア イ オ

40 カ キ ク コ サ シ ス タ テ ト ナ ソ ヌ ハ ヒ フ

50 ホ マ ミ ム メ モ ラ ル レ ロ ン エ ニ ネ ノ ャ

60 ッ ヨ ど L M P V X 。 . 。 ” ° ? !

70 「 * ↓ → : … |  ̄  ̄ NW SW 右 NE _ SE ー

80 じ だ ぶ ど → A B C D E F G H

6Bは下付き半濁音、71、72は三角形、NWとかSEは枠のカド、SPは空白

 

そこで今度は町の人たちとかの台詞を変えてみようと思った。しかしバイナリエディタを開いて1バイトずつ解読していたのでは日が暮れてしまうので、バイナリデータと文字を対応させるプログラムを作ってみたところ、↓こんな風になった。

Dq3txt.txt

ここから下の説明は上のデータを見ながら読んでください。

適当に見ていると、28020h(←アドレスね)に”ひのきのほう”と書いてある!

その次は”こんほう”・・・。濁点がないのはきっと、文字が表示されるとき一行上に濁点があることから考えて、何か特殊な形式でデータが記録されているからなんだろう。

さて、もうチョット先も見ようとすると、今度は町の名前、呪文、モンスターの名前といろいろ出てきた。そして・・・・

--ふくろ--ああ --おお --なんと

これは日本語のようだが意味不明・・・。これわもしかして台詞のデータは文字列の組み合わせのデータだという事なのか?ってぇことは1人の台詞を変えようとすると他の部分まで変わってしまう。せいぜい”ヒミコ”とかの固有名詞を変えることぐらいしかできなさそうだ。しょうがない。諦めよう。

さて、とりあえず手始めに”おうじゃのけん”を”ラグナロク”に変えてみましょう。さっきのデータの中から探すと・・・・・・28110hの行の後ろのあたりにありました。

・・・えか6おうしゃのけんか6くさ・・・

”じ”が”し”になっています。濁点を打つ場所はどこに記録されているのでしょうか。わざわざここから離れた場所にあるとも思えないし、前後には他のアイテムの名前(ここでは”いかづちのつえ”と”くさなぎのけん”)があるので、恐らく前か後ろどちらかの”か6”に記録されているのでしょう。考えられるのは

前の”か6”に”いかづちのつえ”の濁点データ、後ろの”か6”に”おうじゃのけん”の濁点データ、あるいは、前の”か6”に”おうじゃのけん”の濁点データ、後ろの”か6”に”くさなぎのけん”の濁点データが記録されている、このどちらか

です。しかしこの3つの名前をよ〜く見ると、

い か ち の つ え

お う ゃ の け ん

く さ な の け ん

となっており、最初の2つは3文字目、3個目は4文字目に濁点があります。ということはどうやら後ろの”か6”が”おうじゃのけん”の濁点データのようです。では今度は””なのでしょうか、それとも””なのでしょうか。よく分からないので、ここで濁点のないアイテムを見てみましょう。適当に探すと・・・

せ い な る ナ イ フ SP 6

て つ の や り SP SP SP 4

(SPは空白)

というわけで、濁点のないアイテムだと数字の前は空白、すなわち0というデータ(文字コード表参照)が記録されています。しかも、数字の方が濁点データだとしたら上の二つは同じ数字になるハズ。しかし”6”と”4”で違います。よって””が濁点データと分かります。

では、””と3文字目の濁点がどう対応しているのでしょうか。そこで、””が、数値としていくつなのかを上の表で探すと・・・ありました!(←そりゃあるよ)10hです。一文字ごとに濁点のあるなしを記録していると思われるので、10hを2進数に変換してみると0000000です。これとアイテム名”おうじゃのけん”を対応させてみると

0 0 0 0 0 0 0

お う ゃ の け ん SP

となり、ヘンですが、チョット考えてみると、

0 0 0 0 0 0 0

SP お う ゃ の け ん

こうなのかも知れない気がします。

そこで、こうなのだと信じ込んで名前を変えてみましょう。濁点の位置データは

0 0 0 0 0 0 0

SP お う じ ゃ の け ん

SP ラ ナ ロ ク SP SP

なので、0000000を16進数にして、20hとなります。

さあ、いよいよバイナリエディタでデータを書き換えてみましょう。適当なバイナリエディタを開き、2811Chを見てください。

0F 0D 16 3A 23 13 38 10

と書いてあるはず。これは”おうしゃのけんか”を表しているので、

56(ラ)42(ク)4A(ナ)59(ロ)42(ク)00(SP)00(SP)20(濁点)

と書き換えましょう。で、保存。

 

こんどはモンスター・・・と言いたいところですが、疲れたのでやめます。データの発見とかはコッチの方が楽なので、適当にがんばってください。