さて、ずいぶん間があいてしまったどこまでやったか忘れたのですが、なんだかんだであとちょっとなので一応最後までやります。実際に変更したモノが皆さんの手元にあるので今までよりはわかりやすいかもしれません。ネタバレ防止進行でいきます。
前回の実装でバラモスの間の特定座標に達すると下から骸骨が出てきて消えるところまで終わっています。次はバラモスの間を出て左に移動するとこれまた特定座標に到達すると骸骨が移動して消える、という実装を行います。
- SR: $0A5936 バラモス城進入時初期化処理
略 | |||
---|---|---|---|
0A5957 | JSL $CCF921 | SR: $0CF921 | バラモス城イベント・NPC等設定処理 |
0A595B-D | NOP | ||
略 |
- SR: $0CF921 バラモス城イベント・NPC等設定処理(新SR)
0CF921 | JSL $C77843 | SR: $077843 引数:1#$CAA01E | 移動・宝箱・ドア・NPC情報設定用SRアドレス設定 |
---|---|---|---|
0CF928 | JSL $C7785F | SR: $07785F 引数:1#$CDEF82 | イベント設定 |
0CF92F | RTL | return |
- SR: $0AA01E バラモス城移動・宝箱・ドア・NPC情報設定用SRアドレス設定
略 | |||
---|---|---|---|
0AA086-9 | NOP | ||
0AA089 | JSL $CCFEB4 | SR: $0CFEB4 | バラモス城NPC設定 |
略 |
- SR: $0CFEB4 バラモス城NPC設定(新SR)
0CFEB4 | LDA #$007B | A=#$007B | |
---|---|---|---|
0CFEB7 | JSL $C758DE | SR: $0758DE | |
0CFEBB | JSL $CDEF3A | SR: $0DEF3A | バラモス城(外観)追加イベント1発生条件か(該当c=on) |
0CFEBF | BCC #$07 | if(c==off) goto $0CFEC8 | |
0CFEC1 | LDA #$059C | A=#$059C | |
0CFEC4 | JSL $C75828 | SR: $075828 | NPC1設定 |
0CFEC8 | RTL | return |
- SR: $0DEF3A バラモス城(外観)追加イベント1発生条件か(該当c=on)(新SR)
0DEF3A | JSL $CDEF25 | SR: $0DEF25 | バラモス城追加イベント1発生条件か(該当c=on) |
---|---|---|---|
0DEF3E | BCC #$13 | if(c==off) goto $0DEF53 | |
0DEF40 | LDA $3638 | A=$3638 | バラモス城で骸骨が消えるイベント終了済み |
0DEF43 | AND #$0004 | A&=#$0004 | |
0DEF46 | BNE #$0B | if(z==off) goto $0DEF53 | |
0DEF48 | LDA $3638 | A=$3638 | バラモスの間で骸骨が出現済み |
0DEF4B | AND #$0002 | A&=#$0002 | |
0DEF4E | BEQ #$03 | if(z==on) goto $0DEF53 | |
0DEF50 | SEC | c=on | |
0DEF51 | BRA #$01 | goto $0DEF54 | |
0DEF53 | CLC | c=off | |
0DEF54 | RTL | return |
- SR: $0DEF55 バラモス城(外観)追加イベント1実処理(新SR)
0DEF55 | COP | goto $00FFE4 | |
---|---|---|---|
0DEF56 | JSL $CCD276 | SR: $0CD276 | |
0DEF5A | LDA #$08F8 | A=#$08F8 | |
0DEF5D | LDX #$0918 | X=#$0918 | |
0DEF60 | LDY #$0A20 | Y=#$0A20 | |
0DEF63 | JSL $C753A2 | SR: $0753A2 | PCが指定座標(Y座標は範囲指定)に到達しているか(該当c=on) |
0DEF67 | BCS #$02 | if(c==on) goto $0DEF6B | |
0DEF69 | BRA #$EB | goto $0DEF56 | |
0DEF6B | JSL $CDADD8 | SR: $0DADD8 | カウンタに1000セット |
0DEF6F | JSL $CDAED1 | SR: $0DAED1 | カウンタが2000になるまで待機 |
0DEF73 | LDA #$0004 | A=#$0004 | |
0DEF76 | TSB $3638 | A or $3638 | |
0DEF79 | JSL $CDD65C | SR: $0DD65C | PC表示 |
0DEF7D | JSL $CCD298 | SR: $0CD298 | イベント終了時処理 |
0DEF81 | RTL | return |
- SR: $0CFEC9 NPC1_MoveSR_059C(新SR)
0CFEC9 | COP | goto $00FFE4 | |
---|---|---|---|
0CFECA | JSL $CDAEB1 | SR: $0DAEB1 | カウンタが1000になるまで待機 |
0CFECE | JSL $CCD392 | SR: $0CD392 | キャラクターイベント中移動フラグON? |
0CFED2 | JSL $CCD35E | SR: $0CD35E | 移動速度4/3倍速セット? |
0CFED6 | LDX #$0027 | X=#$0027 | |
0CFED9 | LDA #$0026 | A=#$0026 | |
0CFEDC | JSL $C75474 | SR: $075474 | キャラクター移動先座標指定 |
0CFEE0 | JSL $CCD58C | SR: $0CD58C | 指定座標にX軸→Y軸の順でキャラクター移動 |
0CFEE4 | JSL $C75930 | SR: $075930 | キャラクター消滅 |
0CFEE8 | JSL $CDADE6 | SR: $0DADE6 | カウンタに2000セット |
0CFEEC | RTL | return |
あとは再度バラモス城1F-2(バリアと玉座があるフロア)で骸骨に話しかけてメッセージを表示、フラグをONにして骸骨を消す実装をするだけなのでこれといって特筆するべき点はないので省略します。さて、次回は山場のひとつだった「5人目をパーティに追加する実装」をします。
コメント