第 3 章 SFC 版ドラクエ 5 (1992)

3.1. バカ画像
3.1.1. 謎のモンスター
3.1.1.1. ボツモンスター各種
3.1.1.2. NPC 各種
3.1.2. 謎のアイテム
3.1.2.1. とうぞくのカギ
3.1.2.2. まほうのふくろ
3.1.2.3. あくまのおもちゃ
3.1.2.4. モンスターほいほい
3.1.2.5. バロンのつのぶえ
3.1.3. 謎のウィンドウ
3.1.3.1. エラーデス!!
3.1.3.2. スピード
3.1.3.3. デバッグウィンドウ
3.1.3.4. レベル
3.1.3.5. つよさコマンド(いんちきアリ)
3.1.4. 受取拒否
3.1.5. 謎のパルプンテイベント
3.2. 詳解 BRK 命令
3.2.1. オペランドのバイトサイズ表
3.2.2. BRK 命令ハンドラー概要
3.2.3. 命令実行の詳細
3.2.3.1. オペランド #$02, #$03: レジスター各種の保存または復帰
3.2.3.2. オペランド #$0B, ..., #$0D: フラグ制御
3.2.3.3. オペランド #$0E, ..., #$19: 音響制御
3.2.3.4. オペランド #$80, ..., #$93: オブジェクトのフィールドにアクセス
3.2.3.5. オペランド #$94: アイテムの特性を参照
3.2.3.6. オペランド #$95, #$96: ウィンドウ処理
3.2.3.7. オペランド #$97, ..., #$9D: 移動時メッセージ処理
3.2.3.8. オペランド #$9E, ..., #$A0: 戦闘時メッセージ処理
3.2.3.9. オペランド #$A1, ..., #$A3: 戦闘時メッセージ処理
3.2.3.10. オペランド #$A4, ..., #$A6: 戦闘時メッセージ処理
3.2.3.11. オペランド #$A7, ..., #$A9: 戦闘時メッセージ処理
3.3. 汎用データアクセスサブルーチン(仮)
3.3.1. 概要
3.3.2. 依存関係
3.3.3. 仕様
3.3.3.1. 機能表
3.3.3.2. 全機能に共通する呼び出し事前条件と事後条件
3.4. 仲間キャラクター構造体
3.4.1. 構造体 $7E2040: パーティーメンバー表現
3.4.2. 構造体 $7E2332: 預けてあるモンスターメンバー表現
3.4.3. 構造体 $7E294A: 預けてある人間メンバー表現
3.5. 戦闘キャラクター構造体
3.5.1. 構造体 $000760: 仲間キャラクター
3.5.2. 構造体 $0007C0: 敵キャラクター
3.6. テキスト解析
3.6.1. 戦闘モードテキスト解析
3.6.1.1. テキストデータ格納位置を特定する
3.6.1.2. ハフマン符号を復号する
3.6.1.3. ハフマン木の表現
3.6.1.4. 復号した文字列をメモリに格納
3.6.1.5. まとめ
3.6.2. 移動モードテキスト解析
3.6.2.1. テキストデータ格納位置を特定する
3.6.2.2. ハフマン符号を復号する
3.6.2.3. ハフマン木の表現
3.6.2.4. 復号した文字列をメモリに格納
3.6.2.5. まとめ
3.7. 文字列
3.7.1. 概要
3.7.2. 文字列へのアクセス方法
3.7.3. データ
3.8. ウィンドウ
3.8.1. ウィンドウ定義表
3.9. 戦闘コマンド
3.9.1. 戦闘コマンドを分類する
3.9.2. 防御系のコマンド
3.9.3. 一般のコマンド
3.9.3.1. 名前
3.9.3.2. 数値の変化量を評価するコード
3.9.3.3. 実行時に表示するメッセージ
3.9.3.4. 必要 MP
3.9.3.5. 有効範囲
3.9.3.6. 目標が敵側に作用するものかどうかのフラグ
3.9.3.7. 実行コード
3.9.4. 装備を変更するコマンド
3.9.5. 道具を使用するコマンド
3.9.5.1. アイテム
3.9.5.2. 実行コード
3.9.6. データ
3.10. 店屋
3.10.1. 店屋処理解析
3.10.1.1. ダミーコード
3.10.1.2. 武器屋
3.10.1.3. 道具屋
3.10.1.4. 防具屋
3.10.1.5. よろず屋
3.10.1.6. 教会(尼)
3.10.1.7. 教会(神父)
3.10.1.8. 宿屋(フランク)
3.10.1.9. 宿屋(標準)
3.10.1.10. 預かり所
3.10.1.11. モンスターじいさん
3.10.1.12. メダル王
3.10.1.13. ルイーダの店
3.10.1.14. カジノキャッシャー
3.10.1.15. カジノ景品交換所
3.10.1.16. スライムレース
3.10.1.17. 格闘場
3.10.1.18. 頻出変数
3.10.2. 店屋データ
3.11. 仲間キャラクターの特性データ
3.11.1. レベルアップ構造体
3.11.2. 習得能力構造体
3.11.3. 初期状態
3.11.4. 人間またはモンスター固有の属性
3.11.5. 名前
3.12. モンスター
3.12.1. モデル
3.12.2. データ
3.13. アイテム
3.13.1. モデル
3.13.2. 配列 $23B081: 価格
3.13.3. 配列 $23B159: 移動モードにおける属性など
3.13.4. 配列 $23B231: 戦闘モードにおける属性など
3.13.5. 配列 $23B309: 鑑定属性群
3.13.6. 配列 $23B3E1: 鑑定属性群
3.13.7. 配列 $23B4B9: 変化量
3.13.8. 配列 $23B591: 装備許可フラグ(人間)
3.13.9. 配列 $23B669: 装備許可フラグ(モンスター)
3.13.10. データ
3.14. 敵との遭遇
3.14.1. モデル
3.14.1.1. 構造体 $2396F3: 通常の戦闘用編成
3.14.1.2. 構造体 $23B04B: 特殊な通常戦闘用編成
3.14.1.3. 構造体 $23D757: イベント戦専用編成
3.14.2. 敵陣決定手順
3.14.3. データ

本章では SFC 版ドラクエ 5 に関する内容を扱っていく。 記者の個人的な考えだが、SFC 版ドラクエ 5 は SFC で動くドラクエシリーズの中で、 最も逆アセンブル解析の難しいシリーズであると思う。 65816 逆アセンブルを試みればわかるが、 目まぐるしく MX レジスタビットが ON/OFF を繰り返すため、 「本物」のコードを抽出することがなかなか難しい。 ここをどうクリアするかが、本作を解析する最大の問題である。