DQ3 ストーリー変更(メルキド襲撃4)

イベントの実装の続きを行います。イベント中のマップの切り替え時に戦闘BGMが継続するようにします。

  • SR: $0CF1A7 メルキドBGM設定
0CF1A7 JSL $C7786D SR: $07786D 引数:1#$CDE63C BGM設定
0CF1AE RTL return
  • SR: $0A4B08 メルキド宿屋進入時初期化処理
0A4B1E JSL $C7786D SR: $07786D 引数:1#$CDE4E6
  • SR: $0DE4E6 メルキド宿屋BGM設定(新SR)
0DE4E6 JSL $CCF193 SR: $0CF193 メルキドにモンスター襲撃中か
0DE4EA BCC #$0E if(c==off) goto $0DE4FA
0DE4EC LDA #$001A A=#$001A
0DE4EF CMP $99AF A==$99AF?
0DE4F2 BEQ #$04 if(z==on) goto $0DE4F8
0DE4F4 JSL $CCF744 SR: $0CF744 現在のBGMをフェードアウトして戦闘BGM再生
0DE4F8 BRA #$1D goto $0DE517
0DE4FA JSL $CC7A53 SR: $0C7A53
0DE4FE BCS #$02 if(c==on) goto $0DE502
0DE500 BRA #$15 goto $0DE517
0DE502 JSL $CDA1B1 SR: $0DA1B1
0DE506 BRA #$0F goto $0DE517
0DE508 LDA #$000F A=#$000F
0DE50B JSL $C72F5E SR: $072F5E 現在BGMとAが一致するか調べる
0DE50F BCC #$02 if(c==off) goto $0DE513
0DE511 BRA #$04 goto $0DE517
0DE513 JSL $CDA1B1 SR: $0DA1B1
0DE517 RTL return
  • SR: $0DE63C メルキドBGM設定(新SR)
0DE63C JSL $CCF193 SR: $0CF193 メルキドにモンスター襲撃中か
0DE640 BCC #$0E if(c==off) goto $0DE650
0DE642 LDA #$001A A=#$001A
0DE645 CMP $99AF A==$99AF?
0DE648 BEQ #$04 if(z==on) goto $0DE64E
0DE64A JSL $CCF744 SR: $0CF744 現在のBGMをフェードアウトして戦闘BGM再生
0DE64E BRA #$0F goto $0DE65F
0DE650 LDA #$000F A=#$000F
0DE653 JSL $C72F5E SR: $072F5E 現在BGMとAが一致するか調べる
0DE657 BCC #$02 if(c==off) goto $0DE65B
0DE659 BRA #$04 goto $0DE65F
0DE65B JSL $CDA1B1 SR: $0DA1B1
0DE65F RTL return
  • SR: $0CF744 現在のBGMをフェードアウトして戦闘BGM再生(新SR)
0CF744 JSL $CDA15A SR: $0DA15A 現在のBGMフェードアウト?
0CF748 LDA #$001A A=#$001A
0CF74B JSL $C72FB2 SR: $072FB2 BGM再生
0CF74F RTL return

この実装を行った後に、「連戦中は戦闘BGMをノンストップで流す」ように変更したので(戦闘が終わった後にまたすぐ戦闘BGMが頭から流れると違和感ありまくりなので)、「現在BGMをフェードアウトして戦闘BGM再生」のあたりはあまり意味がないかもしれません。今回はここまでにします。