another_mist: add in the button pressing part

This commit is contained in:
Vince Weaver 2020-06-20 23:04:30 -04:00
parent e2e30040df
commit 21e4326582
8 changed files with 336 additions and 3 deletions

View File

@ -87,6 +87,113 @@ repeat_ending:
lda #1
sta DISP_PAGE
;===========================
; display the title screen
;============================
;===========================
; escape from the monster
;============================
;===========================
; do the puzzle part
;============================
lda #>(generator_n_rle)
sta GBASH
lda #<(generator_n_rle)
sta GBASL
lda #$0c ; load image off-screen $c00
jsr load_rle_gr
lda #>(blank_rle)
sta GBASH
lda #<(blank_rle)
sta GBASL
lda #$10 ; load image off-screen $1000
jsr load_rle_gr
jsr gr_overlay
jsr page_flip
bit TEXTGR
jsr wait_until_keypressed
lda DRAW_PAGE
pha
lda #$8
sta DRAW_PAGE
jsr clear_bottom
pla
sta DRAW_PAGE
lda #>(approach07_rle)
sta GBASH
lda #<(approach07_rle)
sta GBASL
lda #$10 ; load image off-screen $1000
jsr load_rle_gr
jsr gr_overlay
jsr page_flip
jsr wait_until_keypressed
ldx #2
stx ELEVATOR_COUNT
button_loop:
lda #>(approach07_rle)
sta GBASH
lda #<(approach07_rle)
sta GBASL
lda #$10 ; load image off-screen $1000
jsr load_rle_gr
jsr gr_overlay
ldx ELEVATOR_COUNT
lda finger_x,X
sta XPOS
tay
lda #$d5
sta $cd0,Y
lda #34
sta YPOS
lda #<finger_sprite
sta INL
lda #>finger_sprite
sta INH
jsr put_sprite
jsr page_flip
ldx #18
jsr long_wait
jsr gr_overlay
jsr page_flip
jsr wait_until_keypressed
dec ELEVATOR_COUNT
bpl button_loop
bit FULLGR
;===========================
; do the shooting part
;============================
@ -882,6 +989,14 @@ long_wait:
.include "sprites/physicist.inc"
.include "sprites/alien.inc"
finger_sprite:
.byte 3,3
.byte $bA,$AA,$AA
.byte $bb,$AA,$AA
.byte $bb,$bA,$bA
finger_x:
.byte 29,33,31
; backgrounds

View File

@ -7,11 +7,11 @@ ootw_cave_init:
sta WHICH_CAVE
sta BLASTED_WALL
; yes you fall in facing left for some reason
sta DIRECTION ; left
sta NUM_DOORS
lda #1
sta HAVE_GUN
sta DIRECTION ; right
lda #0
sta PHYSICIST_X

View File

