mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-17 13:29:39 +00:00
trogdor: loading dragonman
This commit is contained in:
parent
10316bbfad
commit
c0bd03bab7
|
@ -176,7 +176,7 @@ trogdor.o: trogdor.s \
|
||||||
zp.inc hardware.inc qload.inc \
|
zp.inc hardware.inc qload.inc \
|
||||||
graphics/trog00_trogdor.hgr.zx02 \
|
graphics/trog00_trogdor.hgr.zx02 \
|
||||||
hgr_sprite_big_mask.s horiz_scroll_simple.s hgr_copy_magnify.s \
|
hgr_sprite_big_mask.s horiz_scroll_simple.s hgr_copy_magnify.s \
|
||||||
horiz_scroll_skip.s vertical_scroll.s
|
horiz_scroll_skip.s vertical_scroll.s hgr_copy_part.s
|
||||||
ca65 -o trogdor.o trogdor.s -l trogdor.lst
|
ca65 -o trogdor.o trogdor.s -l trogdor.lst
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -154,3 +154,9 @@ Space:
|
||||||
$D000 - $E2FF = MUSIC ($12DF in size) 4831
|
$D000 - $E2FF = MUSIC ($12DF in size) 4831
|
||||||
$E300 - $F9FF = FLAMES ($1650 in size) 5712
|
$E300 - $F9FF = FLAMES ($1650 in size) 5712
|
||||||
$FA00 - $FEFF = COUNTRYSIDE ($498 in side) 1176
|
$FA00 - $FEFF = COUNTRYSIDE ($498 in side) 1176
|
||||||
|
|
||||||
|
|
||||||
|
dragonman:
|
||||||
|
original man=1973 dragonman=1982 = 3955 bytes
|
||||||
|
combined = 3669 bytes
|
||||||
|
optimize so bases same: = 3191 bytes
|
||||||
|
|
|
@ -7,6 +7,7 @@ HGR_SPRITE = ../../../utils/hgr-utils/hgr_make_sprite
|
||||||
|
|
||||||
all: \
|
all: \
|
||||||
actual00_trog_cottage.hgr.zx02 \
|
actual00_trog_cottage.hgr.zx02 \
|
||||||
|
actual01_dragonman.hgr.zx02 \
|
||||||
trog00_trogdor.hgr.zx02 \
|
trog00_trogdor.hgr.zx02 \
|
||||||
trog01_countryside.hgr.zx02 \
|
trog01_countryside.hgr.zx02 \
|
||||||
trog02_countryside.hgr.zx02 \
|
trog02_countryside.hgr.zx02 \
|
||||||
|
@ -59,6 +60,15 @@ actual00_trog_cottage.hgr.zx02: actual00_trog_cottage.hgr
|
||||||
|
|
||||||
actual00_trog_cottage.hgr: actual00_trog_cottage.png
|
actual00_trog_cottage.hgr: actual00_trog_cottage.png
|
||||||
$(PNG_TO_HGR) actual00_trog_cottage.png > actual00_trog_cottage.hgr
|
$(PNG_TO_HGR) actual00_trog_cottage.png > actual00_trog_cottage.hgr
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
actual01_dragonman.hgr.zx02: actual01_dragonman.hgr
|
||||||
|
$(ZX02) actual01_dragonman.hgr actual01_dragonman.hgr.zx02
|
||||||
|
|
||||||
|
actual01_dragonman.hgr: actual01_dragonman.png
|
||||||
|
$(PNG_TO_HGR) actual01_dragonman.png > actual01_dragonman.hgr
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
trog00_trogdor.hgr.zx02: trog00_trogdor.hgr
|
trog00_trogdor.hgr.zx02: trog00_trogdor.hgr
|
||||||
|
|
BIN
demos/trogdor/graphics/actual01_dragonman.png
Normal file
BIN
demos/trogdor/graphics/actual01_dragonman.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
47
demos/trogdor/hgr_copy_part.s
Normal file
47
demos/trogdor/hgr_copy_part.s
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
;=========================================================
|
||||||
|
; hgr copy from page in A to current DRAW_PAGE
|
||||||
|
;=========================================================
|
||||||
|
; from source, assume $6000
|
||||||
|
; from COPY_X1,Y1 to WIDTH, Y2
|
||||||
|
; copy to DRAW_PAGE
|
||||||
|
; SPRITE_X,SPRITE_Y
|
||||||
|
hgr_copy_part:
|
||||||
|
|
||||||
|
hgr_copy_outer_loop:
|
||||||
|
|
||||||
|
ldy COPY_Y1
|
||||||
|
lda hposn_low,Y
|
||||||
|
clc
|
||||||
|
adc COPY_X1
|
||||||
|
sta INL
|
||||||
|
lda hposn_high,Y
|
||||||
|
clc
|
||||||
|
adc #$40 ; force $6000
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
ldy SPRITE_Y
|
||||||
|
lda hposn_low,Y
|
||||||
|
clc
|
||||||
|
adc SPRITE_X
|
||||||
|
sta OUTL
|
||||||
|
lda hposn_high,Y
|
||||||
|
clc
|
||||||
|
adc DRAW_PAGE
|
||||||
|
sta OUTH
|
||||||
|
|
||||||
|
|
||||||
|
ldy COPY_WIDTH
|
||||||
|
hgr_copy_inner_loop:
|
||||||
|
lda (INL),Y
|
||||||
|
sta (OUTL),Y
|
||||||
|
dey
|
||||||
|
bpl hgr_copy_inner_loop
|
||||||
|
|
||||||
|
inc COPY_Y1
|
||||||
|
inc SPRITE_Y
|
||||||
|
lda COPY_Y1
|
||||||
|
cmp COPY_Y2
|
||||||
|
bne hgr_copy_outer_loop
|
||||||
|
|
||||||
|
rts ; 6
|
||||||
|
|
|
@ -3,8 +3,11 @@
|
||||||
;======================================
|
;======================================
|
||||||
; screens to pan in $2000/$4000 to left
|
; screens to pan in $2000/$4000 to left
|
||||||
|
|
||||||
|
; A is times to scroll
|
||||||
|
|
||||||
|
|
||||||
horiz_pan:
|
horiz_pan:
|
||||||
|
sta pan_count_smc+1
|
||||||
|
|
||||||
pan_loop:
|
pan_loop:
|
||||||
|
|
||||||
|
@ -80,6 +83,7 @@ pil_smc4:
|
||||||
|
|
||||||
inc COUNT
|
inc COUNT
|
||||||
lda COUNT
|
lda COUNT
|
||||||
|
pan_count_smc:
|
||||||
cmp #39
|
cmp #39
|
||||||
|
|
||||||
bne pan_outer_outer_loop
|
bne pan_outer_outer_loop
|
||||||
|
|
|
@ -11,18 +11,18 @@
|
||||||
|
|
||||||
horiz_pan_skip:
|
horiz_pan_skip:
|
||||||
|
|
||||||
pan_loop:
|
pan_skip_loop:
|
||||||
|
|
||||||
; how many times to scroll
|
; how many times to scroll
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta COUNT
|
sta COUNT
|
||||||
|
|
||||||
pan_outer_outer_loop:
|
pan_skip_outer_outer_loop:
|
||||||
|
|
||||||
|
|
||||||
ldx #191
|
ldx #191
|
||||||
pan_outer_loop:
|
pan_skip_outer_loop:
|
||||||
|
|
||||||
txa
|
txa
|
||||||
pha
|
pha
|
||||||
|
@ -75,7 +75,7 @@ pan_outer_loop:
|
||||||
; inner loop, from 0-36
|
; inner loop, from 0-36
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
pan_inner_loop:
|
pan_skip_inner_loop:
|
||||||
|
|
||||||
; load in+1, store to in
|
; load in+1, store to in
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ pil_out_smc2:
|
||||||
|
|
||||||
iny ; 2
|
iny ; 2
|
||||||
cpy #36 ; 2
|
cpy #36 ; 2
|
||||||
bne pan_inner_loop ; 2/3
|
bne pan_skip_inner_loop ; 2/3
|
||||||
|
|
||||||
; for right edge, scroll in from PAGE2
|
; for right edge, scroll in from PAGE2
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ pil_out_smc5:
|
||||||
dex
|
dex
|
||||||
dex
|
dex
|
||||||
cpx #$ff
|
cpx #$ff
|
||||||
bne pan_outer_loop
|
bne pan_skip_outer_loop
|
||||||
|
|
||||||
inc COUNT
|
inc COUNT
|
||||||
inc COUNT
|
inc COUNT
|
||||||
|
@ -128,6 +128,6 @@ pil_out_smc5:
|
||||||
lda COUNT
|
lda COUNT
|
||||||
cmp #36
|
cmp #36
|
||||||
|
|
||||||
bne pan_outer_outer_loop
|
bne pan_skip_outer_outer_loop
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -309,14 +309,20 @@ scroll_in_loop:
|
||||||
lda #$20
|
lda #$20
|
||||||
jsr zx02_full_decomp
|
jsr zx02_full_decomp
|
||||||
|
|
||||||
|
; decompress second part to $4000
|
||||||
|
|
||||||
|
lda #<$FA00
|
||||||
|
sta zx_src_l+1
|
||||||
|
lda #>$FA00
|
||||||
|
sta zx_src_h+1
|
||||||
|
lda #$40
|
||||||
|
jsr zx02_full_decomp
|
||||||
|
|
||||||
|
; pan 9 times
|
||||||
|
; FIXME: update timing
|
||||||
|
|
||||||
lda #9
|
lda #9
|
||||||
sta ANIMATE_COUNT
|
jsr horiz_pan
|
||||||
countryside_pan_loop:
|
|
||||||
jsr horiz_pan_skip
|
|
||||||
|
|
||||||
dec ANIMATE_COUNT
|
|
||||||
bne countryside_pan_loop
|
|
||||||
|
|
||||||
|
|
||||||
;======================================
|
;======================================
|
||||||
; draw SCENE 5
|
; draw SCENE 5
|
||||||
|
@ -340,19 +346,42 @@ countryside_pan_loop:
|
||||||
|
|
||||||
;=======================================
|
;=======================================
|
||||||
|
|
||||||
|
|
||||||
|
;======================================
|
||||||
|
; man
|
||||||
|
|
||||||
|
lda #<trog03_graphics
|
||||||
|
sta zx_src_l+1
|
||||||
|
lda #>trog03_graphics
|
||||||
|
sta zx_src_h+1
|
||||||
|
lda #$60
|
||||||
|
jsr zx02_full_decomp
|
||||||
|
|
||||||
|
ldy #$7f
|
||||||
|
jsr hgr_clear_screen
|
||||||
|
|
||||||
|
; FIXME: make a "copy left" routine
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta COPY_X1
|
||||||
|
sta COPY_Y1
|
||||||
|
sta SPRITE_Y
|
||||||
|
lda #10
|
||||||
|
sta SPRITE_X
|
||||||
|
lda #20
|
||||||
|
sta COPY_WIDTH
|
||||||
|
lda #191
|
||||||
|
sta COPY_Y2
|
||||||
|
|
||||||
|
jsr hgr_copy_part
|
||||||
|
|
||||||
|
jsr hgr_page_flip
|
||||||
|
|
||||||
|
lda #42
|
||||||
|
jsr wait_ticks
|
||||||
|
|
||||||
jsr wait_until_keypress
|
jsr wait_until_keypress
|
||||||
|
|
||||||
; second
|
|
||||||
|
|
||||||
; lda #<trog03_graphics
|
|
||||||
; sta zx_src_l+1
|
|
||||||
; lda #>trog03_graphics
|
|
||||||
; sta zx_src_h+1
|
|
||||||
; lda #$20
|
|
||||||
; jsr zx02_full_decomp
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
finished:
|
finished:
|
||||||
jmp finished
|
jmp finished
|
||||||
|
|
||||||
|
@ -383,8 +412,8 @@ trog00_graphics:
|
||||||
trog01_graphics:
|
trog01_graphics:
|
||||||
.incbin "graphics/trog01_countryside.hgr.zx02"
|
.incbin "graphics/trog01_countryside.hgr.zx02"
|
||||||
|
|
||||||
;trog03_graphics:
|
trog03_graphics:
|
||||||
;.incbin "graphics/trog03_man.hgr.zx02"
|
.incbin "graphics/actual01_dragonman.hgr.zx02"
|
||||||
|
|
||||||
.include "wait_keypress.s"
|
.include "wait_keypress.s"
|
||||||
.include "irq_wait.s"
|
.include "irq_wait.s"
|
||||||
|
@ -394,9 +423,11 @@ 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_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"
|
||||||
|
|
||||||
;===============================
|
;===============================
|
||||||
; draw_flame_small
|
; draw_flame_small
|
||||||
|
|
|
@ -116,17 +116,14 @@ SECOND_COUNTDOWN= $E1
|
||||||
COUNT = $E2
|
COUNT = $E2
|
||||||
XSAVE = $E3
|
XSAVE = $E3
|
||||||
TEMPY = $E4
|
TEMPY = $E4
|
||||||
XPOS = $E5 ; gr_plot
|
FRAME = $E5
|
||||||
YPOS = $E6 ; gr_plot
|
SECONDS = $E6
|
||||||
COLOR_MASK = $E7 ; gr_plot
|
COPY_X1 = $E7
|
||||||
;FRAMEL = $E8
|
COPY_Y1 = $E8
|
||||||
;FRAMEH = $E9
|
COPY_WIDTH = $E9
|
||||||
FRAME = $E8
|
COPY_Y2 = $EA
|
||||||
SECONDS = $E9
|
|
||||||
|
|
||||||
BTC_L = $EA ; audio
|
MASKL = $EC
|
||||||
BTC_H = $EB ; audio
|
|
||||||
MASKL = $EC ; gr_putsprite_mask
|
|
||||||
MASKH = $ED
|
MASKH = $ED
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user