trogdor: add scroll down
This commit is contained in:
parent
8e82b8f44e
commit
d8be4e48c7
|
@ -189,7 +189,7 @@ trogdor.o: trogdor.s \
|
|||
zp.inc hardware.inc qload.inc \
|
||||
graphics/trog00_trogdor.hgr.zx02 \
|
||||
hgr_sprite_big_mask.s horiz_scroll_simple.s hgr_copy_magnify.s \
|
||||
horiz_scroll_skip.s vertical_scroll.s hgr_copy_part.s
|
||||
horiz_scroll_skip.s vertical_scroll_down.s hgr_copy_part.s
|
||||
ca65 -o trogdor.o trogdor.s -l trogdor.lst
|
||||
|
||||
|
||||
|
|
|
@ -87,9 +87,6 @@ trog_no_music:
|
|||
; left tall 1212 roughly 10 frames (1/2 s)
|
||||
; left short 2 frames
|
||||
|
||||
;======================================
|
||||
; left flame short 2 frames
|
||||
|
||||
; clear to white
|
||||
ldy #$7f
|
||||
jsr hgr_clear_screen
|
||||
|
@ -100,10 +97,10 @@ trog_no_music:
|
|||
jsr hgr_page_flip
|
||||
|
||||
|
||||
lda #0
|
||||
lda #0 ; blank bg
|
||||
sta FLAME_BG
|
||||
|
||||
lda #8
|
||||
lda #8 ; x-coords for two flames
|
||||
sta FLAME_L
|
||||
lda #24
|
||||
sta FLAME_R
|
||||
|
@ -137,9 +134,6 @@ trog_no_music:
|
|||
jsr hgr_clear_screen
|
||||
jsr hgr_page_flip
|
||||
|
||||
; lda #24 ; 192/8
|
||||
; sta ANIMATE_COUNT
|
||||
|
||||
lda #0
|
||||
sta COUNT
|
||||
|
||||
|
@ -222,10 +216,26 @@ scroll_in_loop:
|
|||
lda #42
|
||||
jsr wait_ticks
|
||||
|
||||
;=====================
|
||||
; do flames
|
||||
|
||||
lda #1
|
||||
sta FLAME_BG
|
||||
jsr do_flames
|
||||
|
||||
;=====================
|
||||
; done flames
|
||||
|
||||
ldy #$7f
|
||||
jsr hgr_clear_screen
|
||||
|
||||
jsr hgr_copy_left
|
||||
|
||||
jsr hgr_page_flip
|
||||
|
||||
lda #30
|
||||
jsr wait_ticks
|
||||
|
||||
|
||||
;======================================
|
||||
; dragon man
|
||||
|
@ -274,10 +284,15 @@ scroll_in_loop:
|
|||
jsr wait_ticks
|
||||
|
||||
;==========================
|
||||
; dragon zoom
|
||||
|
||||
lda #$60
|
||||
jsr hgr_copy_magnify
|
||||
|
||||
;===========================
|
||||
; rapidly switch
|
||||
|
||||
|
||||
lda #12
|
||||
sta ANIMATE_COUNT
|
||||
rapid_switch:
|
||||
|
@ -289,6 +304,32 @@ rapid_switch:
|
|||
dec ANIMATE_COUNT
|
||||
bne rapid_switch
|
||||
|
||||
|
||||
;===h========================
|
||||
; scroll off screen
|
||||
|
||||
; switch to page1
|
||||
ldy #$7f
|
||||
jsr hgr_clear_screen
|
||||
jsr hgr_copy_left
|
||||
jsr hgr_page_flip
|
||||
|
||||
lda #0
|
||||
sta COUNT
|
||||
|
||||
scroll_down_in_loop:
|
||||
|
||||
jsr hgr_vertical_scroll_down_left
|
||||
|
||||
lda COUNT
|
||||
clc
|
||||
adc #8
|
||||
sta COUNT
|
||||
|
||||
cmp #200
|
||||
bne scroll_down_in_loop
|
||||
|
||||
;=========================
|
||||
; clear to white screen
|
||||
|
||||
ldy #$7f
|
||||
|
@ -503,8 +544,8 @@ trog04_graphics:
|
|||
.include "irq_wait.s"
|
||||
|
||||
|
||||
;hposn_low = $1e00
|
||||
;hposn_high = $1f00
|
||||
hposn_low = $1e00
|
||||
hposn_high = $1f00
|
||||
|
||||
;.include "hgr_sprite_big_mask.s"
|
||||
;.include "horiz_scroll_simple.s"
|
||||
|
@ -513,6 +554,7 @@ trog04_graphics:
|
|||
;.include "vertical_scroll.s"
|
||||
;.include "hgr_copy_part.s"
|
||||
|
||||
.include "vertical_scroll_down.s"
|
||||
.include "do_flames.s"
|
||||
|
||||
;=========================================
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
;=======================================
|
||||
; hgr_vertical scroll_down
|
||||
;=======================================
|
||||
; scrolls from $6000 to page1
|
||||
; jumps increments of 8 for speed
|
||||
;=======================================
|
||||
|
||||
hgr_vertical_scroll_down_left:
|
||||
; lda #0
|
||||
; beq hgr_vertical_scroll_down_common
|
||||
hgr_vertical_scroll_down_right:
|
||||
; lda #20
|
||||
hgr_vertical_scroll_down_common:
|
||||
; sta vscroll_down_offset_smc+1
|
||||
|
||||
hgr_vertical_scroll_down:
|
||||
|
||||
ldx #183 ; start at bottom
|
||||
|
||||
outer_vscroll_down_loop:
|
||||
lda hposn_low,X ; get page1 address
|
||||
sta INL ; set as output
|
||||
lda hposn_high,X
|
||||
sta INH
|
||||
|
||||
txa ; get address of X+8
|
||||
clc ; and set as output
|
||||
adc #8
|
||||
tay
|
||||
lda hposn_low,y
|
||||
sta OUTL
|
||||
lda hposn_high,Y
|
||||
sta OUTH
|
||||
|
||||
ldy #29 ; only scroll from 9..29
|
||||
inner_vscroll_down_loop:
|
||||
lda (INL),Y
|
||||
sta (OUTL),Y
|
||||
dey
|
||||
cpy #9
|
||||
bpl inner_vscroll_down_loop
|
||||
|
||||
dex
|
||||
cpx #$FF
|
||||
bne outer_vscroll_down_loop
|
||||
|
||||
|
||||
;================================
|
||||
; copy in off screen
|
||||
; for now assume all white
|
||||
|
||||
|
||||
ldx #7 ; start at top
|
||||
|
||||
outer_vscroll_down_loop2:
|
||||
lda hposn_low,X
|
||||
sta OUTL
|
||||
lda hposn_high,X
|
||||
sta OUTH
|
||||
|
||||
ldy #39
|
||||
lda #$7f
|
||||
inner_vscroll_down_loop2:
|
||||
sta (OUTL),Y
|
||||
dey
|
||||
bpl inner_vscroll_down_loop2
|
||||
|
||||
dex
|
||||
bpl outer_vscroll_down_loop2
|
||||
|
||||
rts
|
||||
|
Loading…
Reference in New Issue