From eb8544113c5e3a77c79547de08aa279ef82649ca Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 10 Mar 2019 01:21:35 -0500 Subject: [PATCH] ootw: mess around with walking --- ootw/TODO | 9 +- ootw/keyboard.s | 23 ++++- .../ootw_walking-20190310-011534.piskel | 1 + .../sprites/sprites_physicist.inc | 97 +++++++++++++------ ootw/physicist.s | 10 +- 5 files changed, 101 insertions(+), 39 deletions(-) create mode 100644 ootw/ootw_graphics/sprites/ootw_walking-20190310-011534.piskel diff --git a/ootw/TODO b/ootw/TODO index c0bad601..55308699 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -1,27 +1,28 @@ TODO: +BUGS: ++ beast grab you a edge of pool (glitch) + intro: + there's still a bit of a pause when the elevator door finishes opening movement -- note these are hard due to limitations of the Apple II keyboard + ability to run + Missing one running frame + ability to jump + ability to kick while crouching + ability to shoot sprites_to_draw: + physicist jumping -+ physicist hanging on rope + physicist swimming + physicist getting out of pool + beast tripping -+ physicist putting hand up -+ physicist shot backwards + physicist holding gun + physicist shot pool: -+ bacground of beast moving off ++ background of beast moving off cavern: + slugs on ceiling drop diff --git a/ootw/keyboard.s b/ootw/keyboard.s index 52f8d8c8..1d02d1da 100644 --- a/ootw/keyboard.s +++ b/ootw/keyboard.s @@ -39,8 +39,16 @@ left: lda DIRECTION ; if facing right, turn to face left bne face_left + inc GAIT ; cycle through animation + + lda GAIT + and #$7 + cmp #$4 + bne no_move_left + dec PHYSICIST_X ; walk left +no_move_left: lda PHYSICIST_X cmp LEFT_LIMIT bpl just_fine_left @@ -51,8 +59,7 @@ too_far_left: just_fine_left: - inc GAIT ; cycle through animation - inc GAIT + jmp done_keypress ; done @@ -74,7 +81,16 @@ right: lda DIRECTION beq face_right + inc GAIT + + lda GAIT + and #$7 + cmp #$4 + bne no_move_right + inc PHYSICIST_X +no_move_right: + lda PHYSICIST_X cmp RIGHT_LIMIT bne just_fine_right @@ -87,8 +103,7 @@ too_far_right: just_fine_right: - inc GAIT - inc GAIT + jmp done_keypress face_right: diff --git a/ootw/ootw_graphics/sprites/ootw_walking-20190310-011534.piskel b/ootw/ootw_graphics/sprites/ootw_walking-20190310-011534.piskel new file mode 100644 index 00000000..fc0deb07 --- /dev/null +++ b/ootw/ootw_graphics/sprites/ootw_walking-20190310-011534.piskel @@ -0,0 +1 @@ +{"modelVersion":2,"piskel":{"name":"ootw_walking","description":"","fps":4,"height":48,"width":80,"layers":["{\"name\":\"Layer 1\",\"opacity\":1,\"frameCount\":10,\"chunks\":[{\"layout\":[[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]],\"base64PNG\":\"data:image/png;base64,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\"}]}"],"hiddenFrames":[""]}} \ No newline at end of file diff --git a/ootw/ootw_graphics/sprites/sprites_physicist.inc b/ootw/ootw_graphics/sprites/sprites_physicist.inc index 5f056cd0..69f64870 100644 --- a/ootw/ootw_graphics/sprites/sprites_physicist.inc +++ b/ootw/ootw_graphics/sprites/sprites_physicist.inc @@ -28,7 +28,6 @@ phys_stand: ;===================== phys_walk_progression: - .word phys_stand .word phys_walk_left1 .word phys_walk_left2 .word phys_walk_left3 @@ -36,6 +35,9 @@ phys_walk_progression: .word phys_walk_left5 .word phys_walk_left6 .word phys_walk_left7 + .word phys_walk_left8 + .word phys_walk_left9 + .word phys_walk_left10 @@ -45,10 +47,10 @@ phys_walk_left1: .byte $aa,$bb,$99,$aa,$aa .byte $aa,$aa,$0b,$aa,$aa .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$ba,$0b,$aa,$aa + .byte $aa,$ab,$bb,$aa,$aa .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$cc,$44,$aa,$aa - .byte $aa,$fa,$f4,$a5,$aa + .byte $aa,$44,$a4,$cc,$aa + .byte $af,$af,$7a,$7c,$aa phys_walk_left2: .byte $5,$8 @@ -56,10 +58,10 @@ phys_walk_left2: .byte $aa,$bb,$99,$aa,$aa .byte $aa,$aa,$0b,$aa,$aa .byte $aa,$aa,$bb,$aa,$aa - .byte $ba,$ab,$00,$ba,$aa + .byte $aa,$ba,$bb,$aa,$aa .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$cc,$44,$4a,$aa - .byte $aa,$a5,$fc,$f4,$aa + .byte $aa,$44,$a4,$cc,$aa + .byte $af,$f4,$7a,$7c,$aa phys_walk_left3: .byte $5,$8 @@ -67,10 +69,10 @@ phys_walk_left3: .byte $aa,$bb,$99,$aa,$aa .byte $aa,$aa,$0b,$aa,$aa .byte $aa,$aa,$bb,$aa,$aa - .byte $ba,$ab,$00,$ba,$aa + .byte $aa,$ba,$0b,$aa,$aa .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$cc,$a4,$4a,$aa - .byte $5a,$5c,$fa,$f4,$aa + .byte $aa,$44,$a4,$cc,$aa + .byte $fa,$f4,$7a,$7c,$aa phys_walk_left4: .byte $5,$8 @@ -80,8 +82,8 @@ phys_walk_left4: .byte $aa,$aa,$bb,$aa,$aa .byte $aa,$ba,$0b,$aa,$aa .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$aa,$c4,$4a,$aa - .byte $aa,$5a,$5f,$af,$aa + .byte $aa,$44,$a4,$ca,$aa + .byte $fa,$f4,$aa,$7c,$a7 phys_walk_left5: .byte $5,$8 @@ -89,10 +91,10 @@ phys_walk_left5: .byte $aa,$bb,$99,$aa,$aa .byte $aa,$aa,$0b,$aa,$aa .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$44,$c4,$aa,$aa - .byte $af,$5f,$5c,$aa,$aa + .byte $aa,$bb,$00,$aa,$aa + .byte $7a,$aa,$44,$aa,$aa + .byte $aa,$cc,$44,$aa,$aa + .byte $aa,$f7,$f4,$aa,$aa phys_walk_left6: .byte $5,$8 @@ -100,10 +102,10 @@ phys_walk_left6: .byte $aa,$bb,$99,$aa,$aa .byte $aa,$aa,$0b,$aa,$aa .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$ba,$00,$bb,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$aa,$44,$aa,$aa - .byte $fa,$f4,$5c,$5c,$aa + .byte $aa,$ba,$0b,$aa,$aa + .byte $aa,$ca,$44,$aa,$aa + .byte $7a,$cc,$a4,$4a,$aa + .byte $aa,$a7,$fa,$f4,$aa phys_walk_left7: .byte $5,$8 @@ -111,10 +113,44 @@ phys_walk_left7: .byte $aa,$bb,$99,$aa,$aa .byte $aa,$aa,$0b,$aa,$aa .byte $aa,$aa,$bb,$aa,$aa - .byte $aa,$aa,$0b,$ba,$aa + .byte $aa,$aa,$0b,$aa,$aa + .byte $aa,$ca,$44,$aa,$aa + .byte $aa,$cc,$a4,$4a,$aa + .byte $a7,$7c,$fa,$f4,$aa + +phys_walk_left8: + .byte $5,$8 + .byte $aa,$9a,$9a,$aa,$aa + .byte $aa,$bb,$99,$aa,$aa + .byte $aa,$aa,$0b,$aa,$aa + .byte $aa,$aa,$bb,$aa,$aa + .byte $aa,$ba,$0b,$aa,$aa + .byte $aa,$ca,$44,$aa,$aa + .byte $aa,$cc,$a4,$44,$aa + .byte $7a,$7c,$aa,$fa,$af + +phys_walk_left9: + .byte $5,$8 + .byte $aa,$9a,$9a,$aa,$aa + .byte $aa,$bb,$99,$aa,$aa + .byte $aa,$aa,$0b,$aa,$aa + .byte $aa,$aa,$bb,$aa,$aa + .byte $aa,$aa,$bb,$aa,$aa + .byte $aa,$aa,$44,$aa,$aa + .byte $aa,$aa,$c4,$a4,$fa + .byte $aa,$7a,$7c,$af,$aa + +phys_walk_left10: + .byte $5,$8 + .byte $aa,$9a,$9a,$aa,$aa + .byte $aa,$bb,$99,$aa,$aa + .byte $aa,$aa,$0b,$aa,$aa + .byte $aa,$aa,$bb,$aa,$aa + .byte $aa,$ba,$bb,$aa,$aa .byte $aa,$aa,$44,$aa,$aa .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$fa,$f4,$5c,$aa + .byte $aa,$fa,$7f,$7c,$aa + ;===================== ;===================== @@ -132,6 +168,7 @@ phys_run_progression: .word phys_run_left7 .word phys_run_left8 .word phys_run_left9 + .word phys_run_left9 phys_run_left1: .byte $5,$8 @@ -141,7 +178,7 @@ phys_run_left1: .byte $aa,$aa,$bb,$aa,$aa .byte $aa,$ba,$0b,$aa,$aa .byte $aa,$aa,$44,$aa,$aa - .byte $aa,$aa,$44,$ac,$55 + .byte $aa,$aa,$44,$ac,$77 .byte $aa,$fa,$f4,$aa,$aa phys_run_left2: @@ -164,7 +201,7 @@ phys_run_left3: .byte $ab,$ab,$00,$aa,$aa .byte $aa,$ca,$44,$aa,$aa .byte $aa,$cc,$a4,$4a,$aa - .byte $a5,$a5,$fa,$af,$aa + .byte $a7,$a7,$fa,$af,$aa phys_run_left4: .byte $5,$8 @@ -175,7 +212,7 @@ phys_run_left4: .byte $aa,$ab,$00,$aa,$aa .byte $aa,$ca,$44,$aa,$aa .byte $aa,$cc,$aa,$44,$aa - .byte $5a,$a5,$aa,$fa,$af + .byte $7a,$a7,$aa,$fa,$af phys_run_left5: .byte $5,$8 @@ -186,7 +223,7 @@ phys_run_left5: .byte $aa,$ab,$0b,$aa,$aa .byte $aa,$aa,$44,$4a,$fa .byte $aa,$cc,$aa,$aa,$af - .byte $5a,$5c,$aa,$aa,$aa + .byte $7a,$7c,$aa,$aa,$aa phys_run_left6: .byte $5,$8 @@ -197,7 +234,7 @@ phys_run_left6: .byte $aa,$ab,$00,$aa,$aa .byte $aa,$aa,$44,$4a,$fa .byte $aa,$aa,$cc,$aa,$af - .byte $aa,$5a,$5c,$aa,$aa + .byte $aa,$7a,$7c,$aa,$aa phys_run_left7: .byte $5,$8 @@ -208,7 +245,7 @@ phys_run_left7: .byte $aa,$ab,$0b,$aa,$aa .byte $aa,$4a,$44,$aa,$aa .byte $aa,$a4,$c4,$ff,$aa - .byte $aa,$5a,$5c,$aa,$aa + .byte $aa,$7a,$7c,$aa,$aa phys_run_left8: .byte $5,$8 @@ -219,7 +256,7 @@ phys_run_left8: .byte $aa,$aa,$0b,$ba,$aa .byte $aa,$4a,$44,$aa,$aa .byte $aa,$44,$ac,$ca,$aa - .byte $af,$af,$5a,$5c,$aa + .byte $af,$af,$7a,$7c,$aa phys_run_left9: .byte $5,$8 @@ -230,7 +267,7 @@ phys_run_left9: .byte $aa,$aa,$00,$bb,$aa .byte $aa,$aa,$44,$ca,$aa .byte $aa,$44,$aa,$cc,$aa - .byte $fa,$f4,$aa,$5a,$5c + .byte $fa,$f4,$aa,$7a,$7c ;===================== diff --git a/ootw/physicist.s b/ootw/physicist.s index d52b9747..0c93936f 100644 --- a/ootw/physicist.s +++ b/ootw/physicist.s @@ -39,8 +39,16 @@ crouching: walking: lda GAIT - and #$f + cmp #40 + bcc gait_fine ; blt + + lda #0 sta GAIT + +gait_fine: + lsr + and #$fe + tax lda phys_walk_progression,X