@ -17,7 +17,8 @@ ootw_c16_end.inc: $(PNG2RLE) \
flying11.png \
the_end01.png the_end02.png the_end03.png the_end04.png the_end05.png \
the_end06.png the_end07.png the_end08.png the_end09.png the_end10.png \
east_top_w.png
east_top_w.png temple_center_w.png temple_center_ex.png \
generator_n.png approach07.png blank.png
$(PNG2RLE) asm wing_bg.png wing_bg_rle > ootw_c16_end.inc
$(PNG2RLE) asm left_unfurl1.png left_unfurl1_rle >> ootw_c16_end.inc
$(PNG2RLE) asm left_unfurl2.png left_unfurl2_rle >> ootw_c16_end.inc
@ -46,7 +47,11 @@ ootw_c16_end.inc: $(PNG2RLE) \
$(PNG2RLE) asm the_end09.png the_end09_rle >> ootw_c16_end.inc
$(PNG2RLE) asm the_end10.png the_end10_rle >> ootw_c16_end.inc
$(PNG2RLE) asm east_top_w.png east_top_w_rle >> ootw_c16_end.inc
$(PNG2RLE) asm temple_center_w.png temple_center_w_rle >> ootw_c16_end.inc
$(PNG2RLE) asm temple_center_ex.png temple_center_ex_rle >> ootw_c16_end.inc
$(PNG2RLE) asm generator_n.png generator_n_rle >> ootw_c16_end.inc
$(PNG2RLE) asm approach07.png approach07_rle >> ootw_c16_end.inc
$(PNG2RLE) asm blank.png blank_rle >> ootw_c16_end.inc
#####

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -717,3 +717,214 @@ east_top_w_rle: .byte $28 ; ysize=48
.byte $AE,$DD, $99, $AF,$EE
.byte $A1
; cycles=1789
temple_center_w_rle: .byte $28 ; ysize=48
.byte $08, $80,$80, $A9,$00, $A5,$80, $DD, $80, $DD,$DD
.byte $80, $DD, $A5,$80, $08, $A6,$88, $08,$08, $A3,$80
.byte $A3,$00, $A3,$08, $AB,$00, $A6,$0D, $A5,$00, $80, $88,$88
.byte $08,$08, $80,$80, $08,$08, $A6,$00, $0F,$0F, $A6,$00, $A0,$11,$08
.byte $00, $80,$80, $08,$08, $00,$00, $0F,$0F, $A3,$00, $A4,$80
.byte $A6,$00, $90,$90, $98, $AD,$08, $98,$98, $90, $A8,$00
.byte $A3,$80, $A3,$00, $A3,$08, $80, $A4,$00, $88,$88, $A6,$00
.byte $0F,$0F, $A6,$00, $88,$88, $A5,$00, $80, $08,$08, $A3,$00
.byte $88, $A3,$80, $A3,$00, $A3,$88, $00, $99, $88
.byte $00,$00, $A3,$80, $A5,$08, $A3,$80, $00, $99, $88
.byte $00, $80, $88,$88, $08, $A3,$00, $A3,$80, $A5,$88
.byte $80, $00,$00, $88,$88, $00, $99, $88, $00
.byte $88,$88, $08, $A6,$00, $08, $88,$88, $00, $99
.byte $88, $00, $88,$88, $00,$00, $80, $A7,$88, $D8,$D8
.byte $A3,$88, $00,$00, $88, $00, $99, $88, $00
.byte $88, $08, $00,$00, $80, $A3,$88, $80, $00,$00
.byte $88, $00, $99, $88, $00, $88, $A3,$00
.byte $88,$88, $A3,$D8, $88, $58,$58, $59,$59, $58, $88,$88
.byte $80, $00, $88, $00, $99, $88, $00
.byte $88, $00,$00, $A7,$88, $00, $88, $00, $99
.byte $88, $00, $88, $00,$00, $88, $58,$58, $A3,$59
.byte $58, $22,$22, $92, $22, $D2, $25,$25, $55
.byte $00, $08, $00, $99, $88, $00, $88
.byte $00, $80, $A7,$88, $00, $88, $00, $99
.byte $88, $00, $88, $00,$00, $88, $55, $88,$88
.byte $08,$08, $88, $92, $99, $C9, $CD, $DD,$DD
.byte $22, $55, $88, $80, $00, $99, $88
.byte $00, $88, $00, $A3,$88, $9D,$9D, $A3,$88, $00
.byte $88, $00, $99, $88, $00, $88, $00
.byte $80, $88, $55, $88,$88, $00,$00, $88, $44,$44
.byte $CC,$CC, $4D, $48, $22, $55, $88,$88, $00
.byte $99, $88, $00, $88, $AA,$08, $88, $00
.byte $99, $88, $00, $88, $00, $88,$88, $55
.byte $88,$88, $00,$00, $88, $44,$44, $CC,$CC, $4C, $84
.byte $22, $55, $88,$88, $00, $99, $88, $00
.byte $88, $A3,$90, $00, $11,$11, $A4,$90, $88, $00
.byte $99, $88, $00, $88, $00, $88,$88, $55
.byte $88,$88, $09,$09, $88, $24, $44, $4C, $24
.byte $84, $82, $22, $55, $88,$88, $00, $99
.byte $88, $00, $88, $A3,$99, $00, $11,$11, $A4,$99
.byte $88, $00, $99, $88, $00, $88, $00
.byte $88,$88, $55, $58, $A4,$59, $22,$22, $24, $22,$22
.byte $88, $22, $55, $88,$88, $00, $99, $88
.byte $00, $88, $A3,$99, $00, $51,$51, $A4,$99, $88
.byte $00, $99, $88, $00, $88, $00, $88,$88
.byte $80, $A5,$00, $52,$52, $55,$55, $A4,$05, $88,$88, $00
.byte $99, $88, $00, $88, $AA,$08, $88, $00
.byte $99, $88, $00, $88, $00, $A8,$88, $A8,$00
.byte $88,$88, $00, $99, $88, $00, $AC,$88, $00
.byte $99, $88, $00, $88, $00, $A8,$88, $A5,$80
.byte $A5,$88, $00, $99, $88, $00, $AC,$88, $00
.byte $99, $88, $00, $88, $00, $A0,$12,$88, $00
.byte $99, $88, $00, $88, $AA,$98, $88, $00
.byte $99, $88, $00, $88, $00, $AD,$88, $98,$98
.byte $99,$99, $09, $00, $99, $88, $AE,$00, $99
.byte $88, $00, $09, $A3,$99, $98,$98, $A4,$88, $98,$98
.byte $99,$99, $09,$09, $00,$00, $80,$80, $A4,$88, $00, $AB,$98
.byte $08, $88,$88, $08, $88, $A3,$80, $A3,$09, $99,$99
.byte $98, $09,$09, $A3,$80, $88,$88, $98,$98, $99, $A4,$80
.byte $90, $AB,$99, $90, $A3,$80, $99,$99, $98, $A4,$88
.byte $A3,$80, $88,$88, $A3,$98, $99, $89,$89, $A0,$18,$88, $89,$89
.byte $99,$99, $98,$98, $88,$88, $99, $98, $99,$99, $89
.byte $A0,$1E,$88, $89, $A4,$99
.byte $A1
; cycles=1170
temple_center_ex_rle: .byte $28 ; ysize=48
.byte $08, $80,$80, $A9,$00, $A5,$80, $DD, $80, $DD,$DD
.byte $80, $DD, $A5,$80, $08, $A6,$88, $08,$08, $A3,$80
.byte $A3,$00, $A3,$08, $AB,$00, $A6,$0D, $A5,$00, $80, $88,$88
.byte $08,$08, $80,$80, $08,$08, $A6,$00, $0F,$0F, $A6,$00, $A0,$11,$08
.byte $00, $80,$80, $08,$08, $00,$00, $0F,$0F, $A3,$00, $A4,$80
.byte $A6,$00, $90,$90, $98, $AD,$08, $98,$98, $90, $A8,$00
.byte $A3,$80, $A3,$00, $A3,$08, $80, $A4,$00, $88,$88, $A6,$00
.byte $0F,$0F, $A6,$00, $88,$88, $A5,$00, $80, $08,$08, $A3,$00
.byte $88, $A3,$80, $A3,$00, $A3,$88, $00, $99, $88
.byte $00,$00, $A3,$80, $A5,$08, $A3,$80, $00, $99, $88
.byte $00, $80, $88,$88, $08, $A3,$00, $A3,$80, $A5,$88
.byte $80, $00,$00, $88,$88, $00, $99, $88, $00
.byte $88,$88, $08, $A6,$00, $08, $88,$88, $00, $99
.byte $88, $00, $88,$88, $00,$00, $80, $A7,$88, $D8,$D8
.byte $A3,$88, $00,$00, $88, $00, $99, $88, $00
.byte $88, $08, $00,$00, $80, $A3,$88, $80, $00,$00
.byte $88, $00, $99, $88, $00, $88, $A3,$00
.byte $88,$88, $A3,$D8, $88, $58,$58, $59,$59, $58, $88,$88
.byte $80, $00, $88, $00, $99, $88, $00
.byte $88, $00,$00, $A7,$88, $00, $88, $00, $99
.byte $88, $00, $88, $00,$00, $88, $58,$58, $A3,$59
.byte $58, $22,$22, $92, $22, $D2, $25,$25, $55
.byte $00, $08, $00, $99, $88, $00, $88
.byte $00, $80, $A7,$88, $00, $88, $00, $99
.byte $88, $00, $88, $00,$00, $88, $55, $88,$88
.byte $08,$08, $88, $92, $99, $C9, $CD, $DD,$DD
.byte $22, $55, $88, $80, $00, $99, $88
.byte $00, $88, $00, $A3,$88, $9D,$9D, $A3,$88, $00
.byte $88, $00, $99, $88, $00, $88, $00
.byte $80, $88, $55, $88,$88, $00,$00, $88, $44,$44
.byte $CC,$CC, $4D, $48, $22, $55, $88,$88, $00
.byte $99, $88, $00, $88, $AA,$08, $88, $00
.byte $99, $88, $00, $88, $00, $88,$88, $55
.byte $88,$88, $00,$00, $88, $44,$44, $CC,$CC, $4C, $84
.byte $22, $55, $88,$88, $00, $99, $88, $00
.byte $88, $A3,$90, $50, $00, $50, $A4,$90, $88
.byte $00, $99, $88, $00, $88, $00, $88,$88
.byte $55, $88,$88, $09,$09, $88, $24, $44, $4C
.byte $24, $84, $82, $22, $55, $88,$88, $00
.byte $99, $88, $00, $88, $99, $95, $59
.byte $A3,$00, $59, $A3,$99, $88, $00, $99, $88
.byte $00, $88, $00, $88,$88, $55, $58, $A4,$59
.byte $22,$22, $24, $22,$22, $88, $22, $55, $88,$88
.byte $00, $99, $88, $00, $88, $A3,$99, $50
.byte $00, $50, $99, $95, $99,$99, $88, $00
.byte $99, $88, $00, $88, $00, $88,$88, $80
.byte $A5,$00, $52,$52, $55,$55, $A4,$05, $88,$88, $00, $99
.byte $88, $00, $88, $AA,$08, $88, $00, $99
.byte $88, $00, $88, $00, $A8,$88, $A8,$00, $88,$88
.byte $00, $99, $88, $00, $AC,$88, $00, $99
.byte $88, $00, $88, $00, $A8,$88, $A5,$80, $A5,$88
.byte $00, $99, $88, $00, $AC,$88, $00, $99
.byte $88, $00, $88, $00, $A0,$12,$88, $00, $99
.byte $88, $00, $88, $AA,$98, $88, $00, $99
.byte $88, $00, $88, $00, $AD,$88, $98,$98, $99,$99
.byte $09, $00, $99, $88, $AE,$00, $99, $88
.byte $00, $09, $A3,$99, $98,$98, $A4,$88, $98,$98, $99,$99
.byte $09,$09, $00,$00, $80,$80, $A4,$88, $00, $AB,$98, $08
.byte $88,$88, $08, $88, $A3,$80, $A3,$09, $99,$99, $98
.byte $09,$09, $A3,$80, $88,$88, $98,$98, $99, $A4,$80, $90
.byte $AB,$99, $90, $A3,$80, $99,$99, $98, $A4,$88, $A3,$80
.byte $88,$88, $A3,$98, $99, $89,$89, $A0,$18,$88, $89,$89, $99,$99
.byte $98,$98, $88,$88, $99, $98, $99,$99, $89, $A0,$1E,$88
.byte $89, $A4,$99
.byte $A1
; cycles=1170
generator_n_rle: .byte $28 ; ysize=48
.byte $A3,$77, $55, $88, $A0,$10,$08, $A4,$78, $AA,$08, $88
.byte $58, $55, $77, $99, $A3,$77, $55, $88
.byte $A6,$00, $80,$80, $A6,$00, $DD, $A4,$00, $07, $A3,$00
.byte $D8, $DD, $A5,$00, $88, $55, $75, $77
.byte $99, $A3,$77, $55, $88, $A7,$00, $0D, $80
.byte $A5,$00, $08, $70,$70, $00, $70, $A3,$00, $08
.byte $A7,$00, $88, $55, $77, $07, $99, $A3,$77
.byte $55, $88, $80, $AE,$00, $70,$70, $07, $AB,$00
.byte $80, $88, $55, $77, $90, $09, $A3,$77
.byte $75, $55, $88, $AE,$00, $70, $AD,$00, $88
.byte $55, $75, $77, $99, $80, $07, $A3,$77
.byte $55, $88, $A7,$00, $A3,$55, $00, $50, $A0,$10,$00
.byte $88, $55, $77,$77, $99, $88, $00, $A3,$77
.byte $55, $88, $80, $A5,$00, $50, $00, $55
.byte $20, $25,$25, $02, $D0,$D0, $77, $AC,$00, $88
.byte $55, $77, $90, $09, $88, $00, $A3,$77
.byte $55,$55, $88, $A4,$00, $50, $05, $20, $25
.byte $22, $52, $00,$00, $70,$70, $C0, $77, $50
.byte $A9,$00, $88, $58, $55, $77, $99, $80
.byte $88, $00,$00, $A3,$77, $55, $88, $00,$00, $05
.byte $00,$00, $50, $22,$22, $50, $05, $00, $A3,$70
.byte $20, $CC, $77, $50,$50, $A7,$00, $88, $55
.byte $77, $07, $99, $88, $A3,$00, $A3,$77, $55
.byte $58, $88, $00,$00, $55, $05,$05, $50, $55
.byte $A3,$00, $A3,$07, $20, $44, $CC, $77, $50
.byte $55, $50, $A5,$00, $88, $55, $77, $90
.byte $99, $88, $A3,$00, $07, $A3,$77, $55, $88
.byte $00,$00, $55, $00, $50, $55, $A3,$00, $A4,$77
.byte $70, $20, $44, $CC, $4C,$4C, $55, $A5,$00
.byte $88, $55, $77, $99, $00, $88, $A4,$00
.byte $A3,$77, $55, $88, $A3,$00, $50, $05, $A3,$00
.byte $70, $A5,$77, $00, $44, $CC, $44,$44, $05
.byte $A5,$00, $88, $55, $77, $99, $88, $08
.byte $A5,$00, $07, $77, $55, $88, $A8,$00, $A6,$77
.byte $70, $20, $A4,$44, $A4,$00, $88, $55, $00
.byte $90, $99, $88, $A8,$00, $55, $88, $A6,$00
.byte $70, $A8,$77, $00, $A4,$44, $A4,$00, $88, $55
.byte $00, $99, $80, $88, $A8,$00, $05, $A0,$1A,$58
.byte $55, $00, $99, $88, $A6,$00, $A5,$55, $05
.byte $A0,$19,$00, $05, $59, $88, $A4,$00, $50, $A5,$55
.byte $05, $00, $A3,$59, $09, $A3,$59, $09, $A3,$59
.byte $09, $A3,$59, $09, $A3,$59, $09, $A3,$59, $09
.byte $59, $00, $05, $55,$55, $50, $00, $A6,$55
.byte $05, $00,$00, $A4,$55, $F5,$F5, $A5,$55, $F5,$F5, $A3,$55
.byte $35, $55, $35, $55, $35, $55, $35
.byte $55, $35, $55, $00, $05, $A8,$55, $05
.byte $00,$00, $A3,$55, $F5, $0F, $00,$00, $0F, $F5
.byte $55, $F5, $0F, $00,$00, $0F, $F5, $55
.byte $51, $55, $51, $55, $51, $55, $51
.byte $55, $51, $55, $50, $00, $05, $A6,$55
.byte $05, $00,$00, $50, $A3,$55, $FF, $D0, $0D,$0D
.byte $D0, $FF, $55, $FF, $D0, $0D,$0D, $D0
.byte $FF, $55,$55, $13, $55, $13, $55, $13
.byte $55, $13, $55, $13, $55, $00,$00, $05
.byte $55, $AB,$A0, $20, $DC, $A3,$A0, $20, $A0,$01,$A0
.byte $20, $DC, $A3,$A0, $20, $A0,$1B,$A0, $20, $A0,$01,$A0
.byte $B0,$B0, $A0,$01,$A0, $20, $A0,$01,$A0, $20, $A0,$01,$A0, $B0,$B0
.byte $A0,$01,$A0, $20, $A0,$1C,$A0, $A4,$20, $A3,$A0, $A4,$20, $A0,$39,$A0
.byte $A1
; cycles=1642
approach07_rle: .byte $28 ; ysize=48
.byte $A0,$10,$AA, $A4,$99, $88,$88, $A0,$22,$AA, $A4,$99, $88,$88, $A0,$22,$AA
.byte $A4,$99, $88,$88, $A0,$22,$AA, $89, $99, $89, $98
.byte $88,$88, $A0,$23,$AA, $88, $99,$99, $88, $A0,$24,$AA, $39,$39
.byte $38,$38, $A0,$24,$AA, $A4,$33, $A0,$24,$AA, $A4,$03, $0A, $A0,$21,$AA
.byte $0A, $A7,$00, $A0,$1F,$AA, $AA,$00, $0A, $A0,$1B,$AA, $0A
.byte $AD,$00, $A0,$19,$AA, $0A, $AF,$00, $A0,$18,$AA, $A0,$10,$00, $0A
.byte $A0,$16,$AA, $A0,$12,$00, $A0,$16,$AA, $A0,$12,$00, $A0,$16,$AA, $A0,$12,$00, $A0,$16,$AA
.byte $A0,$01,$A0, $A0,$10,$00, $A0,$01,$A0, $A0,$17,$AA, $A3,$B0, $AB,$00, $B0
.byte $BB, $A0,$18,$AA, $A3,$BB, $AB,$00, $BB,$BB, $A0,$18,$AA, $A3,$BB
.byte $AB,$00, $BB,$BB, $A0,$AD,$AA
.byte $A1
; cycles=4774
blank_rle: .byte $28 ; ysize=48
.byte $A0,$FF,$AA, $A0,$FF,$AA, $A0,$FF,$AA, $A0,$C3,$AA
.byte $A1
; cycles=5368

View File

@ -95,6 +95,8 @@ PT3_TEMP = $8A
; More zero-page addresses
; we try not to conflict with anything DOS, MONITOR or BASIC related
BLASTED_WALL = $BB
HAVE_GUN = $BC ; C2 jail+
FIRST_SHIELD = $BD