diff --git a/ootw/TODO b/ootw/TODO index bc62b006..73055841 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -131,6 +131,12 @@ BEHAVIOR DIFFERENCES: + Level/Checkpoint #5 * Allow falling into first pit ++ Level/Checkpoint #15 + * Bath: shooting guard isn't quite so regular, every other shot is + a double one? + * Bath: one guard repeatedly re-arrives but that seems to be a bug + in the original + * Bath: guards shooting eventually wear away the column FUTURE WORK: ============ diff --git a/ootw/ootw_c15.s b/ootw/ootw_c15.s index 52cfaf64..246a57fa 100644 --- a/ootw/ootw_c15.s +++ b/ootw/ootw_c15.s @@ -393,12 +393,12 @@ room_loop: ;================================== ; draw background action - lda WHICH_CAVE +; lda WHICH_ROOM bg_room0: ; cmp #0 -; bne c4_no_bg_action +; bne c15_no_bg_action ; lda FRAMEL ; and #$c @@ -418,7 +418,7 @@ bg_room0: ; jsr put_sprite -c5_no_bg_action: +c15_no_bg_action: ;=============================== ; check keyboard @@ -439,38 +439,9 @@ c5_no_bg_action: jsr check_screen_limit ;=============================== - ; adjust floor + ; adjust floor if necessary ;=============================== - -; lda PHYSICIST_STATE -; cmp #P_FALLING_DOWN -; beq check_floor0_done - -; lda WHICH_CAVE -; cmp #0 -; bne check_floor1 - -; lda #14 -; sta PHYSICIST_Y - -; lda PHYSICIST_X -; cmp #19 -; bcc check_floor0_done - -; lda #12 -; sta PHYSICIST_Y - -; lda PHYSICIST_X -; cmp #28 -; bcc check_floor0_done - -; lda #10 -; sta PHYSICIST_Y - -check_floor0_done: - -check_floor1: - + ; no sloped floors in c15 ;===================================== ; draw physicist @@ -489,42 +460,66 @@ check_floor1: ; draw foreground action ;===================================== -; lda WHICH_CAVE -; cmp #0 -; bne c5_no_fg_action + lda WHICH_ROOM + cmp #0 + bne c15_no_fg_action -c5_draw_rocks: -; lda #1 -; sta XPOS -; lda #26 -; sta YPOS -; lda #small_rock -; sta INH -; jsr put_sprite + ; Room 0 draw guard +c15_draw_fg_guard: -; lda #10 -; sta XPOS -; lda #18 -; sta YPOS -; lda #medium_rock -; sta INH -; jsr put_sprite + ; real game it's not quite so regular, double shot eventually -; lda #31 -; sta XPOS -; lda #14 -; sta YPOS -; lda #large_rock -; sta INH -; jsr put_sprite + ; every so often, shoots + ; for frames 0 and 1 every 32 ($1F) -c5_no_fg_action: + lda FRAMEL + and #$1f + cmp #3 + bcs fg_guard_noshoot ; bgt + +fg_guard_shoot: + lda #$ff + bne fg_guard_draw + +fg_guard_noshoot: + lda #$00 + +fg_guard_draw: + sta XPOS + lda #22 + sta YPOS + lda #guard_sprite + sta INH + jsr put_sprite_crop + + + ; draw laser + + lda FRAMEL + and #$1f + cmp #3 + bcs fg_guard_no_laser ; bge + + lda #9 + sta XPOS + lda #20 + sta YPOS + lda #guard_laser + sta INH + jsr put_sprite + +fg_guard_no_laser: + + jmp c15_no_fg_action + + ; Room 5 friend slowly working to left +c15_draw_friend_cliff: + +c15_no_fg_action: ;==================== ; activate fg objects @@ -543,7 +538,7 @@ c5_no_fg_action: ;================ ; move fg objects ;================ -c4_move_fg_objects: +c15_move_fg_objects: ; lda CART_OUT ; cmp #1 @@ -777,3 +772,37 @@ bath_arrival_sequence: .byte 0 +;======================= +; guard sprite +guard_sprite: + .byte 10,13 + .byte $7A,$7A,$7A,$7A,$AA,$AA,$AA,$AA,$AA,$AA + .byte $77,$77,$77,$77,$77,$AA,$AA,$AA,$AA,$AA + .byte $77,$77,$77,$77,$77,$AA,$AA,$AA,$0A,$00 + .byte $00,$00,$00,$77,$A7,$AA,$AA,$7A,$70,$AA + .byte $00,$00,$00,$00,$AA,$7A,$77,$77,$77,$7A + .byte $00,$00,$00,$70,$77,$77,$77,$77,$77,$77 + .byte $00,$00,$70,$77,$77,$77,$77,$77,$AA,$AA + .byte $00,$00,$07,$77,$77,$77,$A7,$AA,$AA,$AA + .byte $00,$00,$00,$07,$A7,$A7,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + .byte $00,$00,$00,$00,$AA,$AA,$AA,$AA,$AA,$AA + +;======================= +; guard laser +guard_laser: +; .byte 15,4 +; .byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$A1 +; .byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$A1,$A1,$AA,$AA,$AA +; .byte $AA,$AA,$AA,$AA,$1A,$1A,$11,$A1,$A1,$AA,$AA,$AA,$AA,$AA,$AA +; .byte $1A,$1A,$11,$A1,$A1,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA + + .byte 15,3 + .byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$1A + .byte $AA,$AA,$AA,$AA,$AA,$AA,$1A,$1A,$1A,$11,$A1,$A1,$A1,$AA,$AA + .byte $1A,$1A,$1A,$11,$A1,$A1,$A1,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA + + + diff --git a/ootw/ootw_graphics/l15final/bath_33.png b/ootw/ootw_graphics/l15final/bath_33.png index 433c1079..574acc94 100644 Binary files a/ootw/ootw_graphics/l15final/bath_33.png and b/ootw/ootw_graphics/l15final/bath_33.png differ diff --git a/ootw/ootw_graphics/l15final/ootw_c15_bath.inc b/ootw/ootw_graphics/l15final/ootw_c15_bath.inc index 5a350d45..17265c7a 100644 --- a/ootw/ootw_graphics/l15final/ootw_c15_bath.inc +++ b/ootw/ootw_graphics/l15final/ootw_c15_bath.inc @@ -598,30 +598,31 @@ bath_32_rle: .byte $28 ; ysize=48 ; cycles=1337 bath_33_rle: .byte $28 ; ysize=48 .byte $A0,$FF,$AA, $A0,$7E,$AA, $1A,$1A, $A0,$01,$A1, $A0,$21,$AA, $1A,$1A, $A0,$02,$A1 - .byte $A0,$01,$AA, $9A,$9A, $A0,$10,$AA, $A4,$7A, $A9,$AA, $1A,$1A, $11 - .byte $A0,$02,$A1, $A4,$AA, $99, $BB, $A0,$10,$AA, $A5,$77, $A5,$AA - .byte $1A, $11, $A0,$02,$A1, $A8,$AA, $0B, $A0,$11,$AA, $A5,$77 - .byte $A3,$AA, $0A, $00, $77, $A6,$AA, $0A, $6A - .byte $A3,$AA, $BB, $BA, $A6,$AA, $77,$77, $A8,$AA, $A3,$00 - .byte $77, $A0,$01,$A7, $A0,$02,$AA, $7A, $70, $15, $10 - .byte $7A, $A4,$AA, $00,$00, $66, $A3,$AA, $40, $A7,$AA - .byte $70, $00, $A8,$AA, $A4,$00, $A0,$01,$AA, $7A, $A3,$77 - .byte $70, $50, $A5,$AA, $00,$00, $06, $6A,$6A, $A0,$01,$AA - .byte $C4, $4A, $A6,$AA, $01,$01, $A0,$01,$A5, $A7,$AA, $A3,$00 - .byte $70, $A6,$77, $55, $A5,$AA, $A5,$00, $A0,$01,$AA, $CC - .byte $44, $A6,$AA, $77, $55, $A8,$AA, $00,$00, $70 - .byte $A5,$77, $A9,$AA, $A3,$00, $A0,$01,$A0, $A0,$01,$AA, $A0,$01,$AF, $F4 - .byte $FA, $A3,$AA, $8A,$8A, $87, $A0,$01,$A5, $A8,$AA, $00,$00 - .byte $07, $A3,$77, $27, $A0,$11,$AA, $00, $A0,$01,$AA, $00 - .byte $A0,$01,$AA, $00, $A5,$AA, $00,$00, $A4,$AA, $A3,$00, $07 - .byte $27,$27, $A0,$01,$A2, $A0,$11,$AA, $00, $0A, $00, $A0,$01,$AA - .byte $00, $0A,$0A, $A0,$02,$AA, $00,$00, $0A, $A4,$AA, $A4,$00 - .byte $22,$22, $A0,$12,$AA, $A3,$22, $A0,$01,$AA, $22,$22, $A0,$01,$A2, $A0,$02,$AA - .byte $22,$22, $A0,$01,$A2, $2A, $A3,$AA, $A4,$00, $22,$22, $A0,$12,$AA - .byte $A3,$22, $A0,$01,$AA, $A3,$22, $A0,$02,$AA, $A4,$22, $A3,$AA, $A4,$00 - .byte $22,$22, $A0,$11,$AA, $A4,$82, $A0,$01,$AA, $A3,$82, $A0,$01,$AA, $8A - .byte $A3,$82, $A0,$01,$A2, $A3,$AA, $A4,$00, $88,$88, $A0,$11,$AA, $A4,$A8 - .byte $A5,$AA, $A4,$A8, $A4,$AA + .byte $A0,$01,$AA, $9A,$9A, $A0,$10,$AA, $A3,$7A, $AA,$AA, $1A,$1A, $11 + .byte $A0,$02,$A1, $A4,$AA, $99, $BB, $A0,$10,$AA, $A4,$77, $A5,$AA + .byte $1A,$1A, $11, $A0,$02,$A1, $A8,$AA, $0B, $A0,$11,$AA, $A4,$77 + .byte $A3,$AA, $0A, $00, $77,$77, $A6,$AA, $0A, $6A + .byte $A3,$AA, $BB, $BA, $A6,$AA, $77,$77, $A8,$AA, $00,$00 + .byte $77, $A0,$01,$A7, $A0,$02,$AA, $7A, $70, $A0,$01,$AA, $15 + .byte $10, $7A, $A4,$AA, $00,$00, $66, $A3,$AA, $40 + .byte $A7,$AA, $70, $00, $A8,$AA, $A3,$00, $A0,$01,$AA, $7A + .byte $A3,$77, $A0,$01,$AA, $70, $50, $A5,$AA, $00,$00, $06 + .byte $6A,$6A, $A0,$01,$AA, $C4, $4A, $A6,$AA, $01,$01, $A0,$01,$A5 + .byte $A7,$AA, $00,$00, $70, $A5,$77, $A0,$01,$AA, $77, $55 + .byte $A5,$AA, $A5,$00, $A0,$01,$AA, $CC, $44, $A6,$AA, $77 + .byte $55, $A8,$AA, $00, $70, $A5,$77, $AA,$AA, $A3,$00 + .byte $A0,$01,$A0, $A0,$01,$AA, $A0,$01,$AF, $F4, $FA, $A3,$AA, $8A,$8A + .byte $87, $A0,$01,$A5, $A8,$AA, $00, $07, $A4,$77, $22 + .byte $A0,$11,$AA, $00, $A0,$01,$AA, $00, $A0,$01,$AA, $00, $A5,$AA + .byte $00,$00, $A4,$AA, $00,$00, $07, $27,$27, $22, $A0,$01,$A2 + .byte $A0,$11,$AA, $00, $0A, $00, $A0,$01,$AA, $00, $0A,$0A + .byte $A0,$02,$AA, $00,$00, $0A, $A4,$AA, $A3,$00, $A3,$22, $A0,$12,$AA + .byte $A3,$22, $A0,$01,$AA, $22,$22, $A0,$01,$A2, $A0,$02,$AA, $22,$22, $A0,$01,$A2 + .byte $2A, $A3,$AA, $A3,$00, $A3,$22, $A0,$12,$AA, $A3,$22, $A0,$01,$AA + .byte $A3,$22, $A0,$02,$AA, $A4,$22, $A3,$AA, $A3,$00, $A3,$22, $A0,$11,$AA + .byte $A4,$82, $A0,$01,$AA, $A3,$82, $A0,$01,$AA, $8A, $A3,$82, $A0,$01,$A2 + .byte $A3,$AA, $A3,$00, $A3,$88, $A0,$11,$AA, $A4,$A8, $A5,$AA, $A4,$A8 + .byte $A4,$AA .byte $A1 ; cycles=1337 bath_34_rle: .byte $28 ; ysize=48 diff --git a/ootw/ootw_graphics/l15final/ootw_c15_final.inc b/ootw/ootw_graphics/l15final/ootw_c15_final.inc index 2d264bd1..efd6d4e9 100644 --- a/ootw/ootw_graphics/l15final/ootw_c15_final.inc +++ b/ootw/ootw_graphics/l15final/ootw_c15_final.inc @@ -1,11 +1,11 @@ walkway1_rle: .byte $28 ; ysize=48 - .byte $22, $55, $05, $22, $55, $A8,$66, $A3,$22 - .byte $A0,$12,$66, $A3,$22, $A3,$66, $22, $55, $00, $02 - .byte $55, $22, $26, $A4,$66, $26, $A5,$22, $26 - .byte $A5,$66, $26, $22,$22, $26, $A5,$66, $26, $22 + .byte $22, $55, $05, $22, $55, $A8,$66, $A4,$22 + .byte $A0,$10,$66, $A4,$22, $A3,$66, $22, $55, $00, $02 + .byte $55, $22, $26, $A4,$66, $26, $A6,$22, $26 + .byte $A4,$66, $26, $22,$22, $26, $A4,$66, $26, $22,$22 .byte $02,$02, $22,$22, $26, $66, $22, $55, $00,$00 - .byte $55, $22,$22, $A4,$26, $22,$22, $02, $40,$40, $10 - .byte $22,$22, $A3,$26, $A6,$22, $A4,$26, $22, $10, $04,$04 + .byte $55, $22,$22, $A4,$26, $22,$22, $02, $40,$40, $12 + .byte $22,$22, $A3,$26, $A6,$22, $A3,$26, $22,$22, $10, $04,$04 .byte $10, $02, $22, $26, $22, $55, $00,$00 .byte $55, $A7,$22, $00, $01, $90, $00, $01 .byte $10, $AE,$22, $11, $00, $01, $00, $91 diff --git a/ootw/ootw_graphics/l15final/walkway1.png b/ootw/ootw_graphics/l15final/walkway1.png index 992290e4..35648aad 100644 Binary files a/ootw/ootw_graphics/l15final/walkway1.png and b/ootw/ootw_graphics/l15final/walkway1.png differ