* デスペル新ルーチン ; 一応 デスペルプログラムルーチン にジャンプする直前から載せています。 ----------------------------------------------------------------------------------------------------------------------- $B487:20 76 AF JSR $AF76 A:02 X:04 Y:27 P:nvUbdIzc $AF76:A0 08 LDY #$08 A:02 X:04 Y:27 P:nvUbdIzc $AF78:B1 A1 LDA ($A1),Y @ $7D82 = #$00 A:02 X:04 Y:08 P:nvUbdIzc 7D82 00;フリオ 状態 永久変化 $AF7A:60 RTS A:00 X:04 Y:08 P:nvUbdIZc $B48A:29 C0 AND #$C0 A:00 X:04 Y:08 P:nvUbdIZc ;石化,死と比較 $B48C:F0 0D BEQ $B49B A:00 X:04 Y:08 P:nvUbdIZc $B49B:A5 A6 LDA $A6 = #$00 A:00 X:04 Y:08 P:nvUbdIZc 00A6 00;魔法全体化カウンタ $B49D:F0 12 BEQ $B4B1 A:00 X:04 Y:08 P:nvUbdIZc $B4B1:20 76 AF JSR $AF76 A:00 X:04 Y:08 P:nvUbdIZc $AF76:A0 08 LDY #$08 A:00 X:04 Y:08 P:nvUbdIZc $AF78:B1 A1 LDA ($A1),Y @ $7D82 = #$00 A:00 X:04 Y:08 P:nvUbdIzc 7D82 00;フリオ 状態 永久変化 $AF7A:60 RTS A:00 X:04 Y:08 P:nvUbdIZc $B4B4:29 C0 AND #$C0 A:00 X:04 Y:08 P:nvUbdIZc ;石化,死と比較 $B4B6:F0 0B BEQ $B4C3 A:00 X:04 Y:08 P:nvUbdIZc $B4C3:A5 6C LDA $6C = #$1D A:00 X:04 Y:08 P:nvUbdIZc 006C 1D ;魔法ID $B4C5:C9 14 CMP #$14 A:1D X:04 Y:08 P:nvUbdIzc ;黒魔法/白魔法判別 $B4C7:B0 03 BCS $B4CC A:1D X:04 Y:08 P:nvUbdIzC ;白魔法ならジャンプ $B4CC:A0 28 LDY #$28 A:1D X:04 Y:08 P:nvUbdIzC $B4CE:B1 9F LDA ($9F),Y @ $7E02 = #$00 A:1D X:04 Y:28 P:nvUbdIzC 7E02 00;ガイ使用魔法 魔法属性 $B4D0:A0 17 LDY #$17 A:00 X:04 Y:28 P:nvUbdIZC $B4D2:31 A1 AND ($A1),Y @ $7D91 = #$00 A:00 X:04 Y:17 P:nvUbdIzC 7D91 00; フリオ 吸収魔法属性 $B4D4:F0 03 BEQ $B4D9 A:00 X:04 Y:17 P:nvUbdIZC $B4D9:A5 5E LDA $5E = #$0D A:00 X:04 Y:17 P:nvUbdIZC 005E 0D ;デスペル プログラムID $B4DB:0A ASL A:0D X:04 Y:17 P:nvUbdIzC $B4DC:18 CLC A:1A X:04 Y:17 P:nvUbdIzc $B4DD:69 8A ADC #$8A A:1A X:04 Y:17 P:nvUbdIzc +8A $B4DF:85 44 STA $44 = #$A4 A:A4 X:04 Y:17 P:NvUbdIzc $B4E1:A9 00 LDA #$00 A:A4 X:04 Y:17 P:NvUbdIzc $B4E3:69 BE ADC #$BE A:00 X:04 Y:17 P:nvUbdIZc +BE ;  $BE8A ; ROM $33E8A 魔法プログラムヘッダ $B4E5:85 45 STA $45 = #$86 A:BE X:04 Y:17 P:NvUbdIzc $B4E7:A0 00 LDY #$00 A:BE X:04 Y:17 P:NvUbdIzc $B4E9:B1 44 LDA ($44),Y @ $BEA4 = #$01 A:BE X:04 Y:00 P:nvUbdIZc 33EA5 01 ; $B4EB:85 46 STA $46 = #$28 A:01 X:04 Y:00 P:nvUbdIzc $B4ED:C8 INY A:01 X:04 Y:00 P:nvUbdIzc $B4EE:B1 44 LDA ($44),Y @ $BEA5 = #$B8 A:01 X:04 Y:01 P:nvUbdIzc 33EA5 B8;デスペル ルーチンヘッダ取得 $B4F0:85 47 STA $47 = #$00 A:B8 X:04 Y:01 P:NvUbdIzc $B4F2:20 87 BE JSR $BE87 A:B8 X:04 Y:01 P:NvUbdIzc $BE87:6C 46 00 JMP ($0046) = $B801 A:B8 X:04 Y:01 P:NvUbdIzc ;デスペル ルーチンにジャンプ =========================================================================================================================== $B801:20 23 BE JSR $BE23 A:B8 X:00 Y:01 P:NvUbdIzc----------------------- デスペル ルーチン ------------------------- $B804:A6 52 LDX $52 = #$06 A:00 X:21 Y:16 P:nvUbdIZC 0052 06;X=06 ;デスペル 成功カウンタ $B806:CA DEX A:00 X:06 Y:16 P:nvUbdIzC $B807:10 02 BPL $B80B A:00 X:05 Y:16 P:nvUbdIzC $B809:30 30 BMI $B83B $B80B:E0 08 CPX #$08 A:00 X:05 Y:16 P:nvUbdIzC ;E0 09 に修正する $B80D:90 02 BCC $B811 A:00 X:05 Y:16 P:NvUbdIzc $B80F:A2 07 LDX #$07 ;A2 08 に修正する $B811:86 52 STX $52 = #$06 A:00 X:05 Y:16 P:NvUbdIzc $B813:A0 05 LDY #$05 A:00 X:05 Y:16 P:NvUbdIzc $B815:B1 A1 LDA ($A1),Y @ $7D7F = #$01 A:00 X:05 Y:05 P:nvUbdIzc 7D7F 01;フリオ 耐性 $B817:20 0E 90 JSR $900E A:01 X:05 Y:05 P:nvUbdIzc ------------------------------------------------------------------------------------ *************ここが新ルーチン*****************: 85 4A STA $4A ; デスペルで解除した耐性値を$004Aにストア 8A TXA ; Xレジスタのデスペル成功カウンタの値をAに移す 48 PHA ; デスペル成功カウンタの値ををプッシュ A5 4A LDA $4A ; デスペルで解除した耐性値を$004AからAにロード 91 A1 STA,Y @($A1),Y @ $7D7F = #$01 ; デスペルで解除した耐性値を対象者の戦闘時耐性アドレスにストア (この例ではフリオの耐性) 68 PLA ; デスペル成功カウンタの値をAにプル 8A TAX ; デスペル成功カウンタの値をAからXレジスタに移す -------------------------------------------------------------------------------------------- $B81A:CA DEX A:00 X:00 Y:05 P:nvUbdIZc $B81B:10 FA BPL $B817 A:00 X:FF Y:05 P:NvUbdIzc ;00以上なら $B817に戻る $B81D:A2 00 LDX #$00 A:00 X:FF Y:05 P:NvUbdIzc X=00 $B81F:86 5F STX $5F = #$00 A:00 X:00 Y:05 P:nvUbdIZc 005F 00;メッセージIDカウンタ $B821:A9 52 LDA #$52 A:00 X:00 Y:05 P:nvUbdIZc 52;MES ID "れいき" $B823:85 5C STA $5C = #$48 A:52 X:00 Y:05 P:nvUbdIzc 005C 52 ;メッセージ ID $B825:A5 5C LDA $5C = #$52 A:52 X:00 Y:05 P:nvUbdIzc 005C 52;MES ID---------------- $B825 ---------------- $B827:20 92 BF JSR $BF92 A:52 X:00 Y:05 P:nvUbdIzc $B82A:A9 DA LDA #$DA A:52 X:00 Y:05 P:nvUbdIzc DA; MES ID &$80 "バリア がきえた!!" $B82C:20 92 BF JSR $BF92 A:DA X:00 Y:05 P:NvUbdIzc $B82F:A5 52 LDA $52 = #$05 A:DA X:09 Y:05 P:nvUbdIzC 0052 05;デスペル 成功回数カウンタ $B831:C5 5F CMP $5F = #$04 A:05 X:09 Y:05 P:nvUbdIzC ;メッセージ ID カウンタ $B833:F0 09 BEQ $B83E A:05 X:09 Y:05 P:nvUbdIzC ;デスペル成功回数カウンタとメッセージIDカウンタが同じになればジャンプ $B835:E6 5F INC $5F = #$04 A:05 X:09 Y:05 P:nvUbdIzC 005F ++ $B837:E6 5C INC $5C = #$56 A:05 X:09 Y:05 P:nvUbdIzC 005C ++ ; メッセージIDの値を ++ $B839:D0 EA BNE $B825 A:05 X:09 Y:05 P:nvUbdIzC $B83B:20 73 BE JSR $BE73 $B83E:4C 7E BE JMP $BE7E A:05 X:0B Y:05 P:nvUbdIZC