DQ3 ストーリー変更(ラスボス5)

ひかりのたまをゾーマとの戦闘中に使用した際に光ゾーマになるか灰ゾーマになるかを切り替えます。条件に応じてモンスターIDを切り替えるだけなのでこれといって難しいことはありません。

  • SR: $02A24A ひかりのたま使用(戦闘中,闇→光ゾーマ変更含む)
02A277 JSR $DED0 SR: $02DED0 ひかりのたま使用時ゾーマモンスターID切り替え
02A322 JSR $DEDF SR: $02DEDF ひかりのたま使用時ゾーマメッセージ表示
02A325-7 NOP
  • SR: $02DED0 ひかりのたま使用時ゾーマモンスターID切り替え(新SR)
02DED0 JSL $CDE7D9 SR: $0DE7D9 オルテガを生き返らせているか(該当c=on)
02DED4 BCC #$05 if(c==off) goto $02DEDB
02DED6 LDA #$00B5 A=#$00B5 灰ゾーマのモンスターID
02DED9 BRA #$03 goto $02DEDE
02DEDB LDA #$0088 A=#$0088 光ゾーマのモンスターID
02DEDE RTS return
  • SR: $02DEDF ひかりのたま使用時ゾーマメッセージ表示(新SR)
02DEDF JSL $CDE7D9 SR: $0DE7D9 オルテガを生き返らせているか(該当c=on)
02DEE3 BCC #$08 if(c==off) goto $02DEED
02DEE5 JSL $C1A867 SR: $01A867 引数:1#$0186 戦闘メッセージ表示
02DEEB BRA #$06 goto $02DEF3
02DEED JSL $C1A867 SR: $01A867 引数:1#$014F 戦闘メッセージ表示
02DEF3 RTS return
  • SR: $04AA48 光のたま使用時エフェクト処理
04AA8F JSR $F970 SR: $04F970 $04844F+灰ゾーマ用メッセージ表示
04AB0A JSR $F952 SR: $04F952 ゾーマひかりのたま使用時パレットアクセスID変更
  • SR: $04F970 $04844F+灰ゾーマ用メッセージ表示(新SR)
04F970 JSL $CDE7D9 SR: $0DE7D9 オルテガを生き返らせているか(該当c=on)
04F974 BCC #$06 if(c==off) goto $04F97C
04F976 JSL $C1A867 SR: $01A867 引数:1#$0187 戦闘メッセージ表示
04F97C JSR $844F SR: $04844F
04F97F RTS return
  • SR: $04F952 ゾーマひかりのたま使用時パレットアクセスID変更(新SR)
04F952 JSL $CDE7D9 SR: $0DE7D9 オルテガを生き返らせているか(該当c=on)
04F956 BCC #$05 if(c==off) goto $04F95D
04F958 LDA #$03BC A=#$03BC 灰ゾーマのパレットアクセスID
04F95B BRA #$03 goto $04F960
04F95D LDA #$074F A=#$034F 光ゾーマのパレットアクセスID
04F960 RTS return

さらに、ゾーマはアニメーション中のパレットが静止画像と別になっているようで、特別な処理をしてやらないとアニメーション中と静止画像の色が異なっておかしなことになります。

  • SR: $048951 ゾーマ攻撃アニメーション処理?
048954 JSR $F961 SR: $04F961 ゾーマ攻撃モーション時パレットアクセス設定
  • SR: $04F961 ゾーマ攻撃モーション時パレットアクセス設定(新SR)
04F961 JSL $CDE7D9 SR: $0DE7D9 オルテガを生き返らせているか(該当c=on)
04F965 BCC #$05 if(c==off) goto $04F96C
04F967 LDY #$03BC Y=#$03BC 灰ゾーマのパレットアクセスID
04F96A BRA #$03 goto $04F96F
04F96C LDY #$034F Y=#$034F 光ゾーマのパレットアクセスID
04F96F RTS return

個別の処理自体はまあ芸が無いというか、オルテガの生存状態を見て処理を切り替えているだけです。ただ、対応しないといけない部分が何箇所かに散らばっているのでちょっと面倒なだけです。

しかし、このモーションといい、吹雪を吐くアニメーションといい、もうちょっと何とかならなかったのかと本家に突っ込みたい。