少し進展がありました。ギラの炎のエフェクトはBG12のデータ1枚をパラパラ漫画の1枚として扱っているようです。
- SR: $049826 ギラ系エフェクト
略 | |||
---|---|---|---|
049838 | LDA #$0361 | A=#$0361 | 炎の色のパレットアクセスID? |
04983B | STA $4F74 | $4F74=A | |
04983E | LDX #$0000 | X=#$0000 | |
049841 | LDY #$0008 | Y=#$0008 | |
049844 | LDA $4F7C | A=$4F7C | |
049847 | BEQ #$03 | if(z==on) goto $04984C | |
049849 | LDY #$FFF0 | Y=#$FFF0 | |
04984C | LDA #$0013 | A=#$0013 | ギラ用炎のアニメーションID? |
04984F | JSR $B65B | SR: $04B65B | 呪文使用時エフェクト描画用データセット |
略 |
このSR: $04B65Bが肝だったようです。この中でSR: $0476C8を呼んでいるのですが、この中を見てみます。
- SR: $0476C8 呪文使用時エフェクトアドレスアクセス
略 | |||
---|---|---|---|
0476F8 | JSL $C90501 | SR: $090501 引数:1#$00 引数:2#$0003 引数:3#$C542A6 引数:4#$02 | 構造体アクセス Y番目の先頭アドレスを$00,第4引数にセット |
略 |
$05418D-0541D7に25レコードのアドレスが指定されています。ギラの実行時に指定されているアドレス($C10B3B→$010B3B)に可変のエフェクトデータが格納されています。データの内訳は
$00 | 表示時間(フレーム数?) |
$01-2 | BG1,2ID |
をの3バイト1セットとして、$00にFFがくるまで繰り返します。つまり画面全体にかかるようなエフェクトはBG1,2データを画面に重ねて描画している、ということのようです。ここまでくればあと画像をDQ6から移植できれば再現は可能ではというところまできました。
(24:00追記)
画像を手動で移動するのは骨が折れるしミスの元になるのでDQ3SFCEditorに画像ぶっこ抜き機能を追加して移植してみました。たしかにエフェクト自体は移植できましたが、色がまだ白(恐らくウィンドウのフレームの色)いままです…。もう少し調査の必要がありそうです。
コメント