From 7aec32ced56b0454b7a7e0ae9f97285ca93c032d Mon Sep 17 00:00:00 2001 From: Lucas Scharenbroich Date: Sat, 11 Mar 2023 03:42:23 -0600 Subject: [PATCH] Update demo to leverage BG1 scanline support --- demos/kfest-2022/demo-1/App.Main.s | 67 +++++++++++++++++------- demos/kfest-2022/demo-1/build-image.bat | 1 + demos/kfest-2022/demo-1/gen/bg1.bin | Bin 0 -> 53256 bytes 3 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 demos/kfest-2022/demo-1/gen/bg1.bin diff --git a/demos/kfest-2022/demo-1/App.Main.s b/demos/kfest-2022/demo-1/App.Main.s index 73a9dc2..b4ac952 100644 --- a/demos/kfest-2022/demo-1/App.Main.s +++ b/demos/kfest-2022/demo-1/App.Main.s @@ -42,6 +42,7 @@ seg1x equ 30 seg2x equ 32 seg3x equ 34 seg4x equ 36 ; BG1 x-pos +frameCountTotal equ 38 phk plb @@ -101,6 +102,7 @@ seg4x equ 36 ; BG1 x-pos lda #0 sta StartY stz frameCount + stz frameCountTotal pei StartX pei StartY @@ -124,6 +126,11 @@ seg4x equ 36 ; BG1 x-pos pea #BG0Offsets _GTESetAddress + pea #scanlineHorzOffset2 + pea #^BG1Offsets + pea #BG1Offsets + _GTESetAddress + pea $0000 ; one regular render to fill the screen with the tilemap _GTERender @@ -142,32 +149,15 @@ EvtLoop :do_more cmp #'d' bne :not_d -; lda StartX -; cmp MaxBG0X -; bcc *+5 -; brl :do_render - jsr DecRanges jsr SetOffsets - -; pei StartX -; pei StartY -; _GTESetBG0Origin brl :do_render :not_d cmp #'a' bne :not_a -; lda StartX -; bne *+5 -; brl :do_render - jsr IncRanges jsr SetOffsets - -; pei StartX -; pei StartY -; _GTESetBG0Origin brl :do_render :not_a @@ -195,12 +185,16 @@ EvtLoop :not_w :do_render + jsr SetBG1Animation ; Update the per-scanline BG1 offsets + pea #RENDER_PER_SCANLINE +; pea #0 _GTERender ; Update the performance counters inc frameCount + inc frameCountTotal pha _GTEGetSeconds pla @@ -335,7 +329,7 @@ IncRanges bne :out lda seg4x inc - cmp #160 + cmp #164 bcc *+5 lda #0 sta seg4x @@ -355,6 +349,7 @@ InitOffsets ldx #120 ldy #88 jsr _InitRange + jsr _InitBG1 pla sta seg1x @@ -364,7 +359,9 @@ InitOffsets jsr SetOffset2 lsr sta seg3x - jmp SetOffset3 + jsr SetOffset3 + jsr SetBG1Offsets + rts SetOffsets lda seg1x @@ -373,11 +370,22 @@ SetOffsets jsr SetOffset2 lda seg3x jsr SetOffset3 - + +SetBG1Offsets pei seg4x pea 0 _GTESetBG1Origin + rts +SetBG1Animation + pea #scanlineHorzOffset2 + pea #^BG1Offsets + lda frameCountTotal + and #$000F + asl + adc #BG1Offsets + pha + _GTESetAddress rts SetOffset1 @@ -416,6 +424,24 @@ _SetRange pla rts +_offsets dw 0,0,0,1,1,2,3,3,4,4,4,3,3,2,1,1 +_InitBG1 + ldx #0 + ldy #0 +:loop lda _offsets,y + sta BG1Offsets,x + iny + iny + cpy #31 + bcc *+5 + ldy #0 + + inx + inx + cpx #448 + bcc :loop + rts + _InitRange txa asl @@ -457,6 +483,7 @@ DoLoadBG1 BG1DataFile strl '1/bg1.bin' BG0Offsets ds 416 +BG1Offsets ds 448 ; Make this a bit larger so we can just update a pointer PUT ../StartUp.s PUT ../../shell/Overlay.s diff --git a/demos/kfest-2022/demo-1/build-image.bat b/demos/kfest-2022/demo-1/build-image.bat index f67a791..0da0d47 100644 --- a/demos/kfest-2022/demo-1/build-image.bat +++ b/demos/kfest-2022/demo-1/build-image.bat @@ -14,4 +14,5 @@ REM Cadius does not overwrite files, so clear the root folder first REM Now copy files and folders as needed %CADIUS% ADDFILE %IMAGE% %FOLDER% .\GTEDemo1 +%CADIUS% ADDFILE %IMAGE% %FOLDER% .\gen\bg1.bin %CADIUS% ADDFILE %IMAGE% %FOLDER% ..\..\..\src\Tool160 diff --git a/demos/kfest-2022/demo-1/gen/bg1.bin b/demos/kfest-2022/demo-1/gen/bg1.bin new file mode 100644 index 0000000000000000000000000000000000000000..579f830ae5ee4d95eb9644f41efdb3737446433c GIT binary patch literal 53256 zcmeHQJ9Zp94t-mjU^X!4NE6r{suLYA>n)*`=qPk1hgKrjUIrj}Nf4i6{n~2z4Fj=A z0w69g$YOoE^!MNY{?EVu``2H0JJV_M(=SS|-@o78J)OJsNa^|cd1tTt)t{fwXLe+- zClUT1lwQA*p9=r^>FI!8cjG7Yoc6mC;g9$~-vs{!eu{w0uEC7(ga0pipxfW46af1= z-Q_VUH>Y+7K!hLsx30<%Wd1)Ef18uM1nlx9!hg&BOHTGK#u5Ho=D*Q@e&p47PXI*t z!N2G$Pk=oC_nvlW5^qkDep-%c05+StyNmFHe}n(yHvpYWdspKK|LyYM(VzLhY!844 z|LyYM<3I1*jz#!ym;WyOcW=ic{I|=0k3a9nw@-iw|IPBR!hi2}EW&@Y{44zXugClm z0RL^{UyeTd{I9})*Xfv`zrKF&_W@)AWO;z$sS&|DVl&0gF+f0C+8D0pR~+{I9$O25{sQ0AKSG0Q|Sgzdrr( z{9k0RDjg zr$2%JN_#s<{PVbA|Ks!jc&7d4&N~kK=75R+_4A)$>Xa4$UIBsM=bw6C-`_sKO55OH z&&NrF=W<&B^7W6)|1-^w_5CRX`-%qtdOke(c>y@JCh*S>m}(;UH_ShK*C&6d8%S}) zXMpZPm;!*7L`wI)&BA|I>Gu=V@@NK4Zgnpo^WS+?3Z6khvcO*#fKo^N|K#!Di^FaN zO1$;GdHwixcy8~v+FC7d@MAu9PQtqfYp^4^4M5ugl)4{9Fx?-3J<2`)&t5-H*LQck zf>2r<0!H58$NbNR^je`B2FRD?7IA)oqoKk0w+DU_u6%xl{fecA1?i8 zj~I!%9cTVewW7h#_Xp|#xcqzlXe?CzQms$`TpR&a<;WZSg^#`X6aTmfo+b%D-yeYM zKL5)mKy!ZCC5t29s)|ECAMn-&W}~=r%?G^Pw;O>!yS8+H00SKKrB$@XJ|C;`XZ}I^smD(zhgX~hg8qct;i2$-(KV|lFX}SJfDa6SaYjJ{(8Pba2QVr6 z%kFTtKhuw`kaVWUmKQ4{Yg~DQzwlw|v$v1ZU^)h1l@tGb37AJG{}mExcW|Ff`uy8| zOvnA3bPEEYg9Q1mk{v4iXXi3#@z<_P0+l>0{3qmwep(&){y?(p$D8fP;P2=pw@0S{ zU*6y^eDuLN-HRM9RJYcIX|4u&x z{A6aZ3GR_XzON;Jz(2Ou1$oMx>nsl(LoEFB3D6a(3xLPJ(~p6#`57$$fxN+A_@Mr1 zJXJDIjNbR+C!t>Wmm7rljsLDEryo=hM>S#(Tyiu2>3#12e>wxC zEl`a&YkRgvJ3hLN7|82te?G>ZRQ%;RKS56^&wqXpd@414Ru_O4Z*eDHi*kHuCXiRv zb^gm~?_Ty5pMdVIJm&{Wn*W7=NT4O>bqDY%__vompakeN{>r~Q{jmeMuj@bTEzUJ@ zc>##k19@GI^}pvoz8(jDlFv7K3(b}P0DtD6@NeW_EoZQEi3T8&H~7m$+KYb?|KAD! zaN_!i44%yYa{NW!;P=*l8VuiycK!?bM}U;LK$i9gceDlm9Q?1wU-=L4Q#=10?4Qj) zUjlCAKZ@HZP9u3!@6Z46f&}#H_y_;N^2ZxMzCUokb^b?wFUDVR8aw{{53k1~{8;}Z z{AvDwCH$X*|8QN6@c&u-hv8qJ{=5bIzdwWjkp2+=AI1O7^*G{x>bHM<{h#*#wSDSS zng4gUI{%kmk4N~x|9m@bfXX@?t=mz(S+@svB6(BK>v0_J#+?Y?0{&Bctl(d5$yIT1 z9&vFJ$-16~@qs5bKc`=kT>LZ_X89NG%lTJ$b@4F%%aWF!(~n2M!~aI-f;s+W`(pm@ zHDFafivPO_X;BD7_~-a%{Agdyzk+Lu2l3zF=jZgJ2=MTeZ{Ozlm+edWAJIRu^P~r? z#EY&6`JAU6`d|Pe{NQ)gzLftV{$u!;^rxpZqg61%cQpT+K2ttq{yz}wB2fU)I}Eew zB*byZ@qIM^2CuF-gnx}DJ*C-%|5Ng>=r8Z_Z^C~x|9YKL^bdbWVDwA8boHA4^pxi7 zCj3Y9KV1I~nE!@;K1&bwfo8~P5xB@9{@IQN61~ z*Ee(g^SuJJFXrES9|0loOb7etzXxTw0C-9hCGb0HAMqxJzPlyS6?hzW^Y4W}zsE7Z z1&Z*2-%)$a8zU6x)nPQBNeodjpPTt#@KbEc#3z7o4@}@9e0%xV@98V}_VujF|2*v4 zYS#aZgx4mS@^f0<==h$ z7x**p^&9-)e+aw?X#NrY<~csUsp+HwHp0J)|8}mU0Ju1v+s{a19a&00E=f9($rm24lF!&4q_rN#G z)%icdpLy(0K@zh(7Q?b*|KH<}-s?B`3!lBV8HA=5@c(A^e|G*$oDu%*{5Kbq_rZJp zN~&G|nFcuqE&TQR5B@cNhyM<8R}cfUeg5|Vh$eRv+)EM0!l(F6qy%1$g;v17^BiBV z{~hG6An_p@?U!zcA4}yz`F}Y7;z~G;1bC{%mjm#Gag6wXJ81v6l-H$l@Y~Aw z0TAI|I{!6(=)rE(uGfF#=auIFSp@+6EVS25^RMM8l=}jdMSg;R%oZ)D%Tr0v8@0o3mOYGZkT)XpNvM|5oBaJ`4-7s{e6QRfyhtr2y0qSm#31T zH)@C7Ft_|?lficcfnL$u%s*B|DZQ&hutvmd4>6$)1xW= zghEQaT#Jj&FrM-hGeSS|Q}d+dbh%iz_kYn)a&5PBQx-a2Rc}O~{*EB#zckT~V|~?9 zyiDJ5%D>YqMzowRL-9KN!#eWxY%+VcgnvbU`hiRN3|)jn^Q7f;8J15aB@)WQEFstu1PLw{Bf4)R-yt*#dGeDCoOF(~pPnKr&-A2L>9&x3t<#d@; zQi9&8ly!!7*mZLbipHxp!DTW-3jhajlfx3&nWS&H&FY`LR;mO4FskKr8D^k2YG;Tw zQ72~FHeO-6%hT@@7=Mwgw&VfX4e+Nk0FR&RC*9KmPcD9HclF3a=(+8}u5^>XvSsjB zUR_JnPyUP)`0wqZ#Q5j+z1BCnrwblE{M_#8O_ZSLwM)D3Fy{{zf92n^#Ql^n3D5CQ zpRbGXL*KK`euBrf_@Otl+v7i5{FVR7P1H|b0E(QlhvJ<-{o4ZK`AN#(z@vws+dVyY z6nb8}vu6jqJifD9$PLsZ8o_zY<{GSbe@b5WD z_%nZme}4Xl_@VEaXZ+ytrui4&5kwrB+yhACm-r`rulWP`e+>C2U%iyq8QQ_j^Z)4X z{>UKoPmb{q;NPx)IR88TaaG~3en-&oo+}tKh}R~TpWYH`T2hd@k8J9Q~plh zTmQM;)g%9CT)X!_h0FAT4DtJaIRNyU>ys?=ap8ZapY;0#$Z7RdCc7j3s2x1I_zBcV zZ`9shq*Esbf8l@L4sC#nTxSmjvOCfb+9_0zN!`oAQ;QGqhVeD{$NcB#6Idr;DChU^ zKEO90r-z|uFZvNcT!A;ZZSZUU7ureoDtc%8SM0zKZ+s4guLc0?!&?5yCyJhyB0G#< zz&HCl*n$43nZ(h-@cRM4xUc0Oe#6Pgj)EWJhrWX!Q|GuGPE(F?U(3IqNRb`F-}$Za z!4C9wd-~74orMDmVhO;wujLVF&seznVUW72!L^eJ%g+ zdt^sDtntAP{Lt-M|EMzj#<;JY|IYUb-0MH>uf_*E@I$w2{iDjjk8xkiKlG7DcC^15 zpVrsyTK}jr`o*||f7pM*fy%Xi#*UQNn}2GH^wSOGbbGItkme3NeuUqeH}tUMUZ`rHwLP?tY*{|DCB#(#|?7$~{^Trgnu^#AOO^eVtBR>7yp z6V=hGVqN~~b0wVrVJ7O;_aD!1#SeLaU-|Frt6B;G`q*b4lXqnR4(`bxU$SlbTX`$@ z?O}E;{%QvXN`CjH_y1IT76*!c@`~2L??v?aQT;?#^{~1~A987ZkLJG~hvHN-P>!md z-W~dfZN2}lzNu6JK-?Ueo?nX7lvUoS1Aa^e_cdPEuJMS34bk zrk`ej@ZHgOs-|D*bz0be7Y248zQAhAD{m41-N*Xk{cE)&@#Aw@Uz*dWuJ=@Ms(3zi z7eepN!oH&y)qmx!@DJ-E>`|3+*IBX&JDqT1zYhVc?}h*L3&V&f6?%M?oj1t;t{i?5 z^pv!JksqfbU$O;$=bkXWu-n;LUSu%BsUtnU($0s#7tau=|F(~a zfS39$e)9n6@fCJH2!0y?#;^U0hGCQ6gnx$rsH^MOlV6;uqi@>3sPj|ONPi*`TTcO? z$G6$}F#2l%Fn;Zy1(9pE`8~&f)YI>%&ty_h8~9)2pIu+;IDR1g2mr>vn*Viv$Mb*9 zFdi?P0)X+ap8xB7iRb@1J4Z`b{Hyt2=ZP6##Q(Z5TG#0U>9jW?IpbfXyU}kmzc$*5 z+}c`S@vr57C2wYYZwWtPG3!$_pj-Xc;|n`cKfkMfqQv;Me^LKi{nqR2Ry&bjTk9Er z_&Wl}=vKcmzPP^LYR7SDR~5tO1ph|HPDwiLnMa~s`%Uvtn6!VL^P;d3|Dzt?jdp}5 zhaA=iY1+TY`bNK>_4sbI6S=juzTQgL{zV2i`u(EE7j{;jMH2;mQVb7mc{&Y0DMepv%mQ_ z@}%LP_Z#EL*E>Z24FA)+e7+97Yv=HbTuW&^|MPyc{gPg|gBkwW&_|@?7yHHu{*4?t zCF%U