From 6c794b855e5c4ea755f1ddd5cb329c9851d022b0 Mon Sep 17 00:00:00 2001 From: Rob McMullen Date: Thu, 29 Jun 2017 12:39:29 -0700 Subject: [PATCH] Added direction flag instead of using signed bytes. This gets us to 255 horizontal positions for bw sprites --- multitest.dsk | Bin 143360 -> 143360 bytes multitest.s | 78 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 51 insertions(+), 27 deletions(-) diff --git a/multitest.dsk b/multitest.dsk index 6a57e27c69fce9e8d108171d2ee9f98b0b23b067..8d654b45aef064c9ed53ed32dc9f501bf2e38254 100644 GIT binary patch literal 143360 zcmeI%e{36P8Nl&#lh}DfA?-$4GoW>Urs)EdUu%JmdTYl#XjxVo3L8JpUALy8Z0Wi( zXN`kXYN$#N5@{2w&_pyfRa^i@&WQ|LZML=DwszWA8tZ?&uYS}XZyy~S|NH2BVuiHBO=2pWzXQp;Nvis4;_H^v+{Mx>+KmJ75{wEJSb?_Tc zr@Nmy)RVD|n;!#Bmqxmu&fPw8HJxiZ87&mLhtD>(M8tmvnu^XrkNB26_@>C-xYV@x zPROV=;!T-RMQZq5o5ibg)Lzl2CNR0?Tg7W7lX4gDt+`{k<8+4^U!OS@s{pl0*i%Og zf?6srR2sh${|fOJnHs(%f2YEs{M6D>^^O~2VzvvJufuJ{|Uf%!H1J4}{Dvm04 z`~h)hw#BhfT&a4ef=x?K{YisiZE$4j2Iw3^yeM-_F%X=yR_81V&M|b3b5MRROukpU z&S?nF`LoVB7MxRI&hGi|zLB%{OGQGCVF)$xw5Y2zn3t>OZ3uOcb`Pd6z{`#6an(Z7 zVqReGpw3kbN{hpRxwg)&V#B->K^C@qMe{ED3Lqxd=mFJ4djl606Y4z;p(ff}eqxot z#zem!*V!DG+M7fGmReN8dxOb|Rwz_M%zijS&o?c~in`(?BI0*)o(ZqaE9Ur%>hfk0 zI8m<_|Z6Wkl?d<0QN@FJK%)=eP#}Im#m;76s>=*5f?q9LUq(S@tHkeBIhK#5s8o zuqZEA&BYMvMClR@PN!*;D$iA&y1Xr^oSV>dPz&jDuRsCg+B#P)sLTDx3dqgs+^K6* zr>Qg1#%Yz(6FAYvX%*PxR$#?9Z`4I%2sP0j@9wJ-K%*Gc6Ma@5$ReziJ7vRWEYyey z8cts8D^9#dyrL)LPCOvzsLuI)P>#PS)0;)$M7?71H!6HMBXCiEQ8$XXo}Mby9`~cC zWGS6(Czt)BR!rRTRPUONZM)OQBlBu%-G38KM4YItndkj;kKNbw-O$0Fk$Y3gku9mD z`Cux&>*YsQKf3L)lY9Q%G37ql`E2ouOKq%ozi|DQHRT^sB@3A>0O@-G@>mIXk)wDL7g-9wF zEr?Vu7N3|Xj{Q|-?HS)yXi6=(ZG-dwR~M#6uk|msCy4&Z*#0nLiGTf`4yu=6H#d=Rc?u9Y< zCQ?5{RPi))pZJBW%<$(H|5>n0d|&qQrc{1Skk74tY89i-O=|dDW8w|DnkrJm=juO5 zlihn**8t2bliGS=~o^9_TQ$yi4+)^{_f zq9cXw(<4UQ$+}e5Ts&;A>i>i3T|}&xGS+W1)~MI@ml^9f8LOzep3S~s#EX~8nu{^7 zYjxkDMBS*D(I8{KjCaUbAmbJp@09T_8H;7yF5^8imdJ?9ST19wjMXxXd9~5{hWT%W z=B+V{n?WJ#VxEjz8PTZR^0&!QJO6eWssI{gs5)3ELzTm=GE`M8lA(&@HW{i$nq;U_ zdAAHzG4GY33TLSdRX@vQs4`O5ZdFaIWT>KQmQiI<8Cezjw3+SiYg7!YsP^|Z6=N!@ z{awvheyT;(w${i{yIUv2JH?~Xm<)BU3mFX?<15#+uKUP_jmuWGyzhe_{n%Z)UA}tl z`#*H&$3Lmt70q{i;KS=bu}QayEy=BIJHGHG-QIog{o5XF|KgW*d(Wpn{n_oGf9NZ^ z-F)9?9{AkOhrg;@-A}i=pKf(O-Rge2)%|p<`{`Eq)2;5OTjeJ|H~r7}^6&O4eZ)>r z4g56rQ|}i)EBWA7pGC_3di`}j-RgbQt=>1?>V4C#>gV2^`tz(8|0U7W{V^~LWEon1owIz-Y(-z|Pvk{WoU;{9F1@8sX+1kTz|-6Nha8Gq`g zisLiytyOL;kH6ytKKb2B?r{3t}yM}JaSC8@J4 zj+uA7?2JE9;cq&A<#da0m%RDZ%5lf>_hy%PAtbd5Q$IBv>VHmEfAG7WhmpCNUHH?G zk6yk%vn-ASoox5xkh literal 143360 zcmeI%eQZ@{9l-H(`*!=_Tww#(ZWAuBu9Q`+ubaBb-N5alom57LZoWKaI9j$z8Jlaz zz1;=5b0Hkp#+i)iVzaEICDBMEYGbN5aW1!Je-y)ve_+BN3jsrFF+>-`sOOyLc@Fo| zb2zsXKM?;mhQVq?PctsT<#o*;% z_M^K;3hwr{#A=hXBs|A5InF`pbT5t5VR9CP=e%ih_J`+0*IX%{Q{(iC++c%R`_%r_ zi>X&@e*e>_$1Ap{#$(%44b97huG=yPz3##62{;bRL_&>e2|bZsQ4yLuWODU{dd1$* z+`P#hF-7kS%2kV@C+~d`)Wj}3-5Kvn5jC7Msklk9gf6sy_G#Z8(aRk$g*uDl{)<;c z2$r5y())lb7HWyP4`-Qrdqtp;w@yh@=4#_v9prhWWKum|6`_TC1N(Dw7a?%oaWQwJ zxM;tu(0&mMEYw{m%jD{V{?LsY7pqLJ-l!qDWB$TUst!Hg*CudcG4YzpNqVP@kep2> z$CVGs(e)?28HMENg-ePh;o}@OpY`MLoGaJ7<`Sxg>JbZq26Gm_C|6IQCwKy0Zc^3e zpE`Slvjb;?c)59#t0&asp0Yx6vnKbLI+)9XrQI`6A!uVa*Uj32X?F((et4bGo5T{j z(6o2=HERW(N!5uVQ|JroKot>`yT(1=s8gFeslY?Om-v2pY0q4lS zURdH!ZV^F+`je7g6`_SX!xhabdN?b3QgyQ~J!$vS6H=ySJoQ03Y@@nY!(@7VVP|T* zt}`WX>|DF$rH9UKt$%pOw%5C6Usarm6&X193&Bovv8*gTMFmcz^3u1{ok&QIKI5ow zT1d`u1LAJnqMVlYe9Ojs%cgwG=6qtQOstTJluQiD#GC21I+=JQEr+bJKg!mn(+y*9 zNc%21c3j$P<=6?Cs~LMs=HiK&nZo4XbynkaqTcya-&xsu!^ATSuRC}`);n2!=Vfby z^M1*}w`5`RuX60HTt8Fa9Xohdwsp#}^ZMO+*|t;4p_*4_{-NT}lmC8h@|+yC>|e>z zgnd+w?isQUx*z!8siX22N9D=nz_g6%n3>Yit)o4;{Jtu2>orgGue!Z`Ywv-Xi|<^B zRa918c<16wRb@rYy&IZ+rB}~_WjqbtBYvxJqn}&+XTcuvyy_GB;N+*4G3xxJM%Nk_ zZ>!mqks4jA{~%F%%dgJjVGk;vr+X^x6VFBnd#T6eZNu3!jk)abo->Pdo=O*-*MGXNxf=H+UU1G;^~2e2 zZ?(If)t<-?ynm`MgHY{@3Kdl&Rg;P`MBeo-%sR13$B2${ z-?!_S)KTtx{WaH@F}$kTt$owizG2!szqtP1uXcR>o2I?%?k|01NBir1(S8iU;xd zAGuZhq$qWcH!A*ZPG~9q_}j#bMdM$wlv?qhh*Y&w&Vy&rIR5XwzG7%~erhz-Jf}w2 zI(v5({rAtisZNTY&57ChnmsP;qSQHVjxtt!mpD)~e$b-&vtK8EXHxzD{PJhNMZ9eO z7_vF)#I(wYUU5G)8fulX_fe_z`KsuT z{^s!4W~caJ#OCmy1*1*<)M%)AOEvcjv not wrapped + lda #1 + sta sprite_diry,y + lda #0 + sta sprite_y,y + bpl movenext + +move_down clc lda sprite_y,y adc sprite_dy,y - bmi flipY cmp #MAXPOSY - bpl flipY + bcc movey_end + lda #-1 + sta sprite_diry,y + lda #MAXPOSY - ; Store the new Y +movey_end + ; Store the new X sta sprite_y,y movenext @@ -122,23 +156,6 @@ moveend rts -flipX - lda sprite_dx,y - eor #$ff - clc - adc #1 - sta sprite_dx,y - jmp movey - -flipY - lda sprite_dy,y - eor #$ff - clc - adc #1 - sta sprite_dy,y - jmp movenext - - wait ldy #$06 ; Loop a bit @@ -193,16 +210,23 @@ sprite_h .byte >BWSPRITE, >BWSPRITE, >BWSPRITE, >BWSPRITE, >BWSPRITE, >BWSPRITE, >BWSPRITE, >BWSPRITE sprite_x - .byte 80, 64, 33, 83, 4, 9, 55, 18 + .byte 80, 164, 33, 245, 4, 9, 255, 18 sprite_y .byte 116, 126, 40, 60, 80, 100, 120, 140 sprite_dx - .byte -1, -2, -3, -4, 1, 2, 3, 4 + .byte 1, 2, 3, 4, 1, 2, 3, 4 + +sprite_dirx + .byte -1, -1, -1, -1, 1, 1, 1, 1 sprite_dy - .byte -4, -3, -2, -1, 4, 3, 2, 1 + .byte 4, 3, 2, 1, 4, 3, 2, 1 + +sprite_diry + .byte 1, 1, 1, 1, -1, -1, -1, -1 + .include colorsprite.s