From 6ef2122b57ef1bac140a1592f8fb302ab737ff67 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 12 Sep 2018 15:24:02 -0400 Subject: [PATCH] fireworks: stall the rocket a bit --- fireworks/TODO | 12 ++++++------ fireworks/fireworks.dsk | Bin 143360 -> 143360 bytes fireworks/fireworks.s | 1 + fireworks/fw.s | 10 ++++------ fireworks/state_machine.s | 28 ++++++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/fireworks/TODO b/fireworks/TODO index 7b3e888f..d72d6b60 100644 --- a/fireworks/TODO +++ b/fireworks/TODO @@ -1,17 +1,17 @@ sound effects: one more at start explosion? +adjust speed: + slow for launch, fast for fireworks -text scrolling (split?) - -cycle invariant HPLOT TO re-arrange to minimize padding remove dead code -adjust speed -adjust colors of gradient? +Not sure: + adjust colors of gradient? -version number in the BASIC booter +REACH: + cycle invariant HPLOT TO BUGS: sometimes far left firework will wrap? diff --git a/fireworks/fireworks.dsk b/fireworks/fireworks.dsk index ac8f4eb6ec1365e98beb4fc0dab444b83f42ede3..82822642a52b82570ef429af2c92a3639edcd8bd 100644 GIT binary patch literal 143360 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 literal 143360 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 JL(Tu+{|9oqPM!b& diff --git a/fireworks/fireworks.s b/fireworks/fireworks.s index 1632a37e..2bed19d3 100644 --- a/fireworks/fireworks.s +++ b/fireworks/fireworks.s @@ -403,6 +403,7 @@ jump_table: .word (action_move_rocket-1) .word (action_start_explosion-1) .word (action_continue_explosion-1) + .word (action_stall_rocket-1) diff --git a/fireworks/fw.s b/fireworks/fw.s index 3d2aeaa9..1d1486b0 100644 --- a/fireworks/fw.s +++ b/fireworks/fw.s @@ -15,6 +15,7 @@ STATE_LAUNCH_ROCKET = 0 STATE_MOVE_ROCKET = 2 STATE_START_EXPLOSION = 4 STATE_CONTINUE_EXPLOSION = 6 +STATE_STALL_ROCKET = 8 ; Constants NUMSTARS = 16 @@ -425,21 +426,18 @@ done_with_loop: ; 9 ;-1 - lda #STATE_START_EXPLOSION -; lda #STATE_LAUNCH_ROCKET ; 2 + lda #STATE_START_EXPLOSION ; 2 sta STATE ; 3 jmp not_done_with_launch2 ; 3 ;========== ; 7 not_done_with_launch: - lda STATE ; nop ; 3 - nop ; 2 + lda #STATE_STALL_ROCKET ; 2 + sta STATE ; 3 nop ; 2 ;========== ; 7 -; lda #$c0 -; jsr WAIT not_done_with_launch2: inc CURRENT_STEP ; 5 diff --git a/fireworks/state_machine.s b/fireworks/state_machine.s index 8a01362f..af6ace07 100644 --- a/fireworks/state_machine.s +++ b/fireworks/state_machine.s @@ -97,3 +97,31 @@ action_continue_explosion: jmp check_keyboard ; 3 + + + ;================================= + ; action_stall_rocket + ;================================= + ; and take 4504 cycles to do it + + ; 4504 - 8 = 4496 +action_stall_rocket: + + lda #STATE_MOVE_ROCKET ; 2 + sta STATE ; 3 + + + ; Try X=12 Y=68 cycles=4489 R7 + nop ; + nop ; + lda STATE ;3 + + ldy #68 ; 2 +Bloop1: ldx #12 ; 2 +Bloop2: dex ; 2 + bne Bloop2 ; 2nt/3 + dey ; 2 + bne Bloop1 ; 2nt/3 + + jmp check_keyboard ; 3 +