Synchro - NTSC flicker fix

This commit is contained in:
Pecusx
2025-03-02 10:45:31 +01:00
parent a8bc35eba3
commit 7e59a596ff
3 changed files with 130 additions and 119 deletions
+116 -116
View File
@@ -97,31 +97,31 @@
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p2 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p3 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p4 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_r_ph3p1 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p2 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p3 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p4 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p5 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph1p1 animation_addr
mva #1 LumberjackDir ; right side
rts
@@ -133,31 +133,31 @@ AnimationR2 = AnimationR1
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p2 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p3 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p4 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_l_ph3p1 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p2 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p3 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p4 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p5 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph1p1 animation_addr
mva #2 LumberjackDir ; left side
rts
@@ -169,31 +169,31 @@ AnimationL2 = AnimationL1
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p6 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p7 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p8 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_r_ph3p6 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p2 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p3 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p4 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p5 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph1p1 animation_addr
mva #1 LumberjackDir ; right side
rts
@@ -204,31 +204,31 @@ AnimationL2 = AnimationL1
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p6 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p7 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p8 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_l_ph3p6 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p2 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p3 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p4 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p5 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph1p1 animation_addr
mva #2 LumberjackDir ; left side
rts
@@ -239,28 +239,28 @@ AnimationL2 = AnimationL1
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p2 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p3 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p4 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_r_ph3p1 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p11 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p12 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p13 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p14 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph1p1 animation_addr
mva #1 LumberjackDir ; right side (kill)
@@ -273,28 +273,28 @@ AnimationR5 = AnimationR4
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p2 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p3 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p4 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_l_ph3p1 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p11 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p12 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p13 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p14 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph1p1 animation_addr
mva #2 LumberjackDir ; left side (kill)
@@ -307,28 +307,28 @@ AnimationL5 = AnimationL4
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p6 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p7 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p8 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_r_ph3p6 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p11 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p12 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p13 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p14 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph1p1 animation_addr
mva #1 LumberjackDir ; right side (kill)
@@ -340,28 +340,28 @@ AnimationL5 = AnimationL4
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p6 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p7 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p8 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_l_ph3p6 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p11 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p12 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p13 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p14 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph1p1 animation_addr
mva #2 LumberjackDir ; left side (kill)
@@ -373,31 +373,31 @@ AnimationL5 = AnimationL4
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p2 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p3 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p4 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_r_ph3p1 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p7 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p8 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p9 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p10 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph1p2 animation_addr
mva #1 LumberjackDir ; right side
rts
@@ -409,31 +409,31 @@ AnimationR8 = AnimationR7
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p1 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p2 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p3 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p4 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_l_ph3p1 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p7 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p8 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p9 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p10 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph1p2 animation_addr
mva #2 LumberjackDir ; left side
rts
@@ -445,31 +445,31 @@ AnimationL8 = AnimationL7
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
mwa #gamescreen_r_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p6 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p7 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph2p8 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_r_ph3p6 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p7 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p8 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p9 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph3p10 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_r_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph1p2 animation_addr
mva #1 LumberjackDir ; right side
rts
@@ -480,31 +480,31 @@ AnimationL8 = AnimationL7
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
mwa #gamescreen_l_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p6 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p7 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph2p8 animation_addr
jsr RestoreRedBar
waitRTC
WaitForSync
mwa #gamescreen_l_ph3p6 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p7 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p8 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p9 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph3p10 animation_addr
waitRTC
WaitForSync
jsr branches_go_down
mwa #gamescreen_l_ph2p5 animation_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph1p2 animation_addr
mva #2 LumberjackDir ; left side
rts
+14 -3
View File
@@ -9,7 +9,7 @@
;---------------------------------------------------
.macro build
dta d"0.00" ; number of this build (4 bytes)
dta d"0.01" ; number of this build (4 bytes)
.endm
.macro RMTSong
@@ -25,6 +25,7 @@ display = $a000
.zpvar temp .word = $80
.zpvar temp2 .word
.zpvar tempbyte .byte
.zpvar SyncByte .byte
.zpvar StateFlag .byte ; 0 - game, 1 - start screen, 2 game over screen, etc.
.zpvar PowerValue .byte ; power: 0 - 48
.zpvar PowerTimer .byte
@@ -172,6 +173,7 @@ DLI2
nop
nop
mva #$c6 COLBAK
inc SyncByte
pla
rti
DLI3
@@ -314,7 +316,7 @@ right_pressed
; death by lower right branch
mva #>font_game_lower_right LowCharsetBase
mwa #last_line_r lastline_addr
waitRTC
WaitForSync
mwa #gamescreen_r_ph1p1 animation_addr
mva #1 LumberjackDir ; right side
bne LevelDeath
@@ -367,7 +369,7 @@ left_pressed
; death by lower left branch
mva #>font_game_lower_left LowCharsetBase
mwa #last_line_l lastline_addr
waitRTC
WaitForSync
mwa #gamescreen_l_ph1p1 animation_addr
mva #2 LumberjackDir ; left side
bne LevelDeath
@@ -1000,6 +1002,15 @@ KeyReleased
rts
.endp
;--------------------------------------------------
.proc WaitForSync
;--------------------------------------------------
lda SyncByte
@ cmp SyncByte
beq @-
rts
.endp
;--------------------------------------------------
initial_branches_list
.by 1,0,2,0,1,0 ;
BIN
View File
Binary file not shown.