■ ドラゴンクエスト4(FC)の裏技の原理
今回はゲームの話。日記のほうで盛りあがり中のドラゴンクエスト4(FC)ですが、8回逃げると会心の一撃を連発するという裏技があったのを覚えていますか。とあるドラクエ攻略サイトで、その裏技がどうして起こるのかが検証されていたので、それを私なりにかみくだいてみたいと思います。
つまり、プログラム内部のことを考えると、会心連発状態であることを示すフラグをどこかに持っていて、8回逃げたときにもそのフラグを誤って立ててしまっている、と予想できます。これはその検証サイトによる推測ですが、会心連発フラグと戦闘中に逃げた回数を1バイトの領域の中に保持しているのではないか、ということです。具体的にはこんなかんじ。
07………03…0100
□□□□◆◇■■
この図は1バイトのデータを1ビットずつ記号で表したものです。ここで、■印の下位2ビットには逃げた回数、◆印のビットには会心連発フラグが格納されています。逃げた回数はにげるコマンドを実行するごとに1ずつ増えます。通常の戦闘では3回か4回でかならず逃げられるようになっていたはずなので、それを判断するために回数をカウントしているのでしょう。だから領域は2ビット(符号なし整数0~3を表現)でたります。また、パルプンテですばらしい力がみなぎると◆のフラグが立って、以降の攻撃を会心の一撃にしていると思われます。
また、カジノのコインが大量に安く買える現象も同じ理由によるものです。第5章でコイン838861枚が4ゴールドで買えます。1枚20ゴールドなので実際の代金は、
20×838861=16777220=1000004H
なのですが、16進数で表したときの下位の桁にある4だけが有効になって、4ゴールドと返されます。