From 7481834050321c58211a17b799c5650a0e35adf7 Mon Sep 17 00:00:00 2001 From: pkali Date: Fri, 6 Dec 2024 10:57:06 -0500 Subject: [PATCH] cleanup --- averybreakout.asm | 59 ++++++++++++++++++++-------------------------- averybreakout.xex | Bin 10447 -> 10382 bytes 2 files changed, 25 insertions(+), 34 deletions(-) diff --git a/averybreakout.asm b/averybreakout.asm index a2c149b..c512210 100644 --- a/averybreakout.asm +++ b/averybreakout.asm @@ -43,12 +43,11 @@ maxMemory = 7 ; number of saved pixel positions maxBrickLines = 14 ; maximum number of lines of bricks to be eradicated .zpvar xpos ypos .word = $80 ; position of the ball - .zpvar color .byte ; color of the pixel to plot .zpvar deXpos deYpos .byte ;position for deletion - .zpvar dX dY .word ;main loop shortcuts to the table values - ;.zpvar dx dy .word ;delta + .zpvar dX dY .word ;main loop shortcuts to the table values of delta ;xpos, dx - "static point precision" - [dx+1].[dx] (big endian!) ;this static point precision is emulated with .word calcs, just a result is the high byte + .zpvar color .byte ; color of the pixel to plot .zpvar currBall collisionCheck racquetPos MyClok eXistenZstackPtr .byte .zpvar xMemAddr yMemAddr .word ; address where to store memories of the current ball .zpvar temp .word @@ -61,13 +60,13 @@ RMT_zpvars = AutoPlay+1 ; POZOR!!! RMT vars go here ;--------------------------------------------------- org $2000 MODUL - ins 'art/muzyka_stripped.rmt',+5 + ins 'art/muzyka_stripped.rmt',+5 ; my RMT 1.28 on WINE is apparently broken. I lost some hair here (5, not 6) .align $100 icl 'art/rmtplayr.a65' ;--------------------------------------------------- .align $400 font - ins 'art/Mild West.fnt' + ins 'art/Mild West.fnt' ; https://damieng.com/typography/zx-origins/mild-west/ dl .by SKIP3 dta MODE2+LMS,a(statusBuffer) @@ -87,13 +86,13 @@ DLracquetAddr0 .wo dl ;--------------------------------------------------- dl_level - .by SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8 + :8 .by SKIP8 dta 6+LMS,a(LevelText) .by JVB .wo dl_level ;--------------------------------------------------- dl_start - .by SKIP3,SKIP8,SKIP8 + :6 .by SKIP3 dta 6+LMS,a(StartText) dta 6,SKIP4 dta 6,SKIP8,SKIP8 @@ -108,7 +107,7 @@ dl_start .wo dl_start ;--------------------------------------------------- dl_over - .by SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8 + :8 .by SKIP8 dta 6+LMS,a(OverText) .by SKIP8 dta 6 @@ -123,9 +122,9 @@ racquetDisp ;-------------------------------------------------- statusBuffer dta d" Lives: 5 HS: 000000 Score: 000000 " -score=statusBuffer+33 -HiScore=statusBuffer+17 -Lives=statusBuffer+8 +score = statusBuffer+33 +HiScore = statusBuffer+17 +Lives = statusBuffer+8 LevelText dta d" entering level 000 " OverText @@ -133,7 +132,7 @@ OverText dta d" YOUR SCORE: 000000 " StartText dta d" ," - dta d"GAME BY PIRX & PECUS" + dta d"GAME by PIRX & PECUS" dta d" MUSIC by ALEX " dta d"press start to START" ;-------------------------------------------------- @@ -193,7 +192,7 @@ JNotFire and #$01 ;sta HSCROL - ;pos print +/* ;pos print lda racquetPos :4 lsr clc @@ -205,7 +204,8 @@ JNotFire clc adc #'0' sta hexDump+1 - +*/ + mva #0 dliCount ; mva #13 VSCROL ; FOX gfx mode only @@ -278,7 +278,6 @@ skipSoundFrame rti */ sta DLI_A - ;stx DLI_X mva #$80 PRIOR lda VCOUNT @@ -1253,10 +1252,7 @@ brickcolorTab jsr RASTERMUSICTRACKER ;Init - lda dmactls - and #$fc - ora #$02 ; normal screen width - ;ora #$01 ; narrow screen width + lda #@dmactl(standard|dma) sta dmactls mwa #dl dlptrs vdli DLI @@ -1689,18 +1685,17 @@ Numbers .byte '0123456789' lineAdrL :margin .byte marginLine - :maxLines .byte >(display+40*#) - ;:margin .byte >marginLine - :256-maxLines-1*margin .by >marginLine; (display+40*#) ;just to let the plot smear on full .byte ypos - ; $E000 is an address in ROM - the trick to avoid spawning new balls! + :maxLines .byte >(display+screenBytes*#) + :256-maxLines-1*margin .by >marginLine ; (display+40*#) ;just to let the plot smear on full .byte ypos bittable .byte %11110000 +debittable .byte %00001111 + .byte %11110000 RNColtable ; Right Nibble color Table .byte %00000000 .byte %00000001 @@ -1721,9 +1716,7 @@ LNColtable ; Left Nibble color Table .byte %01100000 .byte %01110000 .byte %10000000 -debittable - .byte %00001111 - .byte %11110000 +;-------------------------------- clear_vars_start dxTableL :maxBalls .byte 0 dxTableH :maxBalls .byte 0 @@ -1750,7 +1743,6 @@ xposMemTable :maxBalls*maxMemory .byte 0 yposMemTable :maxBalls*maxMemory .byte 0 -clear_vars_end ;addressess of the tables with snake pixels xposMemTableAdrL :maxMemory .byte 0 @@ -1763,6 +1755,8 @@ yposMemTableAdrH ;table for keeping the count on the last position to be deleted from the "snake" memCycleTable :maxBalls .byte 0 +clear_vars_end +;-------------------------------- statusBar dta d"rc$" hexDump @@ -1773,10 +1767,7 @@ dyDisp dta d" balls$" ballDisp dta d" " -marginLine :40 .byte 0 - .ds $400 ; buffer for RMT player - .align $100 -;PLAYER +marginLine .ds screenBytes ;-------------------------------- ; names of RMT instruments (sfx) ;-------------------------------- diff --git a/averybreakout.xex b/averybreakout.xex index 16b8204c2c20149e14a8c9566578c84f1d249b6e..2e75a5862191d818e284a058edab8547805b3ffc 100644 GIT binary patch delta 2321 zcmc&$ZD;5P_l zFxIh2C;72u*=Nf+IWL0)q4-RnlnW6qj3yj(3n^2Ay<_CV@?l#>Gt)7qY0HN;gOUAD zP8(+w_GPg9@bLfr-|u;T&;Rb%Z!ErX&05XAv~H`m+E~ZBvu@tf^nS0O=|1!189Idh zau2FJLlf)oao`rfXYBsfURi8ym+$XhvwZhQa;pC5{xiy}Rw^jRt<k(PQ?X~fIQ-`aC{vO9p#5#-}3gIWXVAANu*LvpBV zkUl55FuFKM87V2CU-{8pKl*7ub(nrZrqLydee*SG1ynhO`X zvK<}o2TbeD2t0^>F8^)MzJ~F>;BPBc9+Mm-rVZOw&|Uc}dk>%5PHBgH!JhtT&NIFA z!LHM(>7^^^kUy#=g>t>mjzWI)6F+ojc664HQWo;$E&7z8j0?B9PlKU;XbBYK0{$~n z2Ib3pyIi2C(mhyt8-oX3mH)7}jYYEKxl^&?;M%1EjkPfY_%A*)x)fT@y4CpT3~7t2;^-_9-D+YqMG|UqbdDs| zWYKbMH>S*=QX~cI9GR2Zef!vM*}bnVw(B%(2o(M}9Nawmj1%pJSn>1N88QR0vt*W9 zi3sY~GnJH2)hA5#$h&LFrwy*9Rnf~D4TUUO@VZ)l27Rgv-f}TswnDMs^{*GQF|d?d zmbWdgqO)Rwj(akui#p4lQ0KVTTeBJNncjkLReJrRI$-zcELU;bsr=6%NcPefj^=j6 zD*N#z>HcfU)|{_e+i!SnWh?sqfF=rtbu%GsiUNqW2|&T`4XEiNYYeR}m5)7P9%W&p z)wmJ}tD-UyRugY4a#&3&H^N%=Z#V~itlSA1Rp50e1PbMH2*f7SraTO-&9Ba@;&Mh! zE}z?(;`0pZ4EU?F5UQrYU7dr-kLG>W;Bgtbhhqar=wm4+pzc64KXlvpSI{y5w=pI} z)i|75;+a#6!>LslvQN$|3exr&MO7f+8hPrwlY-H_edglY#V@7rr9uqITR2AuS{eB0 zB6lxZ>cUzVE;bskQcmi^rB1AMn(!5Xow(G2wGI;=1lWN~?O1C!;qw67amkA{uL+$1 zy}0DTQOf0QiU;oFKcku(Z+LL#Ylcs2z#CqiIb9v(EVNrXY{|Wu@1q|sFqTEuBGuhR*9Yk<(rAR9mL?aWBuLfr7vk;0dq< zI09r;Mkc~QBcLG+pil05jNeH$r*Ef~T3C!n&rVM2AySToo*XFrz-J6FLD-2&HkMGP8$#->ghy<%i~YhOg1prp7nNjlZBzF}i_$wdfx9*#Ja8OqD;Y zd~SA3^GXJ{uZA8Z=jkxH5PamP0T2V*q7%d+av{eoh{8fbZfSN$riHToHuqW35vUV| zuO`gPO|n`-AS>H=dv&YXDN&F_L0y?j2=L&!9$SbDh4WkI4a?Sr;^A_2 z@nx8Ej=*MI&NdI9j0>E7D+{)j=`<^E*y4Z?r_WPDUTE_eS4ZUj`j{pDw delta 2410 zcmc&#VN4t68NNFkLtFw517c7Tt^{M7C5zKA_#gq!VWN~?vqbBp-nh&+X>8?3Bce+C z)z-%L7mVS8$(ewio#a|ME0^}FSo~?Lp49zFq(dV;RneqMsg!CNYt_o~q)cn4blH1$ z(vYdr{!H5a`1C#R_kQp5-upiH-uY7>ow{aol0)lur_D~<*XtSI@{GF{dre`>Ku?3nuf@PWHjw1ho!$ZjdvHt^L=Xn zG$AhaDdL2mgasb=bU?fwQbd2FwYw3LMt*QO%#PAWj?$xyO3=qf>6$@6DuHt}GorSL z^@x6JL?y&a9DOH9e-)&c2i023Z-JqSqx7kx2UfX2qZQz{gK$P4WZ3nAoApSmM~18H zpkEpUtTtIUo*$t%1~uo${sytt)H+N*S&nHgbB}3bUmsw<9I$vF;2cn?ZB<_SE9t4` z!!K4z9KgUnHz?$M@ul}XrxWp|tMs!$LA%72n*t8{)gZkRgj}s07Z^b$Ax@ssF(*g4 z4c9-|GuC^7A-nNbSt9 z&ht2;$9X)fzs=*Qev8L3{eww7r{A5#3B8`j^Lj6jlX^Dfo+gc2lTrye8@j5$5yB}Q zhw!q#7{V8HDTJlV3&jgpiz$pJuIL30r}e@w@QQ-{5s%v|EWx&0%junVm}D zS+^3Mn#WNkHkHINC1z09b|IDc%RHWkHHni_sil>CR;p?BhCQdDAV7SdXFnTy!b$Ci zyR(n(&fz(@o4^UxhG)TiB2@|b*!+TJp14woJx;I?S7!aB*;Y*BMStVoBIKzo`pZV7 zYy&cO^H?z*hLiH%E7g-mqporS8TX|u7bW3(K}ov0t|wBiCvs!YR&xE09k6>U;i@=o zH~!}(2yaHj2Mmb;nZV7oI5i2dEL5;sV5 z?DA6i_(SEXBotbS$ULvi%5h$a{#t&US7P!l9t7^HRUgQAC(Ro0x;qI5`GZN=_F89h zJzrS3yr9f3rB;35Q5U{Z?Nju%+;ZyLHh^rjUjtcp) z4f9*JWf;ECRZdVM(6#6jU5h~1oW=CRo(Zt4_DE1bfQ569eYZ+gK5lTHs>p@1l`4iP8_Mnm5ZzX8Vw;t)*e+da^RgZ$ zvyVx@$4}t+Rvg+~XWCT~$8(PN_A!}1P;m547o+WGL|8i+aX+Iy&4`_hMl<5mjMl-3 zG^6cf#17{CKB=KS7(U44i5v~1l<3h8QU3coDDe=?12I6Uz2adi_i}zf{cw?>&Xbhb zaEsm?QBR0(gw)d_4ynHp7eneVMJbdg+)({#pBxUs{Fo->b0Ig(5HN@#7$aavhd#gK zFh9u?Nzft41;heUk$b~DND>4IS^_P?6#D#*&-_&EI=zvUyJ0cEd2)QJJ}l<`l}9ks z`McJO3u+yXt9Be!9XLY2HoO&4BF2RI_pPWBHJZ#X)OW=Ur`p6U2O}1^LDI(1wQr`K zK&n0?hi~!QMgIV#3%H&aN^wq$bH*TaJ|M=qQjF7L7OVpp<4RGkGRVgQKdp>tdC8jD z>M%~L<9H=UtSzUv(k8XFqO2I4X;;!l)clgZhv;`vU?=@26tDvjK1`IuUswKB+XjCn zt~>A)1iJ{qR@q(0)k)ZnR<|^4$M9;7Sj=#XS+00->mu;18avDPj7#MchO<18-|^}1 zxw2!!^)=fu+K}OXl(j|!PHR~XuT*h$bt~zgCvSak-n)KS9@sn$u%TayHc)U{i17N9n)Ps}e`?Pno(uRKXE#SVsV%9(& z*V8GdlCE$9AqYySRDj)ae7$+^?izcPvkB6n&MxZqZRzKo{o&jH-)H=PMZf;D{S?_u tkd)0{