DQ6戦闘部分解説5

ちんたらやっているせいで未だに戦闘が始まっていないわけですが、他にネタもないしいいかなと。

  • SR:$0236A9 アストロン解除処理
0236A9 PHP Push P Flag
0236AA PHB Push DB
0236AB REP #$30 m=off(A/M:16b) x=off(X/Y:16b)
0236AD PEA #$7E7E Push #$7E7E
0236B0 PLB Pull DB
0236B1 PLB Pull DB
0236B2 JSL $C2C5E3 SR: $02C5E3
0236B6 LDX #$0017 X=#$0017
0236B9 STZ $00 DP($00)=#$00
0236BB JSL $C2EFA7 SR: $02EFA7 引数:1#$205F 引数:2#$0001 戦闘中キャラクター情報取得 インデックス:X
0236C3 BEQ #$66 if(z==on) goto $02372B 戦闘に参加していなければスキップ
0236C5 JSL $C2C331 SR: $02C331 行動情報リセット?
0236C9 LDA #$0000 A=#$0000 受け身体勢リセット
0236CC JSL $C2F034 SR: $02F034 引数:1#$2054 引数:2#$000F 戦闘中キャラクター情報変更 インデックス:X
0236D4 LDA #$0000 A=#$0000 かばい状態リセット
0236D7 JSL $C2F034 SR: $02F034 引数:1#$2057 引数:2#$0040 戦闘中キャラクター情報変更 インデックス:X
0236DF JSL $C2F034 SR: $02F034 引数:1#$2057 引数:2#$0080 混乱解除ターンリセット
0236E7 LDA #$0000 A=#$0000 やり返し状態リセット
0236EA JSL $C2F034 SR: $02F034 引数:1#$205E 引数:2#$0003 戦闘中キャラクター情報変更 インデックス:X
0236F2 STX $258B $258B=X
0236F5 JSL $C2E4DC SR: $02E4DC 引数:1#$1A 戦闘中情報取得/変更
0236FA BCC #$0B if(c==off) goto $023707
0236FC LDA #$0000 A=#$0000 休み状態解除
0236FF JSL $C2F034 SR: $02F034 引数:1#$2055 引数:2#$00C0 戦闘中キャラクター情報変更 インデックス:X
023707 JSL $C2EFA7 SR: $02EFA7 引数:1#$204E 引数:2#$0007 戦闘中キャラクター情報取得 インデックス:X
02370F CMP #$0005 A>=#$0005? グループ番号が敵ならスキップ
023712 BCC #$17 if(c==off) goto $02372B
023714 JSL $C2EFA7 SR: $02EFA7 引数:1#$2050 引数:2#$0004 戦闘中キャラクター情報取得 インデックス:X
02371C BEQ #$0D if(z==on) goto $02372B
02371E LDA #$0000 A=#$0000 アストロン状態解除
023721 JSL $C2F034 SR: $02F034 引数:1#$2050 引数:2#$0004 戦闘中キャラクター情報変更 インデックス:X
023729 INC $00 DP($00)++
02372B DEX X–
02372C BPL #$8D if(n==off) goto $0236BB
02372E LDA $00 A=DP($00)
023730 BEQ #$0C if(z==on) goto $02373E
023732 LDA #$0042 A=#$0042
023735 STA $2555 $2555=A
023738 JSL $C02A16 SR: $002A16 引数:1#$0086 戦闘メッセージ表示「○○の アストロンが とけた!」
02373E LDA #$0000 A=#$0000
023741 PEA #$2513 Push #$2513
023744 PEA #$0008 Push #$0008
023747 PEA #$7E00 Push #$7E00
02374A JSL $C929B0 SR: $0929B0 RAM上情報変更
02374E STZ $2521 $2521=#$00
023751 STZ $2523 $2523=#$00
023754 STZ $2525 $2525=#$00
023757 STZ $2527 $2527=#$00
02375A PLB Pull DB
02375B PLP Pull P Flag
02375C RTL return

DQ6のアストロンはザメハの効果も兼ねているのですが、ここでは睡眠状態の解消処理は行われていませんでした。睡眠状態に関してはアストロン実行時に即座に解除しているようです。ちょっと短いですがいったんここで切ります。