DLI timing fix and level/timer names

This commit is contained in:
Pecusx
2025-07-15 10:05:07 +02:00
parent b2b3eab4da
commit 4c2188f204
2 changed files with 48 additions and 141 deletions
+48 -141
View File
@@ -12,7 +12,7 @@
;--------------------------------------------------- ;---------------------------------------------------
.macro build .macro build
dta d"0.76" ; number of this build (4 bytes) dta d"0.77" ; number of this build (4 bytes)
.endm .endm
.macro RMTSong .macro RMTSong
@@ -30,7 +30,6 @@
icl 'lib/ATARISYS.ASM' icl 'lib/ATARISYS.ASM'
icl 'lib/MACRO.ASM' icl 'lib/MACRO.ASM'
display = $a000
.zpvar temp .word = $80 .zpvar temp .word = $80
.zpvar temp2 .word .zpvar temp2 .word
.zpvar VBItemp .word .zpvar VBItemp .word
@@ -265,7 +264,7 @@ Power = power_bar+32+10
gamescreen_middle gamescreen_middle
.ds 32*18 ; 18 lines .ds 32*18 ; 18 lines
screen_score = gamescreen_middle+9*32+14 screen_score = gamescreen_middle+9*32+14
screen_level = gamescreen_middle+1*32+12 screen_timer = gamescreen_middle+1*32+12
;--------------------------------------------------- ;---------------------------------------------------
GameColors GameColors
.ds 64 .ds 64
@@ -470,7 +469,7 @@ is_PAL
; time up ; time up
bit TimeCount bit TimeCount
bpl time_stopped bpl time_stopped
jsr LevelUp jsr TimelUp
time_stopped time_stopped
; power down ; power down
dec PowerTimer dec PowerTimer
@@ -1093,22 +1092,13 @@ DLI_L2
:2 sta WSYNC :2 sta WSYNC
mva GameColors+c_font3 COLPF3 mva GameColors+c_font3 COLPF3
mva #0 DLIcount mva #0 DLIcount
mwa #GameOverDLI1.DLI3 VDSLST mwa #GameOverDLI1.DLI2 VDSLST
pla pla
rti rti
/* DLI2 ;
pha LastLine
; end of chain
:3 sta WSYNC
mva GameColors+c_font1b COLPF1
mwa #GameOverDLI1.DLI3 VDSLST
pla
rti */
DLI8
pha
; character set change ; character set change
sta WSYNC sta WSYNC
LastLine
mva #>font_over CHBASE mva #>font_over CHBASE
; set lower colors ; set lower colors
mva GameColors+c_font1b COLPF1 mva GameColors+c_font1b COLPF1
@@ -1116,7 +1106,7 @@ LastLine
inc SyncByte inc SyncByte
pla pla
rti rti
DLI3 DLI2
pha pha
lda DLIcount lda DLIcount
cmp #5 cmp #5
@@ -1143,90 +1133,7 @@ this_line_score1
inc DLIcount inc DLIcount
pla pla
rti rti
/* DLI4
pha
sta WSYNC
lda NewHiScorePosition
cmp #1
beq this_line_score2
mva GameColors+c_font1 COLPF1
mva GameColors+c_font2 COLPF2
:12 sta WSYNC
mva GameColors+c_font5 COLPF2
mwa #GameOverDLI1.DLI5 VDSLST
pla
rti
this_line_score2
mva GameColors+c_font1b COLPF1
mva GameColors+c_font2b COLPF2
:12 sta WSYNC
mva GameColors+c_font5b COLPF2
mwa #GameOverDLI1.DLI5 VDSLST
pla
rti
DLI5
pha
sta WSYNC
lda NewHiScorePosition
cmp #2
beq this_line_score3
mva GameColors+c_font1 COLPF1
mva GameColors+c_font2 COLPF2
:12 sta WSYNC
mva GameColors+c_font5 COLPF2
mwa #GameOverDLI1.DLI6 VDSLST
pla
rti
this_line_score3
mva GameColors+c_font1b COLPF1
mva GameColors+c_font2b COLPF2
:12 sta WSYNC
mva GameColors+c_font5b COLPF2
mwa #GameOverDLI1.DLI6 VDSLST
pla
rti
DLI6
pha
sta WSYNC
lda NewHiScorePosition
cmp #3
beq this_line_score4
mva GameColors+c_font1 COLPF1
mva GameColors+c_font2 COLPF2
:12 sta WSYNC
mva GameColors+c_font5 COLPF2
mwa #GameOverDLI1.DLI7 VDSLST
pla
rti
this_line_score4
mva GameColors+c_font1b COLPF1
mva GameColors+c_font2b COLPF2
:12 sta WSYNC
mva GameColors+c_font5b COLPF2
mwa #GameOverDLI1.DLI7 VDSLST
pla
rti
DLI7
pha
sta WSYNC
lda NewHiScorePosition
cmp #4
beq this_line_score5
mva GameColors+c_font1 COLPF1
mva GameColors+c_font2 COLPF2
:12 sta WSYNC
mva GameColors+c_font5 COLPF2
mwa #GameOverDLI1.DLI8 VDSLST
pla
rti
this_line_score5
mva GameColors+c_font1b COLPF1
mva GameColors+c_font2b COLPF2
:12 sta WSYNC
mva GameColors+c_font5b COLPF2
mwa #GameOverDLI1.DLI8 VDSLST
pla
rti */
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc HelpDLI1 .proc HelpDLI1
@@ -1643,7 +1550,7 @@ EndOfStartScreen
iny iny
reverse_birds reverse_birds
sty birds_order ; set birds order sty birds_order ; set birds order
jsr LevelReset jsr TimerReset
jsr InitBranches jsr InitBranches
jsr draw_branches jsr draw_branches
mva #24 PowerValue ; half power mva #24 PowerValue ; half power
@@ -2350,7 +2257,7 @@ next_line
jsr CreditsClear jsr CreditsClear
mva #$00 birds_order ; standard birds order mva #$00 birds_order ; standard birds order
jsr LevelReset jsr TimerReset
jsr InitBranches jsr InitBranches
jsr draw_branches jsr draw_branches
mva #24 PowerValue ; half power mva #24 PowerValue ; half power
@@ -3125,7 +3032,7 @@ branches_anim_phase ; from 0 to 4
.by 1 .by 1
score score
dta d"0000" dta d"0000"
level timer
dta d"00", $1a, d"00", $1a, d"00" dta d"00", $1a, d"00", $1a, d"00"
EyesPhase EyesPhase
.ds 1 .ds 1
@@ -3254,113 +3161,113 @@ ScoreReady
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX+9 sta hs_posX+9
; time ; time
lda level lda timer
sec sec
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX sta hs_posX
lda level+1 lda timer+1
sec sec
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX+1 sta hs_posX+1
lda level+3 lda timer+3
sec sec
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX+2 sta hs_posX+2
lda level+4 lda timer+4
sec sec
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX+3 sta hs_posX+3
lda level+6 lda timer+6
sec sec
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX+4 sta hs_posX+4
lda level+7 lda timer+7
sec sec
sbc #("0"-'0') sbc #("0"-'0')
sta hs_posX+5 sta hs_posX+5
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc LevelToScreen .proc TimeToScreen
;-------------------------------------------------- ;--------------------------------------------------
ldx #7 ldx #7
@ lda level,x @ lda timer,x
sta screen_level,x sta screen_timer,x
dex dex
bpl @- bpl @-
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc LevelReset .proc TimerReset
;-------------------------------------------------- ;--------------------------------------------------
; set level to 1 and PowerDownSpeed to ?? ; set timer to 1 and PowerDownSpeed to ??
lda #"0" lda #"0"
sta level sta timer
sta level+1 sta timer+1
sta level+3 sta timer+3
sta level+4 sta timer+4
sta level+6 sta timer+6
sta level+7 sta timer+7
mvy #0 PowerSpeedIndex mvy #0 PowerSpeedIndex
lda (SpeedTableAdr),y lda (SpeedTableAdr),y
sta PowerDownSpeed sta PowerDownSpeed
jsr LevelToScreen jsr TimeToScreen
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
.proc LevelUp .proc TimelUp
;-------------------------------------------------- ;--------------------------------------------------
lda #"0" ; for speed lda #"0" ; for speed
ldx level+7 ldx timer+7
inx inx
inx inx
cpx #"9"+1 cpx #"9"+1
bcs next_digit6 bcs next_digit6
stx level+7 stx timer+7
bne to_screen bne to_screen
next_digit6 next_digit6
tax ; "0" tax ; "0"
stx level+7 stx timer+7
ldx level+6 ldx timer+6
inx inx
cpx #"9"+1 cpx #"9"+1
bcs next_digit4 bcs next_digit4
stx level+6 stx timer+6
bne to_screen bne to_screen
next_digit4 next_digit4
tax ; "0" tax ; "0"
stx level+6 stx timer+6
ldx level+4 ldx timer+4
inx inx
cpx #"9"+1 cpx #"9"+1
bcs next_digit3 bcs next_digit3
stx level+4 stx timer+4
bne to_screen bne to_screen
next_digit3 next_digit3
tax ; "0" tax ; "0"
stx level+4 stx timer+4
ldx level+3 ldx timer+3
inx inx
cpx #"6" cpx #"6"
bcs next_digit1 bcs next_digit1
stx level+3 stx timer+3
bne to_screen bne to_screen
next_digit1 next_digit1
tax ; "0" tax ; "0"
stx level+3 stx timer+3
ldx level+1 ldx timer+1
inx inx
cpx #"9"+1 cpx #"9"+1
bcs next_digit0 bcs next_digit0
stx level+1 stx timer+1
bne to_screen bne to_screen
next_digit0 next_digit0
tax ; "0" tax ; "0"
stx level+1 stx timer+1
inc level inc timer
to_screen to_screen
jsr LevelToScreen jsr TimeToScreen
rts rts
.endp .endp
;-------------------------------------------------- ;--------------------------------------------------
@@ -3487,7 +3394,7 @@ draw_branch1
iny iny
cpy #(5*32) ;5 lines cpy #(5*32) ;5 lines
bne @- bne @-
jsr LevelToScreen jsr TimeToScreen
draw_branch2 draw_branch2
lda branches_anim_phase lda branches_anim_phase
; now calculate start screen address ; now calculate start screen address
BIN
View File
Binary file not shown.