From 13cfac1859da337d5bc8f73c812c8b3e385b7dec Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 20 Jul 2019 00:36:05 -0400 Subject: [PATCH] ootw: c2: cage end sequence mostly done --- ootw/TODO | 4 + ootw/ootw_c2_cage.s | 144 +++++++++++++++--- ootw/ootw_c2_jail.s | 8 +- ootw/ootw_graphics/sprites/sprites_friend.inc | 52 +++---- 4 files changed, 160 insertions(+), 48 deletions(-) diff --git a/ootw/TODO b/ootw/TODO index bf792894..bcd5866f 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -57,6 +57,10 @@ General: Level/Checkpoint #2: +* general + + If aliens catch you, they punch you + + Shields disappear if you leave the room + * cage room: + Swing in the cage (take into account keyboard input) + Ability to pick up gun, with all that entails diff --git a/ootw/ootw_c2_cage.s b/ootw/ootw_c2_cage.s index 47311a01..09d855d4 100644 --- a/ootw/ootw_c2_cage.s +++ b/ootw/ootw_c2_cage.s @@ -776,9 +776,8 @@ done_debris: ; frame 40 getting up one step? ; frame 60 all stood up ; frame 70 jump -- 90 - ; frame 90 standing left (taps) - ; frame 100 turn right - ; frame 120 turn left + ; frame 90 standing right (taps) + ; frame 100 turn left lda #20 sta XPOS @@ -789,14 +788,11 @@ done_debris: cmp #18 bcc ce_done_physicist ; blt - cmp #120 - bcs ce_stand_left ; bge - cmp #100 - bcs ce_stand_right ; bge + bcs ce_stand_left ; bge cmp #90 - bcs ce_stand_left ; bge + bcs ce_stand_right ; bge cmp #70 bcs ce_jump ; bge @@ -904,7 +900,21 @@ ce_done_physicist: lda FRAMEL cmp #18 - bcc ce_done_friend ; blt + bcs ce_friend_keep ; bge + + jmp ce_done_friend ; too far to branch +ce_friend_keep: + cmp #120 + bcs ce_friend_stand_right ; bge + + cmp #110 + bcs ce_friend_point ; bge + + cmp #100 + bcs ce_friend_stand_right ; bge + + cmp #90 + bcs ce_friend_tap ; bge cmp #76 bcs ce_friend_stand_right ; bge @@ -940,16 +950,55 @@ ce_friend_half_stand_cage: ldy #>friend_crouch1 jmp ce_draw_friend_right +ce_friend_tap: + + sec + sbc #90 + and #$fe + tay + + + lda tap_sequence,Y + tax + lda tap_sequence+1,Y + tay + + lda #25 ; one off + sta XPOS + + + jmp ce_draw_friend_right + +ce_friend_point: + + sec + sbc #110 + and #$fe + tay + + + lda point_sequence,Y + tax + lda point_sequence+1,Y + tay + + lda #25 ; one off + sta XPOS + + + jmp ce_draw_friend_right + + ce_friend_stand_cage: - ldx #friend_turning_sprite + ldx #friend_stand jmp ce_draw_friend_right ce_friend_turn: - ldx #friend_stand + ldx #friend_turning_sprite jmp ce_draw_friend_right ce_friend_stand_right: @@ -1198,13 +1247,13 @@ ce_done_gun: ;================ ; delay -; lda #150 -; jsr WAIT + lda #150 + jsr WAIT wuk: - lda KEYPRESS - bpl wuk - bit KEYRESET +; lda KEYPRESS +; bpl wuk +; bit KEYRESET @@ -1339,4 +1388,63 @@ ce_phys_jump: .byte 29,30 ; 88 .word crouch1 +tap_sequence: +.word friend_tap1 ; 90 +.word friend_tap2 ; 92 +.word friend_tap3 ; 94 +.word friend_tap2 ; 96 +.word friend_tap3 ; 98 + +point_sequence: +.word friend_tap1 ; 110 +.word friend_mouth ; 112 +.word friend_tap3 ; 114 +.word friend_tap2 ; 116 +.word friend_tap3 ; 118 + + +friend_tap1: + .byte 5,8 + .byte $AA,$AA,$fa,$ff,$f7 + .byte $AA,$AA,$ff,$0f,$0f + .byte $AA,$fA,$fA,$f0,$0f + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$ff,$77 + .byte $AA,$AA,$AA,$0f,$07 + .byte $AA,$AA,$0A,$00,$00 + +friend_tap2: + .byte 5,8 + .byte $AA,$AA,$fa,$ff,$f7 + .byte $AA,$AA,$ff,$0f,$0f + .byte $Af,$Af,$Af,$0f,$0f + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$ff,$77 + .byte $AA,$AA,$AA,$0f,$07 + .byte $AA,$AA,$0A,$00,$00 + +friend_tap3: + .byte 5,8 + .byte $AA,$AA,$fa,$ff,$f7 + .byte $AA,$AA,$ff,$0f,$0f + .byte $AA,$fA,$fA,$0f,$0f + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$ff,$77 + .byte $AA,$AA,$AA,$0f,$07 + .byte $AA,$AA,$0A,$00,$00 + +friend_mouth: + .byte 5,8 + .byte $AA,$AA,$fa,$ff,$f7 + .byte $AA,$AA,$ff,$0f,$0f + .byte $AA,$AA,$Af,$ff,$ff + .byte $AA,$AA,$AA,$00,$0f + .byte $AA,$AA,$AA,$00,$00 + .byte $AA,$AA,$AA,$ff,$77 + .byte $AA,$AA,$AA,$0f,$07 + .byte $AA,$AA,$0A,$00,$00 + diff --git a/ootw/ootw_c2_jail.s b/ootw/ootw_c2_jail.s index 026ce7fd..fd024ddc 100644 --- a/ootw/ootw_c2_jail.s +++ b/ootw/ootw_c2_jail.s @@ -9,6 +9,7 @@ ootw_jail_init: sta DUDE_OUT sta PHYSICIST_STATE sta WHICH_JAIL + sta DIRECTION ; left lda #1 sta JAIL_POWER_ON @@ -30,13 +31,12 @@ ootw_jail_init: sta friend_y - lda #29 + lda #28 sta PHYSICIST_X lda #30 sta PHYSICIST_Y - lda #1 - sta DIRECTION + rts @@ -342,7 +342,7 @@ bg_jail0: lda GUN_OUT beq c2_no_bg_action - lda #34 + lda #35 sta XPOS lda #44 sta YPOS diff --git a/ootw/ootw_graphics/sprites/sprites_friend.inc b/ootw/ootw_graphics/sprites/sprites_friend.inc index 1d941653..d77426f1 100644 --- a/ootw/ootw_graphics/sprites/sprites_friend.inc +++ b/ootw/ootw_graphics/sprites/sprites_friend.inc @@ -11,7 +11,7 @@ friend_stand: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$00,$ff,$aa @@ -41,7 +41,7 @@ friend_walk_progression: friend_walk_left1: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$7a,$00,$ff,$aa .byte $aa,$77,$00,$ff,$aa @@ -52,7 +52,7 @@ friend_walk_left1: friend_walk_left2: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$7a,$ff,$0f,$aa @@ -63,7 +63,7 @@ friend_walk_left2: friend_walk_left3: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$00,$aa @@ -74,7 +74,7 @@ friend_walk_left3: friend_walk_left4: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$00,$aa @@ -85,7 +85,7 @@ friend_walk_left4: friend_walk_left5: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$00,$aa @@ -96,7 +96,7 @@ friend_walk_left5: friend_walk_left6: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$0f,$7a @@ -107,7 +107,7 @@ friend_walk_left6: friend_walk_left7: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$00,$ff,$aa @@ -118,7 +118,7 @@ friend_walk_left7: friend_walk_left8: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$7a,$00,$ff,$fa @@ -147,7 +147,7 @@ friend_run_progression: friend_run_left1: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$7a,$00,$ff,$aa .byte $aa,$77,$00,$ff,$aa @@ -158,7 +158,7 @@ friend_run_left1: friend_run_left2: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$7a,$ff,$0f,$aa @@ -169,7 +169,7 @@ friend_run_left2: friend_run_left3: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$00,$aa @@ -180,7 +180,7 @@ friend_run_left3: friend_run_left4: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$00,$aa @@ -191,7 +191,7 @@ friend_run_left4: friend_run_left5: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$00,$aa @@ -202,7 +202,7 @@ friend_run_left5: friend_run_left6: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$ff,$0f,$7a @@ -213,7 +213,7 @@ friend_run_left6: friend_run_left7: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$aa,$00,$ff,$aa @@ -224,7 +224,7 @@ friend_run_left7: friend_run_left8: .byte $5,$8 - .byte $aa,$fa,$7f,$f7,$aa + .byte $aa,$fa,$ff,$f7,$aa .byte $aa,$ff,$0f,$0f,$aa .byte $aa,$aa,$00,$ff,$aa .byte $aa,$7a,$00,$ff,$fa @@ -253,7 +253,7 @@ friend_crouch_progression: friend_crouch1: .byte 5,8 .byte $AA,$AA,$AA,$AA,$AA - .byte $AA,$fA,$7f,$f7,$aa + .byte $AA,$fA,$ff,$f7,$aa .byte $AA,$ff,$0f,$0f,$aa .byte $AA,$AA,$00,$ff,$aa .byte $AA,$Af,$0f,$0f,$aa @@ -265,7 +265,7 @@ friend_crouch2: .byte 5,8 .byte $AA,$AA,$AA,$AA,$AA .byte $AA,$AA,$fA,$7A,$aa - .byte $AA,$ff,$f7,$0f,$aa + .byte $AA,$ff,$ff,$0f,$aa .byte $AA,$Af,$00,$ff,$aa .byte $AA,$fA,$f0,$0f,$aa .byte $AA,$AA,$f0,$f0,$aa @@ -280,13 +280,13 @@ friend_crouch2: ;===================== friend_turning_sprite: .byte $5,$8 - .byte $aa,$57,$77,$aa,$aa - .byte $0a,$05,$00,$0a,$aa - .byte $77,$00,$00,$55,$aa - .byte $77,$00,$00,$55,$aa - .byte $aa,$00,$00,$a5,$aa - .byte $aa,$77,$55,$aa,$aa - .byte $07,$aa,$05,$aa,$aa + .byte $aa,$7f,$ff,$aa,$aa + .byte $0a,$07,$0f,$0a,$aa + .byte $ff,$00,$00,$77,$aa + .byte $ff,$00,$00,$77,$aa + .byte $af,$00,$00,$a7,$aa + .byte $aa,$ff,$77,$aa,$aa + .byte $0f,$aa,$07,$aa,$aa .byte $00,$aa,$00,$aa,$aa