From 1f0da854458fcd737a9f850e7155850242502c59 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 4 Nov 2019 17:00:16 -0500 Subject: [PATCH] ds: further action with ship --- demosplash/TODO | 19 +- demosplash/graphics/starbase/ship.png | Bin 6513 -> 6182 bytes demosplash/graphics/starbase/starbase.inc | 53 +++-- demosplash/starbase_action.s | 259 +++++++++++----------- 4 files changed, 161 insertions(+), 170 deletions(-) diff --git a/demosplash/TODO b/demosplash/TODO index 433a5d56..572f1a75 100644 --- a/demosplash/TODO +++ b/demosplash/TODO @@ -12,32 +12,27 @@ PACKAGE: + Implement STARBASE: - + Fix sprites + Keyboard emulation + change colors of shield? laser? blast? - + room0 - - open with wall blasting open - - run down steps - - blast open door - - run through - + room1 - - columns - - run in + + room0 -- done + + + + room1 - run in - duck, start shield - blash shield, alien - run through doors - + room2 (planet) - - shoot another alien? + + room2 - shoot another alien? - foreground animation (robot?) + room3 (ship) - - blast control / free ship/ + - blast control / free ship/. Light toggles when blasted - run to ship - engines start - some sort of fade-to-white transition + or Star Wipe? ESCAPE: + Get working diff --git a/demosplash/graphics/starbase/ship.png b/demosplash/graphics/starbase/ship.png index 5b9af1ffe2706d516f4f399385271482863a33cd..569767ac229fac90dc708d54954036cbc406cfa9 100644 GIT binary patch delta 6063 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 delta 6382 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 + sta setup_door_table_loop_smc+2 + jsr setup_door_table + lda #(-4+128) sta LEFT_LIMIT lda #(39+128) @@ -162,7 +173,7 @@ room1: lda #0 sta cel_smc+1 - lda #8 + lda #30 sta ASTRONAUT_Y ; load background @@ -172,8 +183,8 @@ room1: jmp room_setup_done - ;=================== - ; causeway part 1 + ;===================== + ; room with big window room2: cmp #2 bne room3 @@ -191,7 +202,7 @@ room2: lda #1 sta cel_smc+1 - lda #18 + lda #30 sta ASTRONAUT_Y ; load background @@ -202,17 +213,19 @@ room2: jmp room_setup_done ;======================= - ; causeway part 2 / pit + ;room with ship room3: cmp #3 - bne room4 + bne room_setup_done - ; set falling floors - lda #48 - sta fall_down_destination_smc+1 + lda #1 + sta NUM_DOORS - lda #48 - sta fall_sideways_destination_smc+1 + lda #door_c4_r3 + sta setup_door_table_loop_smc+2 + jsr setup_door_table lda #(-4+128) sta LEFT_LIMIT @@ -227,75 +240,15 @@ room3: lda #2 sta cel_smc+1 - lda #18 + lda #30 sta ASTRONAUT_Y - ; load top high - lda #>(ship_rle) - sta GBASH - lda #<(ship_rle) - sta GBASL - lda #$10 ; load to page $1000 - jsr load_rle_gr - - ; load pit background even higher - lda #>(ship_rle) - sta GBASH - lda #<(ship_rle) - sta GBASL - lda #$BC ; load to page $BC00 - jsr load_rle_gr - ; load background lda #>(ship_rle) sta GBASH lda #<(ship_rle) - jmp room_setup_done - - ;====================== - ; down at the bottom -room4: - - ; set up doors - - lda #1 - sta NUM_DOORS - - lda #door_c4_r4 - sta setup_door_table_loop_smc+2 - jsr setup_door_table - - lda #(16+128) - sta LEFT_LIMIT - lda #(39+128) - sta RIGHT_LIMIT - - ; set right exit - lda #5 - sta cer_smc+1 - - lda ASTRONAUT_STATE - cmp #P_IMPALED - beq r4_impaled - cmp #P_FALLING_DOWN - beq r4_impaled - - lda #8 - sta ASTRONAUT_Y - - lda #P_CROUCHING - sta ASTRONAUT_STATE - -r4_impaled: - ; load background - lda #>(ship_rle) - sta GBASH - lda #<(ship_rle) - - jmp room_setup_done + ; fall through room_setup_done: @@ -346,13 +299,15 @@ starbase_loop: ;================================== lda WHICH_JAIL + beq bg_room0 + cmp #3 + beq bg_room3 + + bne c4_no_bg_action bg_room0: ; Room #0, draw pulsing recharger - cmp #0 - bne c4_no_bg_action - lda FRAMEL and #$c lsr @@ -377,7 +332,45 @@ bg_room0: lsr tay + jmp c4_no_bg_action +bg_room3: + ; Room #3, draw clamp if applicable + + lda c4_r3_door0_status ; door status + cmp #DOOR_STATUS_EXPLODED + beq bg3_blink + + ; draw clamp at 22,5 + + lda #22 + sta XPOS + lda #4 + sta YPOS + lda #clamp_sprite + sta INH + jsr put_sprite + + jmp c4_no_bg_action + +bg3_blink: + + lda FRAMEL + and #$08 + beq bg3_blink_off + + + ; 9x16 +bg3_blink_on: + lda #$56 + bne bg3_blink_done +bg3_blink_off: + lda #$52 +bg3_blink_done: + + sta $c28+9 c4_no_bg_action: @@ -483,8 +476,8 @@ no_draw_alien: lda WHICH_ROOM beq c4_room0_cover - cmp #4 - beq c4_room4_cover +; cmp #4 +; beq c4_room4_cover jmp c4_no_fg_cover @@ -502,21 +495,7 @@ c4_room0_cover: jsr put_sprite - - jmp c4_no_fg_cover -c4_room4_cover: - - lda #30 - sta XPOS - lda #8 - sta YPOS - - lda #pit_door_cover - sta INH - - jsr put_sprite +; jmp c4_no_fg_cover c4_no_fg_cover: @@ -704,31 +683,16 @@ causeway_door_cover: .byte $00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00 -; 30x8 -pit_door_cover: - .byte 8,8 - .byte $02,$22,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $20,$00,$00,$00,$00,$00,$00,$00 - .byte $22,$02,$00,$00,$00,$00,$00,$00 - .byte $22,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 +; 3x3 + +clamp_sprite: + .byte 3,3 + .byte $AA,$1A,$9A + .byte $00,$00,$00 + .byte $AA,$A9,$A1 - -;clear_c00: -; lda #$94 -; ldy #0 -;clear1: -; sta $c00,Y -; sta $d00,Y -; sta $e00,Y -; sta $f00,Y -; iny -; bne clear1 -; rts +; Room 0 doors door_c4_r0: .word door_c4_r0_status @@ -758,24 +722,59 @@ door_c4_r0_xmax: c4_r0_door0_xmax: .byte 4 ; ?? c4_r0_door1_xmax: .byte 39 ; ?? +; Room 1 doors + +door_c4_r1: + .word door_c4_r1_status + .word door_c4_r1_x + .word door_c4_r1_y + .word door_c4_r1_xmin + .word door_c4_r1_xmax + +door_c4_r1_status: + c4_r1_door0_status: .byte DOOR_STATUS_CLOSED + c4_r1_door1_status: .byte DOOR_STATUS_CLOSED + c4_r1_door2_status: .byte DOOR_STATUS_CLOSED + +door_c4_r1_x: + c4_r1_door0_x: .byte 31 + c4_r1_door1_x: .byte 34 + c4_r1_door2_x: .byte 37 + +door_c4_r1_y: + c4_r1_door0_y: .byte 26 + c4_r1_door1_y: .byte 26 + c4_r1_door2_y: .byte 26 + +door_c4_r1_xmin: + c4_r1_door0_xmin: .byte 22 ; 31-4-5 + c4_r1_door1_xmin: .byte 25 ; 34-4-5 + c4_r1_door2_xmin: .byte 28 ; 37-4-5 + +door_c4_r1_xmax: + c4_r1_door0_xmax: .byte 39 ; ?? + c4_r1_door1_xmax: .byte 39 ; ?? + c4_r1_door2_xmax: .byte 39 ; ?? -door_c4_r4: - .word door_c4_r4_status - .word door_c4_r4_x - .word door_c4_r4_y - .word door_c4_r4_xmin - .word door_c4_r4_xmax -door_c4_r4_status: - c4_r4_door0_status: .byte DOOR_STATUS_LOCKED -door_c4_r4_x: - c4_r4_door0_x: .byte 27 +door_c4_r3: + .word door_c4_r3_status + .word door_c4_r3_x + .word door_c4_r3_y + .word door_c4_r3_xmin + .word door_c4_r3_xmax -door_c4_r4_xmin: ; don't care (door does not open) -door_c4_r4_xmax: ; don't care (door does not open) -door_c4_r4_y: - c4_r4_door0_y: .byte 4 +door_c4_r3_status: + c4_r3_door0_status: .byte DOOR_STATUS_CLOSED + +door_c4_r3_x: + c4_r3_door0_x: .byte 12 + +door_c4_r3_xmin: .byte 39 +door_c4_r3_xmax: .byte 39 +door_c4_r3_y: + c4_r3_door0_y: .byte 26