dos33fsprogs/ootw/cutscene_beast.s
Vince Weaver 0a1f21cdb6 ootw: add support for "overlay" on top of background
also now the RLE format supports color A, just less efficiently
2019-02-03 00:55:45 -05:00

245 lines
6.2 KiB
ArmAsm

beast_cutscene:
;====================
; beast dropping in
lda #$8
sta DRAW_PAGE
jsr clear_top
lda #<beast_background
sta INL
lda #>beast_background
sta INH
lda #15
sta XPOS
lda #10
sta YPOS
jsr put_sprite
lda #$0
sta DRAW_PAGE
jsr gr_copy_to_current
jsr page_flip
jsr gr_copy_to_current
jsr page_flip
ldx #0
stx CUTFRAME
beast_loop:
jsr gr_copy_to_current
ldx CUTFRAME
lda beast_frames,X
sta INL
lda beast_frames+1,X
sta INH
lda #15
sta XPOS
lda #10
sta YPOS
jsr put_sprite
jsr page_flip
ldx #2
beast_long_delay:
lda #250
jsr WAIT
dex
bne beast_long_delay
ldx CUTFRAME
inx
inx
stx CUTFRAME
cpx #28
beq beast_end
jmp beast_loop
beast_end:
;=============================
; Restore background to $c00
lda #>(cavern3_rle)
sta GBASH
lda #<(cavern3_rle)
sta GBASL
lda #$c ; load image off-screen $c00
jmp load_rle_gr
beast_background:
.byte 10,10
.byte $22,$82,$55,$66,$66,$66,$66,$55,$55,$88
.byte $88,$55,$66,$66,$66,$66,$66,$66,$55,$88
.byte $88,$55,$66,$66,$66,$66,$66,$66,$55,$88
.byte $88,$55,$66,$66,$66,$66,$66,$66,$55,$88
.byte $88,$55,$66,$66,$66,$66,$66,$66,$55,$88
.byte $88,$55,$66,$66,$66,$66,$66,$66,$55,$88
.byte $88,$55,$86,$66,$66,$66,$66,$66,$55,$88
.byte $88,$28,$88,$56,$56,$56,$56,$56,$85,$28
.byte $28,$22,$22,$28,$28,$28,$28,$28,$22,$22
.byte $22,$22,$22,$22,$22,$22,$22,$22,$22,$22
beast_frames:
.word beast_frame1 ; 0
.word beast_frame2 ; 1
.word beast_frame3 ; 2
.word beast_frame4 ; 3
.word beast_frame5 ; 4
.word beast_frame6 ; 5
.word beast_frame7 ; 6
.word beast_frame8 ; 7
.word beast_frame9 ; 8
.word beast_frame10 ; 9
.word beast_frame11 ; 10
.word beast_frame12 ; 11
.word beast_frame8 ; 12
.word beast_frame8 ; 13
beast_frame1: ; piskel2
.byte 9,2
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
beast_frame2: ; piskel3
.byte 9,4
.byte $AA,$00,$00,$AA,$A0,$A0,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
beast_frame3: ; piskel4
.byte 9,5
.byte $AA,$00,$01,$10,$00,$00,$10,$01,$00
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
beast_frame4: ; piskel5
.byte 9,7
.byte $AA,$AA,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$0A,$00,$00,$00,$00,$00,$00,$0A
.byte $AA,$00,$01,$10,$00,$00,$10,$01,$00
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00
.byte $AA,$00,$00,$AA,$A0,$A0,$AA,$00,$00
.byte $AA,$00,$00,$AA,$AA,$AA,$AA,$00,$00
beast_frame5: ; piskel6
.byte 9,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$0A,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00
.byte $AA,$00,$01,$10,$00,$00,$10,$01,$00
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00
.byte $AA,$00,$00,$A0,$00,$00,$A0,$00,$00
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00
.byte $AA,$00,$00,$AA,$A0,$A0,$AA,$00,$00
.byte $AA,$00,$00,$AA,$22,$22,$AA,$00,$00
beast_frame6: ; piskel7
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$0A,$00,$00,$00,$00,$0A,$AA,$AA
.byte $AA,$00,$10,$00,$00,$00,$00,$10,$00,$AA
.byte $AA,$00,$00,$01,$00,$00,$01,$00,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$A0,$00,$00,$A0,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $00,$00,$00,$AA,$20,$20,$AA,$00,$00,$00
beast_frame7: ; piskel8
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$AA,$0A,$0A,$0A,$0A,$AA,$AA,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$01,$10,$00,$00,$10,$01,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $00,$00,$00,$A0,$A0,$A0,$A0,$00,$00,$00
beast_frame8: ; piskel9
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$0A,$0A,$0A,$0A,$0A,$0A,$AA,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$01,$10,$00,$00,$10,$01,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $00,$00,$00,$A0,$A0,$A0,$A0,$00,$00,$00
beast_frame9: ; piskel10
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$0A,$0A,$00,$00,$0A,$0A,$AA,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$01,$10,$00,$00,$10,$01,$00,$AA
.byte $AA,$00,$00,$00,$00,$00,$00,$00,$00,$AA
.byte $AA,$00,$00,$07,$0f,$07,$0f,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $AA,$00,$00,$0A,$00,$00,$0A,$00,$00,$AA
.byte $00,$00,$00,$A0,$A0,$A0,$A0,$00,$00,$00
beast_frame10: ; piskel11
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$A0,$00,$00,$00,$00,$00,$00,$A0,$AA
.byte $AA,$00,$10,$00,$00,$00,$00,$10,$00,$AA
.byte $AA,$00,$00,$01,$00,$00,$01,$00,$00,$AA
.byte $AA,$00,$00,$07,$ff,$07,$ff,$00,$00,$AA
.byte $AA,$00,$00,$77,$f0,$77,$f0,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $0A,$00,$00,$AA,$00,$00,$AA,$00,$00,$0A
.byte $00,$00,$00,$A0,$A0,$A0,$A0,$00,$00,$00
beast_frame11: ; piskel12
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$A0,$00,$00,$00,$00,$00,$00,$A0,$AA
.byte $AA,$00,$10,$00,$00,$00,$00,$10,$00,$AA
.byte $AA,$00,$00,$01,$00,$00,$01,$00,$00,$AA
.byte $AA,$00,$00,$77,$ff,$77,$ff,$00,$00,$AA
.byte $AA,$00,$00,$07,$0f,$07,$0f,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $0A,$00,$00,$AA,$00,$00,$AA,$00,$00,$0A
.byte $00,$00,$00,$A0,$A0,$A0,$A0,$00,$00,$00
beast_frame12: ; piskel13
.byte 10,9
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA,$AA
.byte $AA,$A0,$00,$00,$00,$00,$00,$00,$A0,$AA
.byte $AA,$00,$10,$00,$00,$00,$00,$10,$00,$AA
.byte $AA,$00,$00,$01,$00,$00,$01,$00,$00,$AA
.byte $AA,$00,$00,$70,$f0,$70,$f0,$00,$00,$AA
.byte $AA,$00,$00,$A0,$00,$00,$A0,$00,$00,$AA
.byte $AA,$00,$00,$AA,$00,$00,$AA,$00,$00,$AA
.byte $0A,$00,$00,$AA,$00,$00,$AA,$00,$00,$0A
.byte $00,$00,$00,$A0,$A0,$A0,$A0,$00,$00,$00