Skip to content

Instantly share code, notes, and snippets.

@furai-no-ffff
Last active September 12, 2018 08:04
Show Gist options
  • Save furai-no-ffff/d6a6defd47228c3c8d8b to your computer and use it in GitHub Desktop.
Save furai-no-ffff/d6a6defd47228c3c8d8b to your computer and use it in GitHub Desktop.
ダメージ時特技
;; ダメージを受けたときの特技判定
;; $00:ダメージを受けるキャラ $01:ダメージを与えるキャラ
C2/2C1C: 08 php
C2/2C1D: E230 sep #$30 ;;
C2/2C1F: A600 ldx $00 ;; X = $00 (ダメージを受けるキャラ)
C2/2C21: E013 cpx #$13 ;;
C2/2C23: D01A bne $2C3F ;; X != 0x13 なら飛ぶ (ダメージを受けるキャラがシレン以外)
C2/2C25: AFBC877E lda $7E87BC ;; A = $87A9[0x13] (シレンの外見)
C2/2C29: C91D cmp #$1D ;;
C2/2C2B: D012 bne $2C3F ;; A != 0x1D なら飛ぶ (ぴーたんでない)
C2/2C2D: AF2C867E lda $7E862C ;; A = $8619[0x13] (シレンの変身したモンスターのレベル)
C2/2C31: C902 cmp #$02 ;;
C2/2C33: D00A bne $2C3F ;; A != 2 なら飛ぶ (Lvが2でない)
C2/2C35: A913 lda #$13 ;;
C2/2C37: 8500 sta $00 ;; $00 = 0x13 (シレン)
C2/2C39: 229043C2 jsr $C24390 ;; ワープ処理
C2/2C3D: 28 plp
C2/2C3E: 6B rtl
; ダメージを受けるキャラが逃げピータンに変身したシレンでない
C2/2C3F: BF81877E lda $7E8781,X ;;
C2/2C43: F055 beq $2C9A ;; $8781[X] == 0 なら終了 (封印フラグが0 = 封印されている)
C2/2C45: BFF1857E lda $7E85F1,X ;;
C2/2C49: F04F beq $2C9A ;; $85F1[X] == 0 なら終了 (現在HPが0)
C2/2C4B: BFA1857E lda $7E85A1,X ;; A = $85A1[X] (キャラコード)
C2/2C4F: C94C cmp #$4C ;;
C2/2C51: F004 beq $2C57 ;; A == 0x4C なら飛ぶ (つかみ取り店主)
C2/2C53: C94D cmp #$4D ;;
C2/2C55: D015 bne $2C6C ;; A != 0x4D なら飛ぶ (店主) (ダメージを受けるのが店主以外)
; 店主の特技
C2/2C57: A501 lda $01 ;; A = $01 (ダメージを与えるキャラ)
C2/2C59: C913 cmp #$13 ;;
C2/2C5B: D00C bne $2C69 ;; A != 0x13 なら飛ぶ (シレン以外が店主に攻撃)
C2/2C5D: A900 lda #$00 ;;
C2/2C5F: 9F35887E sta $7E8835,X ;; $8835[X] = 0 (NPCフラグ)
C2/2C63: 9F81877E sta $7E8781,X ;; $8781[X] = 0 (封印フラグ)
C2/2C67: 28 plp ;;
C2/2C68: 6B rtl
; シレン以外が店主に攻撃
C2/2C69: 4C9C2C jmp $2C9C ;; $C22C9Cへ飛ぶ
; ダメージを受けるのが店主以外
C2/2C6C: C90A cmp #$0A ;;
C2/2C6E: F004 beq $2C74 ;; A == 0xA なら飛ぶ (ぬすっトド)
C2/2C70: C909 cmp #$09 ;;
C2/2C72: D006 bne $2C7A ;; A != 0x9 なら飛ぶ (ミドロ)
; ぬすっトド・ミドロ系の特技
C2/2C74: 22F12CC2 jsr $C22CF1 ;; 分裂判定
C2/2C78: 28 plp ;;
C2/2C79: 6B rtl
; ダメージを受けるのがトド・ミドロ以外
C2/2C7A: C918 cmp #$18 ;;
C2/2C7C: D012 bne $2C90 ;; A != 0x18 なら飛ぶ (ぼうれい武者)
; ぼうれい武者の特技
C2/2C7E: 225FF6C3 jsr $C3F65F ;; $00 = 乱数
C2/2C82: A500 lda $00 ;; A = $00
C2/2C84: C920 cmp #$20 ;;
C2/2C86: B006 bcs $2C8E ;; A >= 0x20 なら終了 (ぼうれい武者はワープしない)
C2/2C88: 8600 stx $00 ;; $00 = X
C2/2C8A: 229043C2 jsr $C24390 ;; ランダムな位置にワープ
C2/2C8E: 28 plp ;;
C2/2C8F: 6B rtl
; ダメージを受けるのがぼうれい武者以外
C2/2C90: C919 cmp #$19 ;;
C2/2C92: D006 bne $2C9A ;; A != 0x19 なら終了 (マスターチキン)
; マスターチキン系の特技
C2/2C94: 229269C2 jsr $C26992 ;; レベルダウン判定
C2/2C98: 28 plp ;;
C2/2C99: 6B rtl
; 終了
C2/2C9A: 28 plp
C2/2C9B: 6B rtl
; シレン以外が店主に攻撃
C2/2C9C: E230 sep #$30 ;; 8bitモード
C2/2C9E: A900 lda #$00 ;;
C2/2CA0: 9F95877E sta $7E8795,X ;; $8795[X] = 0 (シレンに攻撃されたことがある)
C2/2CA4: BF81877E lda $7E8781,X ;;
C2/2CA8: 9FD1877E sta $7E87D1,X ;; $87D1[X] = $8781[X] (目的地のX座標 = 封印フラグ・店主の初期X)
C2/2CAC: BF71887E lda $7E8871,X ;;
C2/2CB0: 9FE5877E sta $7E87E5,X ;; $87E5[X] = $8871[X] (目的地のY座標 = イベントフラグ・店主の初期Y)
C2/2CB4: A401 ldy $01 ;; Y = $01 (ダメージを与えるキャラ)
C2/2CB6: DA phx ;;
C2/2CB7: 5A phy ;;
C2/2CB8: 22B377C2 jsr $C277B3 ;; 店主と$01との位置関係を取得
C2/2CBC: 7A ply ;;
C2/2CBD: FA plx ;;
C2/2CBE: A500 lda $00 ;; A = $00 (距離)
C2/2CC0: C901 cmp #$01 ;;
C2/2CC2: D00E bne $2CD2 ;; A != 1 なら終了 (隣接していない)
C2/2CC4: A501 lda $01 ;;
C2/2CC6: 9FDD857E sta $7E85DD,X ;; $85DD[X] = $01 (店主の方向 = 店主から見た$01の方向)
C2/2CCA: 8600 stx $00 ;; $00 = X
C2/2CCC: 8401 sty $01 ;; $01 = Y
C2/2CCE: 221514C2 jsr $C21415 ;; 店主が攻撃した敵に反撃しようとする
C2/2CD2: 28 plp
C2/2CD3: 6B rtl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment