From 8ba2ff8e9717e32432f39e58c0a9d10ea73acc85 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 29 Jan 2018 00:11:25 -0500 Subject: [PATCH] mode7_demo: update bouncing spheres --- mode7_demo/mode7.s | 41 +++++++++++++++++++++++++++--- mode7_demo/mode7_demo.dsk | Bin 143360 -> 143360 bytes mode7_demo/sprites.inc | 52 ++++++++++++++++++++++---------------- tfv/sprites.png | Bin 2484 -> 2472 bytes 4 files changed, 68 insertions(+), 25 deletions(-) diff --git a/mode7_demo/mode7.s b/mode7_demo/mode7.s index d7db1361..7496b16c 100644 --- a/mode7_demo/mode7.s +++ b/mode7_demo/mode7.s @@ -326,6 +326,38 @@ draw_background: ;======================================== draw_sphere: + ; draw shadow first + lda FRAME_COUNT + and #$0f + tax + lda gravity,X + + cmp #$5 + bmi high_shadow +low_shadow: + lda #>sphere_shadow1 + sta INH + lda #sphere_shadow2 + sta INH + lda #sphere0 ; 2 sta INH ; 3 lda #Q$ zo2IdN&}1_SvPgY3)S0#emKS+ROmQyNxgryqSc{e_rqd**G2mb+Y0U+LohDNV-Q9cd z7vMknqhsyu%)9&E^L?J(y?bw-_p`f=V|?Qn-&f+)W*9Pfi8K9fqmZ60wB##V6cW}z zVV@x62*TF|p-u3b1Z6dvRqjPI!V6XfpjJh|&7$JQyG6y0TSUc+v8Wu!t)e30JyLmR z?#)E5rZT2-h{|F__IGBbUcRHU=>9?B&6UbmrH)QZ=Ix~WHE2e$p;bbTRdJDzX9B~W z?`Sm!o7B_orp;*gO|;ql?Duju7NZ?QK~nqV?P9vAhu%I$4N}Eg!SArits|9ko0#4^ zu+e$S;7nDDNQYx+#(UyccKbIn)G{=!W;-+SXhzdEOUd?s7Hq%Qa{hotLHR+o-0w ziawq2enGDo^Pw~5P^*1fon>uO)=;A|USv7>DVLD#BH!4It1 z>vCiqZ(gs7~4f$Fa5=E`{^=fxiC!ekZy5 zU918gj|b>1s|ApjNdY1Sh!l>XDsatnzwi z0NQ53KKxIpe#V+&)ievcnRvMVYnK8ON+;cJEY-S*NA3 zx7IL7%~eS;3aM(}-ubks+8;@P)FL&SL8|KUz%?SJd62p;0aDfAt=9;CEdf%??2AI` zGxH#|b`ePZwcYz*JfyxHfz%@mQoptUQb{KXkeb6FmDB`MiIxDVi5i2{m?;LSwF@CN z&MlfjYaxTw*D0h9Fi53=36MGxhSbvpQmK{zsiRRyJL^G2~l)OZeNtCVhlS!1Wt7-WkTIpY( zNwls+qc@P<)Zga|f6a>Qrlu{*p;oD&^YPTzq6i722$@D0C=MaJ2txism$QNaBdH_6 zNNx!*u3*3@{qm5VTM;;O$jNaP(p*oyw`>8(RLldJPa)lHBQ*gTq9uS#qQ*cbW{QDK z#X^vYbBlsZ1p^tWxHpwd&eQujQh%lQ_Ouf!kZ4!qAqFJUnO>JEW(}mi`0fq6QQmD0S6#H2=Q;J@H2>Ih)*nlfImcE?r%rl z_kW6mfImiz=c0b^&4+-(y^VM14LXC~!2ZJlu5%*wy4WdPOE(HX!%kt~$l-@H(8w7z z#uTI0s59z~1|x4Y8coJjW14Y^aj7w#2Rz4X_!M5t>v%mM`R1wVfwT^59k*P%oWEh& zt8)O%ktAbg0FXb&O8$l6;pgtY`zYi%P2h_y_grs>Eo2=V zXn44sGn;r`uh(h-&}j8~o;OJs@5_^3+Vf!Gr$4z(%LSy<`vug@D_;%Prips(bvjQ)B*d zN4g~lT729A&?4SBl|tm_%pb6{Ku&WNa;U1%{kqL`spZwUyY~#7bsqrDldRcI8*zPL V-wU;zWHt>+N1BCWf`=Qs`XBoYiWUF> delta 9679 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 Bb=d#_ diff --git a/mode7_demo/sprites.inc b/mode7_demo/sprites.inc index 520b6168..e14d9279 100644 --- a/mode7_demo/sprites.inc +++ b/mode7_demo/sprites.inc @@ -62,42 +62,42 @@ sphere_offset: sphere0: .byte $5,$5 - .byte $00,$b0,$b3,$b3,$00 + .byte $00,$b0,$b3,$b0,$00 .byte $b0,$bb,$bb,$bb,$30 .byte $bb,$bb,$bb,$bb,$33 - .byte $0b,$bb,$bb,$bb,$33 - .byte $00,$0b,$3b,$3b,$03 + .byte $bb,$bb,$bb,$bb,$33 + .byte $00,$3b,$3b,$3b,$00 sphere1: .byte $5,$5 - .byte $00,$30,$bb,$bb,$00 + .byte $00,$30,$bb,$b0,$00 .byte $30,$bb,$bb,$bb,$b0 .byte $bb,$bb,$bb,$bb,$bb - .byte $0b,$bb,$bb,$bb,$0b - .byte $00,$0b,$bb,$0b,$00 + .byte $bb,$bb,$bb,$bb,$bb + .byte $00,$bb,$bb,$bb,$00 sphere2: .byte $5,$5 - .byte $00,$30,$b3,$bb,$00 - .byte $30,$b3,$bb,$bb,$bb + .byte $00,$30,$b3,$b0,$00 + .byte $30,$b3,$bb,$bb,$b0 + .byte $33,$bb,$bb,$bb,$bb .byte $33,$bb,$bb,$bb,$bb - .byte $03,$bb,$bb,$bb,$0b .byte $00,$33,$3b,$3b,$00 sphere3: .byte $5,$5 - .byte $00,$30,$b3,$bb,$00 - .byte $30,$b3,$bb,$bb,$bb - .byte $33,$bb,$bb,$bb,$bb - .byte $03,$bb,$bb,$bb,$0b - .byte $00,$33,$3b,$3b,$00 + .byte $00,$30,$bb,$b0,$00 + .byte $30,$bb,$bb,$bb,$b0 + .byte $33,$3b,$bb,$bb,$bb + .byte $33,$33,$3b,$bb,$bb + .byte $00,$33,$33,$3b,$00 sphere4: .byte $5,$5 - .byte $00,$b0,$bb,$bb,$00 + .byte $00,$b0,$bb,$b0,$00 .byte $30,$bb,$bb,$bb,$b0 .byte $33,$33,$3b,$bb,$bb - .byte $03,$33,$33,$33,$0b + .byte $33,$33,$33,$33,$3b .byte $00,$33,$33,$33,$00 sphere5: @@ -105,23 +105,31 @@ sphere5: .byte $00,$b0,$bb,$b0,$00 .byte $30,$bb,$bb,$bb,$30 .byte $33,$3b,$3b,$3b,$33 - .byte $03,$33,$33,$33,$03 + .byte $33,$33,$33,$33,$33 .byte $00,$33,$33,$33,$00 sphere6: .byte $5,$5 - .byte $00,$30,$bb,$bb,$00 + .byte $00,$30,$bb,$b0,$00 .byte $30,$bb,$bb,$bb,$30 .byte $bb,$bb,$bb,$3b,$33 - .byte $03,$3b,$33,$33,$33 + .byte $33,$3b,$33,$33,$33 .byte $00,$33,$33,$33,$00 sphere7: .byte $5,$5 - .byte $00,$30,$bb,$b3,$30 - .byte $b0,$bb,$bb,$bb,$33 + .byte $00,$30,$bb,$b0,$00 + .byte $b0,$bb,$bb,$bb,$30 .byte $bb,$bb,$bb,$bb,$33 - .byte $0b,$bb,$bb,$3b,$33 + .byte $bb,$bb,$bb,$3b,$33 .byte $00,$33,$33,$33,$00 +sphere_shadow1: + .byte $5,$1 + .byte $00,$a0,$a0,$a0,$00 + +sphere_shadow2: + .byte $5,$1 + .byte $00,$00,$a0,$00,$00 + diff --git a/tfv/sprites.png b/tfv/sprites.png index 8c12d3b55fa833d4bdc216a66d758dbcb3faada1..6474a5fd84bdb4a3d07772ee599200e5c5bfb41d 100644 GIT binary patch delta 2292 zcmVJ00@!;mUEOo- znad1@czFM@lV?Bu?zheU2awrJ&a>&e=MVIQie5bS$$Xr2p@PLhFf#&X4!%1RCtI*A z>mG=)jG3l+A|#nD1xPJf~>Xq9*L&+k8ca`xiaOHmAi zmH=Qms(@Yiy}euZ;_gI%7()tNjv@flo;Mp&RiFSiZU_K1k5uXGDz@AVG5;tVKkrqQ zYe2co0sQoe06?b?4Pzx3z?eG? zh^P~^h=1^rtpO?vViWAw1t1B%0Lc7}4}J{?AU>hE z!Z-ntdLN!Gb^t)}qyaM{GhkMao)Z)RfB>N80s!Fo8pZGc!04PzE&y1D;b_2~uU@=H zeq8{@E*VR&t`Y)a0mva{<0!}nPz5l$2auy}xqoRKT>xGaNS(iA7)#U3vqcdF*4g~S z0VtE`3UWM}I-P$g02K@Xzm&B(F^+)sm}bL>x`I@Z{RjZu z0H_fN0BthC1_dbR$fDzAcek=gb&Rb3(lpTkZG(;5`S-1-jE@*Z8Lz91E8dTE(ZXhOx9ZhD4;@k z4JbKpEuCm~g8^-C0f0;ZfLgV40B#c~`R@hFQQ8am0!TZRPlZ|l3IgCn0WPk`+w29( z(bx;H*q#w#P(^mJ1JS230H|j1ZvcSx6?^LID{Uv@V93V=p|=A97L04{57onRED2>=OywZ;+vmk0K1 z|8oF*d2jD8r4niT1%RCgbO7MWxh??cx*l07J^(Zu0Bit2l>f>(c}-xe0H_nB09IEz z1fWM4fcF?kSPi(9vjrraVV_7afYs$M%H?lyCa_v|OB7E)LcxMa(=YSaGzI`_ng>7y ztH9O2zkfp9W}+8h{C0MU#{TAb+Kigs2`70Ps-j&WB@!S;LJY=fJYLddPIl+n!kH9?C83F-*bZ5tgi;3763%`h?qcH zv6TCAm_Wce!EClg1vLqkh>AyX!;4`E&~a1+oXCn<4eN0y-6WCzx)k z{j>uxoF9IjOy3UxB9~VS6n_94N&tYVzsm?(0vOh`JgpgOJ_sJG1t|cSntvG*z;GUr)ARmO zKw)7JA(025I*h&v_%3D(0E9rRFo+32kqBWGh`tZt^{zrF696Fq*hNu3lv@MX$?#YM zD1z_+WZVp;X#@<4f<6F*6Z9AL?Nf4H3rTA{t#vIZ`Hu5je&2Bp0RWtl>5dr;fCl_i zd(agCMY4-wU2U9Net%g)0RtJxKn609*oY!o+~0N?os;7x89SF8RMS;Q9Zo--vaTOG zqw+ou%8}X3I63p^;(;6H#?g9#_i@mT407!mk`JeTHa@$42=abDZYGd9aN`mc9ppqzek(;7d1M&-RM^?>~L z0f0eNqq^Xu!Y+bPFK%QDCsd-j?wnZ)zE_Ig1(;UaGBUG+P7sA%FywkE(Ex~iQXUlE%zA4A{vQ+un}Fv{ z?KGgR;-g>{aX*;Z+>J1Zn)JJQ{*8v~_5mos|8=nJR!@Au76byh<$urDlw|0otm^;( O002ovP6b4+LSTZHwf8yz delta 2304 zcmV+b3IFz}6SNbMePA2}DJCJcV{`xj2^UF3K~#9!?VL+!8%G#`$1B^C8(WGJa*kQj zmQq?LY;K{T!xnrfjR`229*W69fgXwpG!uNWC@$R?x1@!XY@rZ(iBVG$nnIy!s38fM zAX-CDZMu=&7=LJHtcR`n=6}tv(E_j|GMrN;hxVq5Ag(gLHaeF$Ja!?r046rl)jijr zxy)dQyZ0SEdG6Eie%tJS0GZ9?Je$6I{vdxq$rq1)G9M>hs9>geZ~?$Ud{S|R zaRMOqK0H_K0D$6217=2Mz-&HxPEY^<0)VOo0KoG#is1o((K(r10I&?h(SSW)y?CA6 zTmZ%{8B4FO5&~fX$RTFqD98s;1u(h?plPHn(|>$RD?8)p0`QtZ>ii|cSejm*Es7|x z&gLHuK$%WgYic73KyC5?*a8Rwv7si~-U3jbJ%921d`keRlhS5Myi|EZhS0Xn07?#kQvP!} z003pG-V#6o6~b#k$$4q%gpU^#CSZ?yZvxm01OTX2I|tx4fs+4TpkYU#MGrvQseCHb z0#FbDCkk+J-QQ*}AX;s$=KydXWCKu~#}F$!KR3dG^0I>6b4gg$PkQacj_yEvt0I&f7QT{6n z@|wU_0Z=DM0j#d{5diNokgytXOS1(eoME3xFo4zNFUsX_aVBu}mMETpgj9kBk)~hf zuj>o|)O8Pl3RZz@e}Dg!xPU$Y5O_|o6@Y7KGlQOT0IYZd63$RA0Oi2>69Ny&{0RXU zfXdw~^U3+-0^SkJ48ZrCpq~cljT(RnTtkzK1t5P%BMDJGA^_l{>=cv-0Pj8L1he?Z z7Q>DL25Qs*@!3#9RF41|zF>Y#hLQpBn1D0?AOIdoi0Tm?{%ij3&9I~E`hCv{X0yH; zfLZ_$)gxj8X~k0R%V7cm=LECa78TS$0ICfDPaZ>%!w2}C6ZCk1aFP(k6Ff}Q;eAyu z7vO(7C)h<2?*VY14qui8fPF^Fb0cGz7X8qTF#04R_>5Zw%^ z&lS+A$UDJwQ|+f6fZ^Qm>ty=0FP{18)ni>8{eFyN0=ZNXP#?f*L~cpZP>Ehzbp^ILx3aSj0h zoR#T{84Q39{8M|-6#zxD55v0JIJJNLvV;N#GLV4`WFWB-MY6cR?J_zi$3-%BE;*>C ztByLHet68faqz6l`#2~^W;5gD%%h9@Z<_ax)C;_igKlJyYtN8;cpa#01aTLqEG0`M=0&mpbxIojj6ak934{+v}M|s~TSe}2G*Z^?2gW@6B z<-hc2zk2|XcbxY=kZ*Xuo~4B3%9*9$Yo+A70MklaMrL-<38JtIhFni28UT?`%7en2 zS#M3i|Bb?66Y#vKod&d3d=#uA?mIJ^yAcLalYTePztM2rJ^%&yzYdn&>WL57f