From 4c2188f2045d62aba5b99149a885f94db177b1ff Mon Sep 17 00:00:00 2001 From: Pecusx Date: Tue, 15 Jul 2025 10:05:07 +0200 Subject: [PATCH] DLI timing fix and level/timer names --- lumber.asm | 189 ++++++++++++++--------------------------------------- lumber.xex | Bin 37616 -> 37615 bytes 2 files changed, 48 insertions(+), 141 deletions(-) diff --git a/lumber.asm b/lumber.asm index 276b194..d980439 100644 --- a/lumber.asm +++ b/lumber.asm @@ -12,7 +12,7 @@ ;--------------------------------------------------- .macro build - dta d"0.76" ; number of this build (4 bytes) + dta d"0.77" ; number of this build (4 bytes) .endm .macro RMTSong @@ -30,7 +30,6 @@ icl 'lib/ATARISYS.ASM' icl 'lib/MACRO.ASM' -display = $a000 .zpvar temp .word = $80 .zpvar temp2 .word .zpvar VBItemp .word @@ -265,7 +264,7 @@ Power = power_bar+32+10 gamescreen_middle .ds 32*18 ; 18 lines screen_score = gamescreen_middle+9*32+14 -screen_level = gamescreen_middle+1*32+12 +screen_timer = gamescreen_middle+1*32+12 ;--------------------------------------------------- GameColors .ds 64 @@ -470,7 +469,7 @@ is_PAL ; time up bit TimeCount bpl time_stopped - jsr LevelUp + jsr TimelUp time_stopped ; power down dec PowerTimer @@ -1093,22 +1092,13 @@ DLI_L2 :2 sta WSYNC mva GameColors+c_font3 COLPF3 mva #0 DLIcount - mwa #GameOverDLI1.DLI3 VDSLST + mwa #GameOverDLI1.DLI2 VDSLST pla rti -/* DLI2 - pha - ; end of chain - :3 sta WSYNC - mva GameColors+c_font1b COLPF1 - mwa #GameOverDLI1.DLI3 VDSLST - pla - rti */ -DLI8 - pha + ; +LastLine ; character set change sta WSYNC -LastLine mva #>font_over CHBASE ; set lower colors mva GameColors+c_font1b COLPF1 @@ -1116,7 +1106,7 @@ LastLine inc SyncByte pla rti -DLI3 +DLI2 pha lda DLIcount cmp #5 @@ -1143,90 +1133,7 @@ this_line_score1 inc DLIcount pla 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 ;-------------------------------------------------- .proc HelpDLI1 @@ -1643,7 +1550,7 @@ EndOfStartScreen iny reverse_birds sty birds_order ; set birds order - jsr LevelReset + jsr TimerReset jsr InitBranches jsr draw_branches mva #24 PowerValue ; half power @@ -2350,7 +2257,7 @@ next_line jsr CreditsClear mva #$00 birds_order ; standard birds order - jsr LevelReset + jsr TimerReset jsr InitBranches jsr draw_branches mva #24 PowerValue ; half power @@ -3125,7 +3032,7 @@ branches_anim_phase ; from 0 to 4 .by 1 score dta d"0000" -level +timer dta d"00", $1a, d"00", $1a, d"00" EyesPhase .ds 1 @@ -3254,113 +3161,113 @@ ScoreReady sbc #("0"-'0') sta hs_posX+9 ; time - lda level + lda timer sec sbc #("0"-'0') sta hs_posX - lda level+1 + lda timer+1 sec sbc #("0"-'0') sta hs_posX+1 - lda level+3 + lda timer+3 sec sbc #("0"-'0') sta hs_posX+2 - lda level+4 + lda timer+4 sec sbc #("0"-'0') sta hs_posX+3 - lda level+6 + lda timer+6 sec sbc #("0"-'0') sta hs_posX+4 - lda level+7 + lda timer+7 sec sbc #("0"-'0') sta hs_posX+5 rts .endp ;-------------------------------------------------- -.proc LevelToScreen +.proc TimeToScreen ;-------------------------------------------------- ldx #7 -@ lda level,x - sta screen_level,x +@ lda timer,x + sta screen_timer,x dex bpl @- rts .endp ;-------------------------------------------------- -.proc LevelReset +.proc TimerReset ;-------------------------------------------------- -; set level to 1 and PowerDownSpeed to ?? +; set timer to 1 and PowerDownSpeed to ?? lda #"0" - sta level - sta level+1 - sta level+3 - sta level+4 - sta level+6 - sta level+7 + sta timer + sta timer+1 + sta timer+3 + sta timer+4 + sta timer+6 + sta timer+7 mvy #0 PowerSpeedIndex lda (SpeedTableAdr),y sta PowerDownSpeed - jsr LevelToScreen + jsr TimeToScreen rts .endp ;-------------------------------------------------- -.proc LevelUp +.proc TimelUp ;-------------------------------------------------- lda #"0" ; for speed - ldx level+7 + ldx timer+7 inx inx cpx #"9"+1 bcs next_digit6 - stx level+7 + stx timer+7 bne to_screen next_digit6 tax ; "0" - stx level+7 - ldx level+6 + stx timer+7 + ldx timer+6 inx cpx #"9"+1 bcs next_digit4 - stx level+6 + stx timer+6 bne to_screen next_digit4 tax ; "0" - stx level+6 - ldx level+4 + stx timer+6 + ldx timer+4 inx cpx #"9"+1 bcs next_digit3 - stx level+4 + stx timer+4 bne to_screen next_digit3 tax ; "0" - stx level+4 - ldx level+3 + stx timer+4 + ldx timer+3 inx cpx #"6" bcs next_digit1 - stx level+3 + stx timer+3 bne to_screen next_digit1 tax ; "0" - stx level+3 - ldx level+1 + stx timer+3 + ldx timer+1 inx cpx #"9"+1 bcs next_digit0 - stx level+1 + stx timer+1 bne to_screen next_digit0 tax ; "0" - stx level+1 - inc level + stx timer+1 + inc timer to_screen - jsr LevelToScreen + jsr TimeToScreen rts .endp ;-------------------------------------------------- @@ -3487,7 +3394,7 @@ draw_branch1 iny cpy #(5*32) ;5 lines bne @- - jsr LevelToScreen + jsr TimeToScreen draw_branch2 lda branches_anim_phase ; now calculate start screen address diff --git a/lumber.xex b/lumber.xex index 562cb2a20dbc60f2d4f5fecdecb53edd47c2c893..2253d9b8d4f21f084d0e6bf4374ecf2ea8962824 100644 GIT binary patch delta 3630 zcmZ`*4RBP|72bWj`C&uI8k4w2z?&bNL=ue3w1^6eiVCcVwEhr&d_ev-q>1?>AqmZr zB>}F4I)!e9*Er3 zQ;<4vc0e}+HsIL$nLMPWE0*_*{;e&Ae^LNR$;YWR+Ey=`6Vqr_K|dC%7<%GF6ITFcxS8tt zL=K8kuAcrF3S5a>?HS>zh(SAxmuoM{D7oYa zGl-+2!q`rJSFt#wn6K}Nu76s&_87KlY=qnZ>Nr7_IeC^DZuzJUCu&YJ7BpuvHt``z zW5uMra)q&x3|AK94$frvK_(HCo~Yc2s^&vZ>@D(jWsdPO$*e+U1%9OOK~6t z-j5daqU)4nX%d^ufjN6op~r!G;m7Xaz!}MLqlfLnJ1F|R5B9l}!aeBYOLkFI(~oxb zqp!Va7wNBhI_tXRWq!%$IMK^q!Oz%P6JBFyv&q$}yVpQubs&kq>BzXzn4z+~^TfQIxQ{Vi6&=Y3pkG6;z{*QVXVCxtadT}S&tu$3wm z^eoZaq7R~=WyUsf8R$M7Nzzjzv-Mfhfb7;^bY$(72ABz+T9u-d!%(PFPIW6h42kG3 z`y6lXMHgP>qq-NyIOefQrU1<6qMY^n9d9n&i&pYwaN@0S^7~mT-!e#jDpw2SkQgoN zn&`+PH)^uGZXQJI{AkMntT|$5D{;_1(_Y8zhv-b`=NwwM*mj6_^~UP5tGkaXD;=EuGG(oZEBba;V@?d=48q6fd+XCKSuzC2kyp zK;*XCyEnxr`)rIj9q|Qj$5;I#hvFlyi8kTFSs3F!}A=9kMInK;%itF6N>HHQ{4FfC)X99+~(NQ>3yu^ zc6^mp9E#83We&v)i7}yA4(qwWPtMN-xIO&hP5m}<&;-4qRHD48ZS=|no*pX;$8OiK z9c`eFd-|AX+J1q`XdHk~i?He75 zs$)_RobA1X@3{l zWy!?`rQKj#;Lld!l3ZTCtc#6F-K<&ane>3GTj~Z^4=)kqn%uz*X7F|IvwlCV2c6E$ zeP!;T;Z(`cdoDfIYYn&2^QEbtHfsIi+-bA+MT`yo5_;(Rh*^I$y5`+B3JzGgSaw}W zl)6*o-B%1!55TC5EPExZtBqdRNwss+4A*gCWOp#_RKbwXwaU3Y*;Rw8ScVy`6?TsG2wEbA=LMpFjvU$>hlOgpB0kD|d8- z`KxRWbl`00^109n=W792aeh>QFN{J@2X&NTu*XM>w68)YZ9?gwkpe9@J|;u~%`&X; zIQ!h~d{LxOON9bDVlNT^Cfcde&UYvQ^fWp8ei2Dc!vn^3B+#$~#t$2wU0&1A5Kg)X z_m<`3dVv`vfAkBk(1TWVfE7SLepw#o4HSF_AYLn}ZhUCgYG?!Zw5rWSZdzy#5fmmLH03@q>h)W4{jOa9!Q6f4t-2UW zl7DS;CLdGBZ*dq5hGm^LTe6|lW?R;2FrbJJt@fc7A3AdK(PqJznt8x)$W!qFzbj8o zIO%9id2msF(b}5cjWIRb(7i$Na!lulRu~ zPSjAPhDNfrQf9?9bizp$CyiukCL|mNG#gMSh51A^RjN5J8IWo^QANcPW(}DFRrI{| zU!qb)@ulU!z?YYU0RCt>sN#>8bI0NNJp}%6BOM=aJM|#&Q%}Qn0AvBBj%v1H7{j%bj9RKC z4SQ<(InEfBL1K6Wu=7xzj=ITV;~&3{UZ1-$GAu-YL$5-Z{mD%BIO{fV`ZG zzP@#moN+7L1Z+~=ao3&Oek}LrJv=ZGJMLLs{=dEAL?wl2yoaF10r+I)O$wlLiYutH zjpA~uY^8V`Rkl#Pl`0~|TZq@@nT#QWbw-;xT@pp=Ij6lYi`dAWQhF=f5pybJ+j@ delta 3615 zcmZ`*3vg7`8QxbOY+SMpA;bWB@=y{Daj|rysIYM;=SS1QJ3XD_N3U z63O1pE++?a6IZsYx5G)f3zSYRrI*1L(`;sRF3MP^(_n0!2tMMqS{1EB|FfG!7Te6u z$@#zkJKz8R=bZcB`>ABmB*V$H5`FFI86~gk=f4!%PtSXF2Cv>AOuyuKw=t5SrUfg0 zfSRui;{-Z8|e|!KP!2c+{XU>q%@lF#u;p3$Af+V#}dQqLu zSYNAI$bsi?%$r~Dr6hQ*!+77uV=eV0Tt~DyqX}B( zmC*#%6w+ylqh{3*O7PYZ^dfQGj`S9D7~S2VZZ( zwrywizr!DI%htbxr#_1L4nS2p_b^vV` z(eJ%*%Fl?XupM0^472id4g*p#oUpM-~hxTD_#UmNlcpnvczvDOUv_@EMr?tWwJGJ1CD{fx{ksJ9d9YC|(L?Q{A5iJzh zRIT6EBA1ib zu+|WL>YHNrD`j-XqPpurxwjA&N4`ibc6 zPRH2}^v3gSJl6qZ9FtBk4ZwUN%6aCX<7`m}TFI8d0XM)wAEXwxWsv%0u4c#~FxE#wJ(R-kseLclNXuLGcmSGALf?@u(2?K!o^IHb))b*I3Ey_?nyyijS~` zLGeOcqe85Pn@-LVb$lP;=gf|;VLgN5Bdlgnd<|=2La|+Ym>K{7_pItb6oyZimB1quIYdc^E z|H!j*(x5lx!);zOsSj{U^<6C{&tQjoZ8SwS^$z)4xuEWpJER-Q>(i32ygyIEQ{a~BnFSE?eyM1g~3mxNIX&v7-;Q?1G-wLiaRwBsNd4lOw=Wp$_emkWHozBF3 zC7z(}Oi}+uw`TEK!;NIvX7M%>>jy*UP3i|RHuOvAp-)Fl+Jn(GZ!{8cz{*9E`)VTJ znj-DLs^i-LMkRPjO-4&2dA*6KLsJa*NyFg&VCtFte!siZ`Zdd{nNXwPBG8^=Nn}cH zXF{wVstcMJ?^{@Z0}NGUO07B`MisY*nD8LnakpM8>Oyp*^LkXa#O40WVhn>6b)vv=Z>{<-tUw1uLT-8mHkaP*| zEzJ|E4OGXA(eJeaFIv$IRsj9*-FSpGQ1Bgscn!E>_fMx;;BDQ<`_T+ccP}pQ>JFtU zGkt;0xyl{BzcReS36Nk=g{h0z5(SYL!jaNw34WmZqXGZDzFJl+#f zvXxR8a}_5}-y70b;aB#4*Rqd1&<`8E#7=h!OYQW$@GzS_Vuu~9Cqf+&_7F~aO9X;4 zA_9XuxN>EIen9y^1g7$#2vlyoipW(YlBL?HRj4B4+ljoLL}sc+WIO_B7NFY+%*UNX zb~0WvAWkw~Nw_>}4H*NKWZ3!*Csz{T@5R6nMv6f|xLgdX!n?&B<{EQa7WB(I$fB#G zLVmxzGdd~gm#d?byZYst=;ZExd3SVD*e};cC-eJZmz5nP@Hac0BL{JJ5Md_~s)p}GSsKuC$}3k8$6?PTub!% lxWrXp`a~2r<4)I|marHYU&f9uv{ZTi^jX)v8HUf>{tJZ!Z+!p&