DQ3 ストーリー変更(ロマリア~ノアニール8)

ちょっと間があいてしまいました。ようやく幽霊船編の変更が一通り終わったので余裕ができました。演出的にはまだ不満はありますが。さて、前回は中途半端なところで止まっていたので、今回は一気にイベントを実装してしまいたいと思います。

  • SR: $0BF059 ロマリア追加処理(新SR)
0BF059 LDA $3619 A=$3619
0BF05C AND #$0002 A&=#$0002
0BF05F BNE #$1F if(z==off) goto $0BF080
0BF061 LDA $35B0 A=$35B0
0BF064 AND #$0020 A&=#$0020
0BF067 BNE #$17 if(z==off) goto $0BF080
0BF069 LDA $35B0 A=$35B0
0BF06C AND #$0010 A&=#$0010
0BF06F BEQ #$12 if(z==on) goto $0BF083
0BF071 BRK $0FE8 ($0B0FE8) goto $00FFE6(メッセージ表示) #$0FE8
0BF074 JSL $CDACD2 SR: $0DACD2
0BF078 LDA #$0020 A=#$0020
0BF07B TSB $35B0 A or $35B0
0BF07E SEC c=on
0BF07F RTS return
0BF080 JMP $F0A5 ($0BF0A5) goto $0BF0A5
0BF083 LDA $35B0 A=$35B0
0BF086 AND #$0008 A&=#$0008
0BF089 BNE #$1A if(z==off) goto $0BF0A5
0BF08B JSL $CDADD8 SR: $0DADD8
0BF08F LDA $35B0 A=$35B0
0BF092 AND #$0004 A&=#$0004
0BF095 BEQ #$0E if(z==on) goto $0BF0A5
0BF097 LDA #$0008 A=#$0008
0BF09A TSB $35B0 A or $35B0
0BF09D LDA #$0002 A=#$0002
0BF0A0 TSB $3619 A or $3619
0BF0A3 SEC c=on
0BF0A4 RTS return
0BF0A5 LDA $354F A=$354F
0BF0A8 AND #$0004 A&=#$0004
0BF0AB CLC c=off
0BF0AC RTS return
  • SR: $0CF280 NPC1_MoveSR_0572(新SR) イベント時の王様のNPC
0CF280 JSL $CCDADF SR: $0CDADF
0CF284 COP goto $00FFE4
0CF285 JSL $CDAEB1 SR: $0DAEB1 カウンタが1000になるまで待機
0CF289 JSL $CCD847 SR: $0CD847 キャラクターを下に向かせる
0CF28D RTL return
  • SR: $0CF300 NPC1_MoveSR_056E(新SR) イベント時のPC1人目のNPC
0CF300 COP goto $00FFE4
0CF301 JSL $CCD392 SR: $0CD392
0CF305 JSL $CDAEB1 SR: $0DAEB1 カウンタが1000になるまで待機
0CF309 JSL $CCD46A SR: $0CD46A PC1人目を行動対象にする?
0CF30D JSL $CDADBB SR: $0DADBB
0CF311 LDA $3434 A=$3434
0CF314 CMP #$0578 A>=#$0578?
0CF317 BCC #$03 if(c==off) goto $0CF31C
0CF319 JMP $F320 ($0CF320) goto $0CF320
0CF31C COP goto $00FFE4
0CF31D JMP $F311 ($0CF311) goto $0CF311
0CF320 JSL $CDE09B SR: $0DE09B 視点移動をキャラクターの移動にあわせる?
0CF324 LDX #$0035 X=#$0035
0CF327 LDA #$0027 A=#$0027
0CF32A JSL $C75474 SR: $075474 キャラクター移動先座標を指定
0CF32E JSL $CCD59D SR: $0CD59D 指定座標にY軸→X軸の順でキャラクター移動
0CF332 JSL $CCD837 SR: $0CD837 キャラクターを上に向かせる
0CF336 LDX #$09A8 X=#$09A8
0CF339 STX $C5E5 $C5E5=X
0CF33C LDA #$0928 A=#$0928
0CF33F STA $C625 $C625=A
0CF342 LDX #$0024 X=#$0024
0CF345 STX $C725 $C725=X
0CF348 LDA #$0011 A=#$0011
0CF34B STA $C765 $C765=A
0CF34E STZ $CFA5 $CFA5=#$00
0CF351 JSL $CDADE6 SR: $0DADE6
0CF355 JSL $CDAF41 SR: $0DAF41
0CF359 JSL $C75930 SR: $075930 キャラクター消滅
0CF35D JSL $CDAE1E SR: $0DAE1E
0CF361 RTL return
  • SR: $0CF385 NPC1_MoveSR_056E(新SR) イベント時のPC2人目のNPC
0CF385 COP goto $00FFE4
0CF386 JSL $CDAEB1 SR: $0DAEB1 カウンタが1000になるまで待機
0CF38A JSL $CCD4AA SR: $0CD4AA PC2人目を行動対象にする?
0CF38E JSL $CDADBB SR: $0DADBB
0CF392 JSL $CCD392 SR: $0CD392
0CF396 LDX #$0035 X=#$0035
0CF399 LDA #$0029 A=#$0029
0CF39C JSL $C75474 SR: $075474 キャラクター移動先座標を指定
0CF3A0 JSL $CCD59D SR: $0CD59D 指定座標にY軸→X軸の順でキャラクター移動
0CF3A4 JSL $CCD837 SR: $0CD837 キャラクターを上に向かせる
0CF3C3 JSL $CDAF41 SR: $0DAF41
0CF3C7 JSL $C75930 SR: $075930 キャラクター消滅
0CF3CB RTL return
  • SR: $0CF400 NPC1_MoveSR_056F(新SR) イベント時のPC3人目のNPC(省略)
  • SR: $0CF480 NPC1_MoveSR_0570(新SR) イベント時のPC4人目のNPC(省略)

まだイベントのさわりなのですが、この時点でかなりの分量なのでまたここで一旦切ります。3人目、4人目は移動先の座標が違うだけなので省略しました。この時点でやっていることは2点

  • 話し掛けたタイミングで王様を下に向かせる
  • 話し掛けたタイミングでパーティを王様の前に整列させる

です。パーティの整列はすごろく場で先頭のキャラクターがすごろくを開始した後の残りのパーティーの処理を参考にしました。

イベント開始前

イベント開始時