mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-28 17:55:04 +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 \
|
||||
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
|
||||
horiz_scroll_skip.s vertical_scroll.s hgr_copy_part.s
|
||||
ca65 -o trogdor.o trogdor.s -l trogdor.lst
|
||||
|
||||
|
||||
|
@ -154,3 +154,9 @@ Space:
|
||||
$D000 - $E2FF = MUSIC ($12DF in size) 4831
|
||||
$E300 - $F9FF = FLAMES ($1650 in size) 5712
|
||||
$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: \
|
||||
actual00_trog_cottage.hgr.zx02 \
|
||||
actual01_dragonman.hgr.zx02 \
|
||||
trog00_trogdor.hgr.zx02 \
|
||||
trog01_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
|
||||
$(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
|
||||
|
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
|
||||
|
||||
; A is times to scroll
|
||||
|
||||
|
||||
horiz_pan:
|
||||
sta pan_count_smc+1
|
||||
|
||||
pan_loop:
|
||||
|
||||
@ -80,6 +83,7 @@ pil_smc4:
|
||||
|
||||
inc COUNT
|
||||
lda COUNT
|
||||
pan_count_smc:
|
||||
cmp #39
|
||||
|
||||
bne pan_outer_outer_loop
|
||||
|
@ -11,18 +11,18 @@
|
||||
|
||||
horiz_pan_skip:
|
||||
|
||||
pan_loop:
|
||||
pan_skip_loop:
|
||||
|
||||
; how many times to scroll
|
||||
|
||||
lda #0
|
||||
sta COUNT
|
||||
|
||||
pan_outer_outer_loop:
|
||||
pan_skip_outer_outer_loop:
|
||||
|
||||
|
||||
ldx #191
|
||||
pan_outer_loop:
|
||||
pan_skip_outer_loop:
|
||||
|
||||
txa
|
||||
pha
|
||||
@ -75,7 +75,7 @@ pan_outer_loop:
|
||||
; inner loop, from 0-36
|
||||
|
||||
ldy #0
|
||||
pan_inner_loop:
|
||||
pan_skip_inner_loop:
|
||||
|
||||
; load in+1, store to in
|
||||
|
||||
@ -92,7 +92,7 @@ pil_out_smc2:
|
||||
|
||||
iny ; 2
|
||||
cpy #36 ; 2
|
||||
bne pan_inner_loop ; 2/3
|
||||
bne pan_skip_inner_loop ; 2/3
|
||||
|
||||
; for right edge, scroll in from PAGE2
|
||||
|
||||
@ -118,7 +118,7 @@ pil_out_smc5:
|
||||
dex
|
||||
dex
|
||||
cpx #$ff
|
||||
bne pan_outer_loop
|
||||
bne pan_skip_outer_loop
|
||||
|
||||
inc COUNT
|
||||
inc COUNT
|
||||
@ -128,6 +128,6 @@ pil_out_smc5:
|
||||
lda COUNT
|
||||
cmp #36
|
||||
|
||||
bne pan_outer_outer_loop
|
||||
bne pan_skip_outer_outer_loop
|
||||
|
||||
rts
|
||||
|
@ -309,14 +309,20 @@ scroll_in_loop:
|
||||
lda #$20
|
||||
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
|
||||
sta ANIMATE_COUNT
|
||||
countryside_pan_loop:
|
||||
jsr horiz_pan_skip
|
||||
|
||||
dec ANIMATE_COUNT
|
||||
bne countryside_pan_loop
|
||||
|
||||
jsr horiz_pan
|
||||
|
||||
;======================================
|
||||
; 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
|
||||
|
||||
; second
|
||||
|
||||
; lda #<trog03_graphics
|
||||
; sta zx_src_l+1
|
||||
; lda #>trog03_graphics
|
||||
; sta zx_src_h+1
|
||||
; lda #$20
|
||||
; jsr zx02_full_decomp
|
||||
|
||||
|
||||
|
||||
finished:
|
||||
jmp finished
|
||||
|
||||
@ -383,8 +412,8 @@ trog00_graphics:
|
||||
trog01_graphics:
|
||||
.incbin "graphics/trog01_countryside.hgr.zx02"
|
||||
|
||||
;trog03_graphics:
|
||||
;.incbin "graphics/trog03_man.hgr.zx02"
|
||||
trog03_graphics:
|
||||
.incbin "graphics/actual01_dragonman.hgr.zx02"
|
||||
|
||||
.include "wait_keypress.s"
|
||||
.include "irq_wait.s"
|
||||
@ -394,9 +423,11 @@ hposn_low = $1e00
|
||||
hposn_high = $1f00
|
||||
|
||||
.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"
|
||||
|
||||
;===============================
|
||||
; draw_flame_small
|
||||
|
@ -116,17 +116,14 @@ SECOND_COUNTDOWN= $E1
|
||||
COUNT = $E2
|
||||
XSAVE = $E3
|
||||
TEMPY = $E4
|
||||
XPOS = $E5 ; gr_plot
|
||||
YPOS = $E6 ; gr_plot
|
||||
COLOR_MASK = $E7 ; gr_plot
|
||||
;FRAMEL = $E8
|
||||
;FRAMEH = $E9
|
||||
FRAME = $E8
|
||||
SECONDS = $E9
|
||||
FRAME = $E5
|
||||
SECONDS = $E6
|
||||
COPY_X1 = $E7
|
||||
COPY_Y1 = $E8
|
||||
COPY_WIDTH = $E9
|
||||
COPY_Y2 = $EA
|
||||
|
||||
BTC_L = $EA ; audio
|
||||
BTC_H = $EB ; audio
|
||||
MASKL = $EC ; gr_putsprite_mask
|
||||
MASKL = $EC
|
||||
MASKH = $ED
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user