mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-27 11:55:20 +00:00
trogdor: scroll in cottage
also move things around as we hit the 16k limit
This commit is contained in:
parent
e6924d8dd0
commit
626121ef29
@ -37,6 +37,12 @@ QLOAD: qload.o
|
|||||||
ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_1200.inc
|
ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_1200.inc
|
||||||
|
|
||||||
qload.o: zp.inc hardware.inc music.inc qload.s \
|
qload.o: zp.inc hardware.inc music.inc qload.s \
|
||||||
|
hgr_sprite_big_mask.s \
|
||||||
|
horiz_scroll_simple.s \
|
||||||
|
horiz_scroll_skip.s \
|
||||||
|
hgr_copy_magnify.s \
|
||||||
|
vertical_scroll.s \
|
||||||
|
hgr_copy_part.s \
|
||||||
gr_offsets.s \
|
gr_offsets.s \
|
||||||
wait.s wait_a_bit.s \
|
wait.s wait_a_bit.s \
|
||||||
lc_detect.s \
|
lc_detect.s \
|
||||||
@ -92,6 +98,13 @@ qload.inc: generate_common QLOAD
|
|||||||
./generate_common -a 0x1200 -s hgr_clear_screen qload.lst >> qload.inc
|
./generate_common -a 0x1200 -s hgr_clear_screen qload.lst >> qload.inc
|
||||||
./generate_common -a 0x1200 -s hgr_copy_fast qload.lst >> qload.inc
|
./generate_common -a 0x1200 -s hgr_copy_fast qload.lst >> qload.inc
|
||||||
./generate_common -a 0x1200 -s hgr_page_flip qload.lst >> qload.inc
|
./generate_common -a 0x1200 -s hgr_page_flip qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s hgr_copy_part qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s hgr_draw_sprite_big_mask qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s horiz_pan qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s hgr_vertical_scroll_right qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s hgr_vertical_scroll_left qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s horiz_pan_skip qload.lst >> qload.inc
|
||||||
|
./generate_common -a 0x1200 -s hgr_copy_magnify qload.lst >> qload.inc
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
|
@ -211,6 +211,12 @@ hposn_low = $1e00
|
|||||||
hposn_high = $1f00
|
hposn_high = $1f00
|
||||||
|
|
||||||
.include "hgr_table.s"
|
.include "hgr_table.s"
|
||||||
|
.include "hgr_sprite_big_mask.s"
|
||||||
|
.include "horiz_scroll_simple.s"
|
||||||
|
.include "horiz_scroll_skip.s"
|
||||||
|
.include "hgr_copy_magnify.s"
|
||||||
|
.include "vertical_scroll.s"
|
||||||
|
.include "hgr_copy_part.s"
|
||||||
|
|
||||||
qload_end:
|
qload_end:
|
||||||
|
|
||||||
|
@ -280,13 +280,13 @@ left_flame_animate2:
|
|||||||
|
|
||||||
scroll_in_loop:
|
scroll_in_loop:
|
||||||
|
|
||||||
jsr hgr_vertical_scroll
|
jsr hgr_vertical_scroll_left
|
||||||
|
|
||||||
lda COUNT
|
lda COUNT
|
||||||
clc
|
clc
|
||||||
adc #8
|
adc #8
|
||||||
|
|
||||||
cmp #192
|
cmp #200
|
||||||
bne scroll_in_loop
|
bne scroll_in_loop
|
||||||
|
|
||||||
lda #10
|
lda #10
|
||||||
@ -537,6 +537,35 @@ up_down_animate:
|
|||||||
; white screen
|
; white screen
|
||||||
; scroll up cottage, takes roughly 90 frames (3s)
|
; scroll up cottage, takes roughly 90 frames (3s)
|
||||||
|
|
||||||
|
ldy #$7f
|
||||||
|
jsr hgr_clear_screen
|
||||||
|
jsr hgr_page_flip
|
||||||
|
|
||||||
|
lda #<trog04_graphics
|
||||||
|
sta zx_src_l+1
|
||||||
|
lda #>trog04_graphics
|
||||||
|
sta zx_src_h+1
|
||||||
|
lda #$60
|
||||||
|
jsr zx02_full_decomp
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta COUNT
|
||||||
|
|
||||||
|
scroll_in_loop2:
|
||||||
|
|
||||||
|
jsr hgr_vertical_scroll_right
|
||||||
|
|
||||||
|
lda COUNT
|
||||||
|
clc
|
||||||
|
adc #8
|
||||||
|
|
||||||
|
cmp #200
|
||||||
|
bne scroll_in_loop2
|
||||||
|
|
||||||
|
lda #10
|
||||||
|
jsr wait_ticks
|
||||||
|
|
||||||
|
|
||||||
;======================================
|
;======================================
|
||||||
; draw SCENE 13
|
; draw SCENE 13
|
||||||
;======================================
|
;======================================
|
||||||
@ -598,15 +627,15 @@ trog04_graphics:
|
|||||||
.include "irq_wait.s"
|
.include "irq_wait.s"
|
||||||
|
|
||||||
|
|
||||||
hposn_low = $1e00
|
;hposn_low = $1e00
|
||||||
hposn_high = $1f00
|
;hposn_high = $1f00
|
||||||
|
|
||||||
.include "hgr_sprite_big_mask.s"
|
;.include "hgr_sprite_big_mask.s"
|
||||||
.include "horiz_scroll_simple.s"
|
;.include "horiz_scroll_simple.s"
|
||||||
.include "horiz_scroll_skip.s"
|
;.include "horiz_scroll_skip.s"
|
||||||
.include "hgr_copy_magnify.s"
|
;.include "hgr_copy_magnify.s"
|
||||||
.include "vertical_scroll.s"
|
;.include "vertical_scroll.s"
|
||||||
.include "hgr_copy_part.s"
|
;.include "hgr_copy_part.s"
|
||||||
|
|
||||||
;===============================
|
;===============================
|
||||||
; draw_flame_small
|
; draw_flame_small
|
||||||
|
@ -1,20 +1,31 @@
|
|||||||
|
|
||||||
;=======================================
|
;=======================================
|
||||||
; scrolls to PAGE1
|
; hgr_vertical scroll
|
||||||
; relies on going off the edge...
|
|
||||||
;=======================================
|
;=======================================
|
||||||
|
; scrolls from $6000 to page1
|
||||||
|
; jumps increments of 8 for speed
|
||||||
|
;=======================================
|
||||||
|
; offset line in $6000 to copy in from in COUNT
|
||||||
|
|
||||||
|
hgr_vertical_scroll_left:
|
||||||
|
lda #0
|
||||||
|
beq hgr_vertical_scroll_common
|
||||||
|
hgr_vertical_scroll_right:
|
||||||
|
lda #20
|
||||||
|
hgr_vertical_scroll_common:
|
||||||
|
sta vscroll_offset_smc+1
|
||||||
|
|
||||||
hgr_vertical_scroll:
|
hgr_vertical_scroll:
|
||||||
ldx #0
|
ldx #0 ; start at top
|
||||||
|
|
||||||
outer_vscroll_loop:
|
outer_vscroll_loop:
|
||||||
lda hposn_low,X
|
lda hposn_low,X ; get page1 address
|
||||||
sta OUTL
|
sta OUTL ; set as output
|
||||||
lda hposn_high,X
|
lda hposn_high,X
|
||||||
sta OUTH
|
sta OUTH
|
||||||
|
|
||||||
txa
|
txa ; get address of X+8
|
||||||
clc
|
clc ; and set as input
|
||||||
adc #8
|
adc #8
|
||||||
tay
|
tay
|
||||||
lda hposn_low,y
|
lda hposn_low,y
|
||||||
@ -22,7 +33,7 @@ outer_vscroll_loop:
|
|||||||
lda hposn_high,Y
|
lda hposn_high,Y
|
||||||
sta INH
|
sta INH
|
||||||
|
|
||||||
ldy #29
|
ldy #29 ; only scroll from 9..29
|
||||||
inner_vscroll_loop:
|
inner_vscroll_loop:
|
||||||
lda (INL),Y
|
lda (INL),Y
|
||||||
sta (OUTL),Y
|
sta (OUTL),Y
|
||||||
@ -41,12 +52,12 @@ inner_vscroll_loop:
|
|||||||
; for now from 0..19
|
; for now from 0..19
|
||||||
|
|
||||||
hgr_vertical_scroll2:
|
hgr_vertical_scroll2:
|
||||||
ldx #184
|
ldx #184 ; start 8 from bottom
|
||||||
|
|
||||||
outer_vscroll_loop2:
|
outer_vscroll_loop2:
|
||||||
lda hposn_low,X
|
lda hposn_low,X
|
||||||
clc
|
clc
|
||||||
adc #10
|
adc #10 ; copy to middle of screen
|
||||||
sta OUTL
|
sta OUTL
|
||||||
|
|
||||||
lda hposn_high,X
|
lda hposn_high,X
|
||||||
@ -54,6 +65,9 @@ outer_vscroll_loop2:
|
|||||||
|
|
||||||
ldy COUNT
|
ldy COUNT
|
||||||
lda hposn_low,Y
|
lda hposn_low,Y
|
||||||
|
clc
|
||||||
|
vscroll_offset_smc:
|
||||||
|
adc #$0
|
||||||
sta INL
|
sta INL
|
||||||
lda hposn_high,Y
|
lda hposn_high,Y
|
||||||
clc
|
clc
|
||||||
@ -73,7 +87,5 @@ inner_vscroll_loop2:
|
|||||||
cpx #192
|
cpx #192
|
||||||
bne outer_vscroll_loop2
|
bne outer_vscroll_loop2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user