実体の実装が終わったので、残りはエフェクトだけです。エフェクトはDQ6の地響きをパクることにします。地響きの地割れの部分はBG1,2の1枚絵を使用し、パレットアニメーションで色を変化させることでそれっぽく見せています。
- SR: $041E80 ガイアの剣追加効果エフェクト処理(新SR)
041E80 | JSL $01E32E | SR: $01E32E 引数:1#$00C9 | SE再生 |
---|---|---|---|
041E86 | JSR $844F | SR: $04844F | |
041E89 | LDA #$03BF | A=#$03BF | BG1,2ID設定 |
041E8C | STA $4F74 | $7E4F74=A | |
041E8F | LDX #$0000 | X=#$0000 | |
041E92 | LDY #$007C | Y=#$007C | |
041E95 | LDA #$001F | A=#$001F | |
041E98 | JSR $B65B | SR: $04B65B | 呪文使用時エフェクト描画用データセット? |
041E9B | PHX | Push X | |
041E9C | JSL $002ABA | SR: $002ABA 引数:1#$C4B212 | |
041EA3 | LDA $4880,X | A=$7E4880+X | |
041EA6 | JSL $004604 | SR: $004604 引数:1#$F664FC 引数:2#$01 | パレットアニメーション設定? |
041EAE | LDA #$0022 | A=#$0022 | |
041EB1 | LDY #$1EC9 | Y=#$1EC9 | |
041EB4 | JSL $002ABA | SR: $002ABA 引数:1#$C4B3CA | |
041EBB | JSR $AFA7 | SR: $04AFA7 | エフェクト実行? |
041EBE | JSR $8548 | SR: $048548 | |
041EC1 | PLX | Pull X | |
041EC2 | JSR $B6DA | SR: $04B6DA | |
041EC5 | JSR $B7A7 | SR: $04B7A7 | |
041EC8 | RTS | return |
今回一番つまったのが、$041EB1-3のあたりです。初めは何を示しているのかわからずDQ6からそのままパクッてきただけだったのですが画面が派手にバグってフリーズという現象に見舞われ、結局DQ6で同じSRをデバッガで追ったところ、直後に配置してある定数群を参照している、ということがわかりました。ということで、#$1EC9というのは、このSRのすぐ後ろのアドレス(#$041EC9)のことを意味しており、ここに定数扱いのデータが18バイト続きます(DQ6では$04DC27から18バイト)。他のSRについては相変わらずあまり意味がわからず同じっぽいSRをDQ3から見つけてきてあてがっています。というわけでひと通り実装が終わりました。発動させると以下のようになります。SEはまだ変更の余地ありかもしれません。
1点問題があり、おろちの洞窟やバラモス戦のような今回のエフェクトと同系統色の背景の場合は、背景にまぎれてエフェクトが見えません。背景を調べて該当の背景の場合はパレットアニメーションさせる色を変える、という手もありますが、まあそこまでしなくていいかなという気もするので、とりあえずこのままにします。
コメント
k.mix楽しませてもらっています。作成お疲れ様です。
ガイアの剣装備のAI戦士(呪文使うな)では追加ギミックが発動しませんでした。何度も試したので間違いないと思います。
お気に入りの追加ギミックなので……。
無理せず頑張ってください!
ご指摘ありがとうございます。
手元で再現しないな…と思っていたら次期バージョンの作業中に見つけて直していました。ver1.6.7では再現することを確認しています。ver1.6.7にこの修正だけ入れるのは結構手間がかかるので申し訳ないですが次期バージョンのリリースまでお待ち下さい。
すばやいお返事ありがとうございます。
既に対応済みだったとは 流石ですね。
気長に待ってます。