remove
powerd by nog twitter
 ホーム > ドラクエ アラカルト > ドラクエ3(FC) ロム解析


ドラクエ3(FC) ロム解析(6)


さて、次の2バイト目と3バイト目は経験値ですね。
これはそのままでいいでしょう。
と言いたいところですが、ひとつ問題が。

バラモスだけが FF FF となっています。
バラモスを倒しても経験値はもらえませんし、この値を 00 00 に変えてバラモスを倒しても何も変わりませんでした。
この FF FF に意味があるのかどうか分かりません。
興味のある方は解析してみてはいかがでしょうか。

4バイト目は素早さです。
今度こそ問題ないようです。

5バイト目はゴールドのようですが、1バイトしかありません。
わらいぶくろは350G、おどるほうせきとゴールドマンは1023Gで1バイトでは表すことができません。
この3種類のモンスターと比較対象としてスライムのデータを見てみましょう。

わらいぶくろ CB 05 00 40 5E 0F 25 28 FF E1 09 A9 2E 82 23 26 31 31 FD 30 CC 78 84
おどるほうせきD0 0A 00 46 FF 39 64 32 FF A3 26 82 A5 A9 28 89 00 07 FF FC FC FC F6
ゴールドマン 28 86 01 3C FF A5 32 D2 00 4A 02 02 07 02 07 02 02 02 3F F0 74 74 36
スライム 01 04 00 04 02 09 05 08 00 E5 82 02 82 02 07 02 07 02 00 00 30 30 16

わらいぶくろの5バイト目は 5E(94) 、おどるほうせきとゴールドマンの5バイト目は FF(255) です。
わらいぶくろは350−94=256G、おどるほうせきとゴールドマンは1023−255=768G足りません。
16進数にすると、 256 は 100 で 768 は 300 です。
何となく見えてきましたね。
どこかにこの 1 と 3 を表している場所があるはずです。
そう考えてデータを見てみるとありました、19バイト目の下位2ビットです。
ここはわらいぶくろは 01 、おどるほうせきとゴールドマンは 11 です。(スライムは 00 )

確かめるためにスライムの 00 を 11 にしてみると、770G落としました。
これでゴールドも落着しましたね。

同様に、6バイト目は攻撃力、7バイト目は守備力、8バイト目は最大HP、9バイト目は最大MPを表していて、
20バイト目の下位2ビットが攻撃力、21バイト目の下位2ビットが守備力、22バイト目の下位2ビットが最大HPの追加情報になっています。( 01 は+256、 10 は+512、 11 は+768)
最大MPは FF で ∞ を表しているようです。
9バイト目を FF にするとMPがターン毎に FF に戻り、実質 ∞ になっていることが確認できます。
∞ 以外のモンスターには128以上の最大MPを持つものがいないので、最上位ビットが 1 かどうかで ∞ を判定しているのかもしれません。


ドラクエ3(FC) ロム解析(7)