自分のスピードが相手のスピードを上回っているときか同値のとき $24 = 自分のスピード - (自分のHP / #$53(83)) もし負になった場合は $24 = 256 - $24 自分のスピードが相手のスピードを下回っているとき $24 = 0 Aが決定される。 自分の特殊能力38(自分の命中率アップ) #$E6(230) 自分の特殊能力40(自分の命中率ダウン) #$80(50) 相手の特殊能力39(相手の命中率アップ) #$E6(230) 相手の特殊能力41(相手の命中率ダウン) #$80(50) 特殊能力なしのとき#$CC(204) 自分が命中率の特殊能力を持っていなかった場合のみ相手の命中率系の特殊能力が有効となる。 つまり相手が命中率ダウンを持っていても、自分が命中率アップを持っていた場合は、自分の命中率アップのみが有効となる。 まず、A+$24 > #$FF(255)なら命中    A+$24 > $30(乱数#$00(0)〜#$FF(255))なら命中    A+$24 < $30(乱数#$00(0)〜#$FF(255))ならMISS ファミコン版のバーコードワールドでは、 守護星の処理がないが、BBIIでは、 どこかに守護星の0.8〜1.2を掛けることになるはず。 (おそらく最初の$24算出の処理かと) 命中率処理 $9C5C:AD 4C 66 LDA $664C = #$01 A:F3 X:FF Y:00 $9C5F:85 19 STA $0019 = #$00 A:01 X:FF Y:00 $9C61:A9 53 LDA #$53 A:01 X:FF Y:00 $9C63:85 1C STA $001C = #$0B A:53 X:FF Y:00 $9C65:A9 00 LDA #$00 A:53 X:FF Y:00 $9C67:85 1D STA $001D = #$00 A:00 X:FF Y:00 $9C69:20 CD DB JSR $DBCD A:00 X:FF Y:00 $24 = HP($664C(1)$664B(F3))/#$53 = (HP99900〜0/#$53)なので0〜Cになるはず(HPが高いほど大きい値) 06:8253:20 01 85 JSR $8501 06:8256:20 FD 8D JSR $8DFD 命中率判定 06:8259:A5 24 LDA $0024 = #$01 $24が1なら命中。0ならMISS 06:825B:C9 01 CMP #$01 06:825D:F0 08 BEQ $8267 06:825F:A9 CC LDA #$CC 06:8261:8D 0A 65 STA $650A = #$00 06:8264:4C AF 82 JMP $82AF 06:8267:20 F2 89 JSR $89F2 06:826A:20 BF 84 JSR $84BF 06:8501:AD 39 65 LDA $6539 = #$00 06:8504:C9 07 CMP #$07 06:8506:D0 18 BNE $8520 06:8508:A9 00 LDA #$00 06:850A:8D 39 65 STA $6539 = #$00 06:850D:8D 91 65 STA $6591 = #$00 06:8510:AD 27 65 LDA $6527 = #$BA 06:8513:38 SEC 06:8514:ED 94 65 SBC $6594 = #$00 06:8517:8D 27 65 STA $6527 = #$BA 06:851A:AD 94 65 LDA $6594 = #$00 06:851D:8D 89 65 STA $6589 = #$00 06:8520:60 RTS 06:8DFD:AD 2B 65 LDA $652B = #$05 自分のスピード読み込み 06:8E00:CD 5C 65 CMP $655C = #$05 敵のスピード読み込み 06:8E03:B0 04 BCS $8E09 キャリーフラグがセットされている時(自分のスピード>=相手のスピード)にブランチ 06:8E05:A9 00 LDA #$00 (自分のスピードが相手のスピードを下回っているときは$0024=00) 06:8E07:F0 03 BEQ $8E0C ゼロフラグならジャンプ 06:8E09:38 SEC 06:8E0A:E5 24 SBC $0024 = #$04 A=A-$0024(自分のスピードが相手のスピードを上回っているとき$24=自分のスピード(9)-$0024(0〜C)) 06:8E0C:85 24 STA $0024 = #$04 $0024=A 06:8E0E:AD 2F 65 LDA $652F = #$2A 自分の特殊能力 06:8E11:C9 26 CMP #$26 特殊能力38(自分の命中率アップ) 06:8E13:D0 05 BNE $8E1A 06:8E15:A9 E6 LDA #$E6 38なら命中率をE6に? 06:8E17:4C 3A 8E JMP $8E3A 06:8E1A:C9 28 CMP #$28 特殊能力40(自分の命中率ダウン) 06:8E1C:D0 05 BNE $8E23 06:8E1E:A9 80 LDA #$80 40なら相手の命中率を80に? 06:8E20:4C 3A 8E JMP $8E3A 06:8E23:AD 60 65 LDA $6560 = #$2A 相手の特殊能力 06:8E26:C9 27 CMP #$27 特殊能力39(相手の命中率アップ) 06:8E28:D0 05 BNE $8E2F 06:8E2A:A9 E6 LDA #$E6 39なら命中率をE6に? 06:8E2C:4C 3A 8E JMP $8E3A 06:8E2F:C9 29 CMP #$29 特殊能力41(相手の命中率ダウン) 06:8E31:D0 05 BNE $8E38 06:8E33:A9 80 LDA #$80 39なら命中率を80に? 06:8E35:4C 3A 8E JMP $8E3A 06:8E38:A9 CC LDA #$CC A=CC 06:8E3A:18 CLC 06:8E3B:65 24 ADC $0024 = #$FF A=CC+$0024 06:8E3D:B0 04 BCS $8E43 キャリーフラグならブランチ(#$FF < #CC+$0024)(ヒットへジャンプ) 06:8E3F:C5 30 CMP $0030 = #$B1 06:8E41:90 06 BCC $8E49 A <= $0030(乱数)のときブランチ(MISSへジャンプ)  A > $0030(乱数)ならヒット処理へ 06:8E43:A9 01 LDA #$01 06:8E45:85 24 STA $0024 = #$FF 06:8E47:D0 04 BNE $8E4D ゼロフラグがクリアされているときブランチ 06:8E49:A9 00 LDA #$00 06:8E4B:85 24 STA $0024 = #$FF 06:8E4D:60 RTS