DQ3 やまびこのぼうしバグ修正

バイナリスレで指摘のあった「やまびこのぼうし装備時に複数対象の呪文の1発目で敵が全滅した場合に『じゅもんが やまびことなって こだまする!』のメッセージが余計に表示される」という問題を修正します。さらに追加で見つけた「やまびこ反響時にMPが引かれ、連続魔になっている」問題もあわせて修正します。やまびこのぼうしの効果については、オリジナルのDQ6と動作が異なる点(1体対象の呪文で1発目の発動で倒した場合にまだ敵が残っていても2発目が発動しない)もちょっと気になるのですが、とりあえず仕様ということで後回しにして、明らかにバグっている部分を修正します。久しぶりに戦闘部分に触ったので完全に忘れていてちょっとあせりました。

  • SR: $02D8E8→$02DAB0に移動
  • #$027974から3バイトを#$02DAB0に変更(上記SRの移動に伴う呼び出し部分の変更)
  • SR: $02DAB0 再度行動を繰り返すか判断する(行動するc=off)
02DABELDA $260AA=$260A
02DAC1CMP #$0001A==#$0001?やまびこのぼうしで反響する
02DAC4BNE #$0Cif(z==off) goto $02DAD2
02DAC6JSL $C2B32FSR: $02B32F戦闘終了フラグ設定?
02DACABCS #$06if(c==on) goto $02DAD2戦闘終了条件を満たしている?
02DACCJSL $C1A867SR: $01A867 引数:1#$017C戦闘メッセージ表示「じゅもんが やまびことなって…」
02DAD2PLAPull A
02DAD3CLCc=off
02DAD4RTSreturn

  • SR: $027C68 MP切れ・マホトーン・呪いで行動できないか決定する
027C78JSL $C2DAEBSR: $02DAEB現MPが選択呪文の消費MPより上か
027C89JSR $DAD5SR: $02DAD5やまびこのぼうしの反響中でなければMP消費
027C8C-DNOP
  • SR: $02DAEB 現MPが選択呪文の消費MPより上か(該当c=on)(新SR)
02DAEBJSL $C2DA1BSR: $02DA1Bやまびこのぼうし反響中か(該当c=on)
02DAEFBCS #$06if(c==on) goto $02DAF7
02DAF1JSL $C2E71CSR: $02E71C現MPが選択呪文の消費MPより上か
02DAF5BRA #$01goto $02DAF8
02DAF7SECc=on
02DAF8RTLreturn
  • SR: $02DAD5 やまびこのぼうしの反響中でなければMP消費(新SR)
02DAD5JSL $C2DA1BSR: $02DA1B
02DAD9BCS #$05if(c==on) goto $02DAE0
02DADBJSL $C2BE8ASR: $02BE8A 引数:1#$0E
02DAE0RTSreturn
  • SR: $02DA1B やまびこのぼうしの反響中か(該当c=on)(新SR)
02DA1BLDA $260AA=$260A
02DA1ECMP #$0001A==#$0001?
02DA21BNE #$0Bif(z==off) goto $02DA2E
02DA23LDA $23D8A=$23D8
02DA26CMP #$0001A==#$0001?
02DA29BNE #$03if(z==off) goto $02DA2E
02DA2BSECc=on
02DA2CBRA #$01goto $02DA2F
02DA2ECLCc=off
02DA2FRTLreturn

改造スキルが上がっているせいか、修正は割と簡単にできました。全部の呪文の使用時のチェックをまだやっていないのでまだバグがあるかもしれません。もし見つけたら教えてください。

コメント

  1. k.s より:

    いつもお世話になっております。

    もしかしたら別の記事で言及済かもしれませんが、
    はやぶさの剣とやまびこのぼうしの装備者がどちらもいる場合
    一度やまびこ対象の呪文を唱えてしまうと$260A=#$0001のままなので
    その後はやぶさの剣で攻撃すると追撃時に「じゅもんが やまびことなって…」
    のメッセージが表示されてしまいました。

    メッセージ表示後あたりで$260Aをクリアすれば良いだけだと思うので
    大した問題でもありませんが、一応ご報告しておきます。

    管理者より返信:

    手元では再現できませんでした。デバッガで該当のメモリを見ながら確認しましたが、やまびこ実行後にフラグがクリアされていました。お手数ですが現象発生前後のSnes9xのステートセーブをいただけないでしょうか?

  2. k.s より:

    早速ご確認いただきありがとうございます。

    本来は特にケアしなくても自然にクリアされるのですね。。
    k.mixではなく個人的に改造しているROMで発生した現象なので
    自分の改造固有の問題かもしれません。

    個人改造のROMのステートセーブを送られても困ると思いますので
    もう少し自分のほうで見てみたいと思います。
    お手数をおかけして申し訳ありませんでした。

    管理者より返信:

    >本来は特にケアしなくても自然にクリアされるのですね。。

    DQ3 K.Mixではケアしてクリアしています。これはかなり古い実装なので現在はだいぶ変えています。

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