DQ3 ストーリー変更(光の鎧入手4)

DQ6のメニューインターフェース改良に手を出しているのですが、ようやく取っ掛かりができたかなという感じ。目立たない部分ではありますが、一番よく触る部分でもあるので操作性の悪さ(特にさんざんDQ3をプレイしたあとだと)があちこちで目立ちます。幸いなことにwikiのDQ6の項は(おそらく45氏の編集の賜物と思われる)DQ3に比べて充実しているので、作業は以前に比べてずいぶん楽な印象があります。

さて、PCにもう一人追加するという作業をするわけですが、確実に「やっかいな作業」のうちの一つでした(一部まだ未修正だし)。作業の方針として、「移動時に5人目*1を連れて歩けるようにする」ことを第1段階の目標とします。その後「同一マップ中での5人目の加入/離脱」を第2段階とします。

今回の作業は「DQ3がDQ6のエンジンをベースにしている」ことに大きく依存しています。メッセージ中にはDQ6で使用されていたメッセージ(天空の武具をインパスしたときのメッセージ)が一部残っていたり、成長データの一部が残っていたりとその可能性はかなり高いです。そこで、「移動中のモードがDQ6のものが残っていないか」を調べてみたところ、馬車の入れるダンジョンでのPC表示用のモードがそっくりそのまま残っていることがわかりました(2人目、3人目に馬と馬車の代わりにスライムのキャラが挟まった6人編成)。

  • SR: $062D4C PC描画モード設定?
062D4CJSR $F5DASR: $06F5DAPC描画タイプ初期化?
062D4FNOP
062D50NOP
062D51NOP
062D52BCS #$11if(c==on) goto $062D65
062D63BRA #$03goto $062D68
062D65NOP
062D66NOP
062D67NOP
  • SR: $06F5DA PC描画タイプ初期化?(新SR)
06F5DALDA $DB05A=$DB05
06F5DDCMP #$0008A==#$0008?
06F5E0BNE #$05if(z==off) goto $06F5E7
06F5E2LDA #$0006A=#$0006
06F5E5SECc=on
06F5E6RTSreturn
06F5E7PHXPush X
06F5E8TAXX=A
ガライが仲間になっているかの条件判定を実装
06F613LDA #$0002A=#$0002
06F616PLXPull X
06F617SECc=on
06F618RTSreturn
06F619TXAA=X
06F61APLXPull X
06F61BCLCc=off
06F61CRTSreturn

SR: $062D4Cのオリジナルの実装を見るとわかるのですが、このSRではもともとは$7EDAF7に対して#$00か#$08しか設定しません。#$00は通常時の描画モード、#$08はおそらく鳥に乗っている間の描画モードと思われます。ためしにデバッガでこのSRの終了間際に$7EDAF7に#$02をセットすると上述のように6人編成になります。というわけで今回は描画モード2をガライが仲間になっている間の描画モード用に転用します。

  • SR: $062DA6 PC描画タイプ設定?_SR_0001
062DAECPX #$000AX>=#$000A?#$000Cから変更(6人→5人)
  • SR: $063019 PC+NPC描画?
063033JSL $CDF97CSR: $0DF97C5人目を透明にするべきか(該当c=on)
063037BCC #$03if(c==off) goto $06303C
063039LDA #$FFFFA=#$FFFF
06303CCMP #$FFFFA==#$FFFF?
06303FBEQ #$33if(z==on) goto $063074
063041JSR $F512SR: $06F512追加NPCキャラクターインデックス置き換え(置換済みc=on)
063044BCS #$10if(c==on) goto $063056
063046JSR $F56BSR: $06F56B追加NPC用キャラクターインデックス取得(実体)
063049-55NOP
  • SR: $06F56B 追加NPC用キャラクターインデックス取得(実体)
06F56BPHXPush X
06F56CAND #$7FFFA&=#$7FFF
06F56FTAXX=A
06F570LDA #$0000A=#$0000
06F573STA $EA21$EA21=A
06F576LDA #$00FFA=#$00FF
06F579STA $EA23$EA23=A
06F57CJSL $C903EESR: $0903EE 引数:1#$00 引数:2#$0002 引数:3#$C8D23C 引数:4#$0000構造体アクセス
06F588PLXPull X
06F589RTSreturn

さらに、$08D23C-Dを#$003Fに変更しておきます。#$003Fとは吟遊詩人のキャラグラIDです。

これでとりあえず移動中の最後に5人目のキャラクターが付くようになります。通常→透明、通常→変化の杖による変身も5人目もちゃんと対象になります。ただ、透明→変身(もしくはその逆)だと若干エフェクトが4人目までと異なってしまいますが、今回の変更では透明→変身の経路は存在しないので目をつぶります。

(だいぶ前に作業したので詳細を忘れてしまいました。またあとで追記するかも)

20100125154311.jpg

*1:パーティが4人未満の場合は5人目にならないのですが便宜的にこう呼びます

コメント

タイトルとURLをコピーしました