From cf1fc32b63e916132b033aa33578f2fea80288ec Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 29 Jan 2024 01:04:59 -0500 Subject: [PATCH] trogdor: work on timing a bit --- demos/trogdor/do_flames.s | 71 ++++++++++++++++++++------------------- demos/trogdor/trogdor.s | 14 +++++--- demos/trogdor/zp.inc | 1 + 3 files changed, 46 insertions(+), 40 deletions(-) diff --git a/demos/trogdor/do_flames.s b/demos/trogdor/do_flames.s index 669eee55..cefb4bc2 100644 --- a/demos/trogdor/do_flames.s +++ b/demos/trogdor/do_flames.s @@ -20,6 +20,11 @@ do_flames: + ; this gets set to 1 if bg being copied + + lda #2 + sta FLAME_DELAY + ;====================================== ; left flame short 2 frames @@ -30,7 +35,7 @@ do_flames: jsr draw_flame_small_1 jsr hgr_page_flip - lda #2 + lda FLAME_DELAY jsr wait_ticks @@ -48,7 +53,8 @@ left_flame_animate1: ldx FLAME_L jsr draw_flame_tall_1 jsr hgr_page_flip - lda #2 + + lda FLAME_DELAY jsr wait_ticks ; 2 @@ -58,7 +64,8 @@ left_flame_animate1: ldx FLAME_L jsr draw_flame_tall_2 jsr hgr_page_flip - lda #2 + + lda FLAME_DELAY jsr wait_ticks dec ANIMATE_COUNT @@ -77,7 +84,7 @@ left_flame_animate1: jsr hgr_page_flip - lda #2 + lda FLAME_DELAY jsr wait_ticks @@ -96,7 +103,8 @@ right_flame_animate1: ldx FLAME_R jsr draw_flame_tall_2 jsr hgr_page_flip - lda #2 + + lda FLAME_DELAY jsr wait_ticks ; 1 @@ -106,7 +114,8 @@ right_flame_animate1: ldx FLAME_R jsr draw_flame_tall_1 jsr hgr_page_flip - lda #2 + + lda FLAME_DELAY jsr wait_ticks dec ANIMATE_COUNT @@ -121,7 +130,7 @@ right_flame_animate1: jsr draw_flame_small_2 jsr hgr_page_flip - lda #2 + lda FLAME_DELAY jsr wait_ticks ;============================= @@ -133,7 +142,7 @@ right_flame_animate1: jsr draw_flame_small_1 jsr hgr_page_flip - lda #2 + lda FLAME_DELAY jsr wait_ticks ;================================================ @@ -150,7 +159,8 @@ left_flame_animate2: ldx FLAME_L jsr draw_flame_tall_1 jsr hgr_page_flip - lda #2 + + lda FLAME_DELAY jsr wait_ticks ; 2 @@ -160,7 +170,8 @@ left_flame_animate2: ldx FLAME_L jsr draw_flame_tall_2 jsr hgr_page_flip - lda #2 + + lda FLAME_DELAY jsr wait_ticks dec ANIMATE_COUNT @@ -176,14 +187,9 @@ left_flame_animate2: jsr draw_flame_small_1 jsr hgr_page_flip - lda #2 - + lda FLAME_DELAY jmp wait_ticks ; tail call -; jsr wait_ticks - -; rts - ;=============================== ; draw_flame_bg @@ -204,15 +210,15 @@ draw_flame_bg: flame_bg_right: - jsr hgr_copy_right - - rts + lda #1 + sta FLAME_DELAY + jmp hgr_copy_right ; tail call flame_bg_left: - jsr hgr_copy_left - - rts + lda #1 + sta FLAME_DELAY + jmp hgr_copy_left ; tail call flame_bg_clear: @@ -249,15 +255,13 @@ draw_flame_small_common: sta MASKH txa -; lda #8 sta SPRITE_X lda #152 sta SPRITE_Y - jsr hgr_draw_sprite_big_mask + jmp hgr_draw_sprite_big_mask ; tail call - rts ;=============================== ; draw_flame_tall @@ -292,16 +296,13 @@ draw_flame_tall_2: draw_left_flame_common: -; lda #8 txa sta SPRITE_X lda #54 sta SPRITE_Y - jsr hgr_draw_sprite_big_mask - - rts + jmp hgr_draw_sprite_big_mask ; tail call ;=================================== @@ -311,16 +312,16 @@ draw_twin_flames_tall_1: ldx #4 jsr draw_flame_tall_1 ldx #28 - jsr draw_flame_tall_2 - rts + jmp draw_flame_tall_2 ; tail call + draw_twin_flames_tall_2: ldx #4 jsr draw_flame_tall_2 ldx #28 - jsr draw_flame_tall_1 - rts + jmp draw_flame_tall_1 ; tail call + ;=================================== @@ -330,5 +331,5 @@ draw_twin_flames_low: ldx #4 jsr draw_flame_small_1 ldx #28 - jsr draw_flame_small_2 - rts + jmp draw_flame_small_2 ; tail call + diff --git a/demos/trogdor/trogdor.s b/demos/trogdor/trogdor.s index c9d479d6..cf5030c0 100644 --- a/demos/trogdor/trogdor.s +++ b/demos/trogdor/trogdor.s @@ -156,7 +156,7 @@ scroll_in_loop: cmp #200 bne scroll_in_loop - lda #10 + lda #30 jsr wait_ticks @@ -186,7 +186,6 @@ scroll_in_loop: jsr zx02_full_decomp ; pan 9 times - ; FIXME: update timing lda #9 jsr horiz_pan @@ -221,7 +220,7 @@ scroll_in_loop: jsr hgr_page_flip - lda #42 + lda #20 jsr wait_ticks ;===================== @@ -241,7 +240,7 @@ scroll_in_loop: jsr hgr_page_flip - lda #30 + lda #10 jsr wait_ticks @@ -258,6 +257,9 @@ scroll_in_loop: lda #160 jsr wait_ticks + lda #120 + jsr wait_ticks + ;====================================== @@ -288,7 +290,9 @@ scroll_in_loop: jsr hgr_page_flip - lda #50 ; should be 250? + lda #160 + jsr wait_ticks + lda #90 jsr wait_ticks ;========================== diff --git a/demos/trogdor/zp.inc b/demos/trogdor/zp.inc index 0ef31a07..d930d68c 100644 --- a/demos/trogdor/zp.inc +++ b/demos/trogdor/zp.inc @@ -134,6 +134,7 @@ ANIMATE_COUNT = $F5 FLAME_L = $F6 FLAME_R = $F7 FLAME_BG = $F8 +FLAME_DELAY = $F9 ;============================================== ; $FC-$FF we use for in/out pointers