DQ5解析 一覧

SFCGENEditor 1.1.2リリース

だいぶ更新間隔が空いてしまいましたが、例によって「ダウンロード」ページにうpしてあります。今回の変更点は以下のとおり。

  1. 複合型フィールドの対応
  2. 他内部的な構造の見直し

DQ5ではモンスターのHP、攻撃力などがなぜか分かれて保存されています(上2ビット、下8ビットなど)。これを直感的に参照・変更できるようにするというのが今回の変更の一番の大きいところです。この実装に絡んで内部構造の見直しも行ったため、実装にずいぶんと時間がかかってしまいました(ただ単にやる気が起きなくて投入時間自体も少なかったのですが…)。エラーチェックがまるでザルなので今後はその辺りのケアもする必要もあるのですがとりあえず現状あまりやる気が起きないので後で対応することにします。

プログラムの変更とは別にDQ5の解析も少し進めました。BRKの引数のバリエーションが多く、引数の数まではそこそこ正確に把握できるようになったものの、依然としてその多くは用途が不明のままです。戦闘部分は大枠は解析が進んだので仲間モンスター加入部分の処理がぼんやりとつかめてきました。あの有名な「ひとしこのみ」の実装も場所が特定出来ました。バグ技というよりはデバッグ用に仕込まれたものというのがわかります。

続きを読む


SFCGENEditor 1.1.1リリース

例によって「ダウンロード」ページにうpしてあります。前回は作ってすぐリリースしてしまっていたので、実際に使ってみると案の定いろいろと不具合が見つかりました。基本的には1.1.0のバグフィックス版ですが、ちょこちょこと機能追加を行っています。今回の変更点は以下のとおり。

  1. SFCDQ5対応プラグイン公開
  2. プログラム部分のm,xフラグの表示
  3. フィールド型:アドレスリスト(sa2, sa3)の定義時にm,xフラグの状態を指定できる

1は別にDQ5の改造を始めるというわけではなく、SFCGENEditorのLoROM対応を確認するためにDQ5を選んだだけです(もともとはDQ5のボスに攻撃した時のエフェクトをDQ3に移植したくて解析をほんの少しやっていたので手をつけやすいというのもありました)。DQ5は天下の中村光一氏のチュンソフトが開発したということでその実装を覗くというのはなんとも恐れ多い感じがしますがwww、当然ながら実装はDQ3,6とは全く違います。DQ3,6以外の実装を知らないのでなんとも言えないのですが、一番大きな違いだと感じたのは「BRK命令の引数が可変個になる」というものです。具体的にはBRK命令の直後の値によって引数の数を変えているみたいで、プレーンな逆アセンブラではまともに解釈できません(多分)。というわけでDQ5用のプラグインを作成し、その中でBRKのみ解釈を行うようにしました。DQ3,6でもBRKは通常と異なり引数を2バイト取り、NPCの会話処理をしていたのですが、DQ5のように多彩な処理をBRKで行うというのには驚きました。なんでそうしてるのかはさっぱりわかりませんが。以下一例。

続きを読む


スポンサーリンク