DQ3 メダルの景品の種類を増やす

すっかり更新の間隔が空いてしまっていますが、実は裏でちんたらまだ作業を続けていたりします。いい加減そろそろ次くらいでDQ3 K.Mixはすることもなくなって更新終わりとしたいところです。

さて、今回のお題は

DQ3でちいさなメダルの景品の種類を12から18に増やしたい

です。実際何を追加の景品として設定するべきかは別としてやるべきことは以下のとおりです。

  1. 既存の景品データを空いている場所に移動しデータサイズを12から18に拡張し、増やした分の景品情報を設定する
  2. 景品データ、景品数を参照しているプログラム部分を変える
  3. 景品一覧のウィンドウ描画部分を変える

まずデータの移動ですが、適当に空いている場所に移動すればOKです。今回は18レコードに増やすので連続して36バイト空いている場所ならどこでも構いません。今回は$03F800に移動します。テストとして移動後1レコード目に6枚で薬草、3レコード目に11枚で毒消し草、5レコード目に21枚で聖水、7レコード目に31枚でキメラの翼、9レコード目に36枚で世界樹の葉、14レコード目に81枚で死のオルゴールを追加景品として設定します(超適当)。今回作業のベースとしてDQ3 Extended ver1.444を使用していますが、オリジナルROMでもやることは同じはずです(未確認)。

次にプログラム部分の変更です。景品データのアドレスとレコード数を変えるだけで追加SRなどを作成する必要はありません。

  • SR: $03F076 ちいさなメダル受け取り処理
03F092 LDX #$0012 X=#$0012 景品数を12から18に増やす
03F147 CPX #$0012 X>=#$0012? 景品数を12から18に増やす

(2013-08-19追記)
$03F092の部分の処理が抜けてました。ご指摘ありがとうございます。

  • SR: $03F199 全ての褒美を与えているかチェック
03F1AB CPX #$0012 X>=#$0012? 景品数を12から18に増やす
  • SR: $03F21E 小さなメダルの次の賞品アイテムIDを取得する
03F230 LDA $C3F800,X A=$03F800+X 開始アドレス変更
  • SR: $03F239 次の賞品獲得までのメダルの総枚数を取得する
03F24B LDA $C3F800,X A=$03F800+X 開始アドレス変更

最後に景品リストを表示した時のウィンドウ部分の変更です。景品の表示はウィンドウID #$BFで行なっています。

  • SR: $035450 景品ウィンドウ項目数セット
035450 LDA #$0012 A=#$0012 景品数を12から18に増やす
  • SR: $034439 景品ウィンドウページ数計算
03443B LDA #$0012 A=#$0012 景品数を12から18に増やす

ざっとテストしたところこれらの変更で十分そうです。変更後の景品一覧は以下のようになります。

景品リスト1枚目

景品リスト2枚目

景品リスト3枚目

コメント

  1. ペシェ より:

    詳しい解説ありがとうございます。
    解説通りにやってみたらできました!あとは私もプレイして動作を確認してみますね^^

    K.Mixも楽しくプレイさせてもらっています
    次で完成ですか、これからも応援しております。