From 8a4e65b3658fdc0f1301225ed98fe2be651c88bb Mon Sep 17 00:00:00 2001 From: zbyti Date: Mon, 5 Oct 2020 23:17:35 +0200 Subject: [PATCH] A8 CMC Player with sample music --- examples/README.md | 6 ++++++ examples/a8/cmcplayer.mfk | 24 ++++++++++++++++++++++++ examples/a8/data/cmc_player.rep | Bin 0 -> 1724 bytes examples/a8/data/echo.cmc | Bin 0 -> 2732 bytes 4 files changed, 30 insertions(+) create mode 100644 examples/a8/cmcplayer.mfk create mode 100644 examples/a8/data/cmc_player.rep create mode 100644 examples/a8/data/echo.cmc diff --git a/examples/README.md b/examples/README.md index ce61bbc2..147371d0 100644 --- a/examples/README.md +++ b/examples/README.md @@ -92,6 +92,12 @@ how to create a program made of multiple files loaded on demand * [Horizontal stars example](a8/horizontal_stars.mfk) – horizontal stars done on one missile +### Music + +* [CMC Player](a8/cmcplayer.mfk) – CMC player with sample music + +* [MPT Player](a8/mptplayer.mfk) – MPT player with sample music + ### Benchmarks * [Grand Theft Antic](a8/grand_theft_antic.mfk) – ANTIC impact on CPU depending on the used graphic mode diff --git a/examples/a8/cmcplayer.mfk b/examples/a8/cmcplayer.mfk new file mode 100644 index 00000000..e8e82239 --- /dev/null +++ b/examples/a8/cmcplayer.mfk @@ -0,0 +1,24 @@ +const word ADDRMUS = $a000 +const word ADDRPLA = $b000 + +byte stop @ ADDRPLA + $62d + +asm void comm(byte register(a) a, byte register(x) x, byte register(y) y) @ ADDRPLA+3 extern +asm void takt() @ ADDRPLA+6 extern + +void main(){ + comm($70,0,ADDRMUS.hi) + comm(0,0,0) + while os_CH == $ff { + if antic_vcount == $10 { + antic_wsync = $e + gtia_colbk = $e + takt() + gtia_colbk = 0 + } + } + comm($40,0,0) +} + +const array player @ ADDRPLA = file("data/cmc_player.rep", 6) +const array music @ ADDRMUS = file("data/echo.cmc", 6) diff --git a/examples/a8/data/cmc_player.rep b/examples/a8/data/cmc_player.rep new file mode 100644 index 0000000000000000000000000000000000000000..53043b402cabee67ff23e387486afe4815758577 GIT binary patch literal 1724 zcmZWpeQXnD7=Q1h*Y>v23LDH#x(@>o18D9RHK$8}w=yrNR1 ziZHhN4Gd2z!}zGG>Fe|7$&L+9Vkcpp5Y4+a5Q#+Ed7=}J^VSp6U)@iR3p-$-7hDH@ zK3^(dk+~i^Cwu@&MzBo?J0TIJ7e?PoLcUWn*%-OZ=9(kazc zno+5#Vqx>R%80iEFdIt^^cb1^pjB#zar-|)H?$(&z*dk0M&-P;mb#_i(uaEh5w0nG zEVMb1*6efK6^Lg>Jm!S`=E;&5IAJ>ouRvg67aZ530qECHhN^{EAr>OSZW!1D#bR_X z#OFCx7_=k_ZX%J1Nd_#E6_UEtjJr=K!-I^}VekkfDa`PxGx827Jr3%m7k)3)!PIm^ zst+@g1Pi2AklH}*1*sBZ5uNAxkbD0wkX|ylCqk685m1cKX<;-iQpIQ{J*4ydbUtx1 zbRac$x?j5Xaq(n`vEQ9Omdbm>C`jXFzT=HF@lO*JbXRtV;_3Qc7fZF?N z_xFOZW@LB=6wD&cdr%Fj9-s=BT{hLcf6Yk3BNlPe0Z^&(MxIG!Za5&{2`(lvR+o{Q zjBf+0R3&nWca~*EIy5IS=Ez8m5b$5V>_2;1-U;fx>km6RRPGv@?UGl5@~gZZzIz3f z8-ujm4a%lm2e=Kv{_EWxc@IR&M#E>ZTm9O%TS2kO+fYR7@D_;nz}0P#E|)ZgFJ95q z=Ws&#c}j9aZ7kHCn54yDjUJcn2TQv8CUQ&VAB+y_Ax*eFf-;NzD0hp28_U7INm~y24p7$T+)(hs8u?Y@D7*0}>2gGig}e!jIx=g`wHrqCqHS!T zwSze0UQi0VRzZc(3ppD&52Zy$T5c?j+lQ{ARyC*@`f|7%iZRzJ^tZzN(F4N{kiFn@ zF`-$7IuWgbI1$Zp+9%TSmS`Oe(#N&@OUNO=5jo_W!QED}DRucaP@8VFfzpt(0yfnO z`L%`z!RAAPB5U;2WkW;fybyCuO7rn;&ecPSQmSLK4k*z{3SGr^wqkY80WoPVbW%@Pj@AR3v?X@b0qDzdH{<{QvOFJzN8y5|T2Tp?IhA`NJN8u8 zmx^^+TnwMc&xNyOB1u}%+E$okL`Js4!ufEPnkaC=L{XfO>p-wf)CME7!ALn6(Ss2! zKu9C=h3U1bGu4;s$J~d)ai>@R^S2+qDP&UTW2fFbcKFa6`*v;b-mw0K)vH!|mMwYu z$=2q@k2f|fe5|f^!TjoZb04wW=2TTy@K%eNGqDU!;hl=lo#`L1ex5Zj-VYyn3o%H~ zhSvkzyI=NqtzOmHv9!ITt+i!wQ)7dJkpBUADxy5$`>a!zKFf?bY_^y$acj9-rZc8z zP4`(~53p|bKJzKl&unBCG56>q9jA}b-Skqrn*NKrPUWc!lt8^r1*jJ(57kW7P#pC) znIb=tYvfDv2^l7X ztQiMKvlO?e<*A|Sud3B@FeNw9!;9%jqOP2zRW2ADR~`gP7ZtXURqqI+*=Q!4yeKr$ z$*i!L4hB`mGffGnvcW_!l|1NV@Mat&eg?3jRLCk{$)j0JmNQ0n(yQEbav(C!b6LNx F{|m-E50U@? literal 0 HcmV?d00001 diff --git a/examples/a8/data/echo.cmc b/examples/a8/data/echo.cmc new file mode 100644 index 0000000000000000000000000000000000000000..8b1bb51afa9637e6101d145e117bc972d1a4abd9 GIT binary patch literal 2732 zcmb_d%ZnUE7_XU~?Z@;cW)fdXd@Qqnfa2~|DAw+j%@kudy`64`5ibjR@*Yt5dRP|C zq9%}l2ZIy#m5q21a`7M@J$m&ZvN0+uO7n5@(>Q~j@S5?1ye2*?m z(OVF6=8YR$TU$4|9KO8V`9@3&G2U)p z+7Ta#?f#3?pYHBl?+Ox=*P|2V?s!{+Mu_otyDu<*ycI_-*WL`~W}D6Gg z?uQRgPnM2lyY*woA3M=F`S_DhJoWUM)2E+#{_s@~8WkZ`{E(`CcvbinCBlFzGN7sq zu8IJ1tDKM*Wp9KJ#^mLi>`h>-SCdOpl9aNX47rdp-G1M?Pu4^EUVTfqRB5H;L@C;g za&ofV$|y}DvH>TFmMl$CoRAGTfR)6MQ85}vRzwR}=PYDa7i+usktIx)QjpnC)Z`@7)X>;#VqBza+F zd6vRTIjoc?OI8XQVjCjRP6{hYGnmfSF*$%0L(V&SR>HoH(pH;b)S*fF%N`h*EEqoq zn0&yt1ml3ziiwSsVBH=mtp8Q%FmD&k58J~<>;ygpm|B45qOtyR)??>Lmg6ESaH#hp zY?l!`nH?Fgr6?_ip1b!LpmXxfcokeMgNp$W9ri_MFkt6qQqOqj{e;)r$z`*=M5rRP zbQmFI6+%{pBG9BYwREhZ(okuk5AZ#oeAKArQw6932a+AY|8Oe2vdtlDr%~zv>zoic zA24L;rc}oRd4L;@!mFO<zb(ydZLJx2`!wd-PZ~!ms^juajp_gWu z>qVKnfPn>2u@C(36B2kk7M={=H1sGM9&~g>+}V5hBQm4YaR-!j(0ah|sDndl#0mmd zbJQjpXXe`vl^8(PR+5;6Js$f>8##L~Om$pX29Yl zxnWAO4x+PDAddDz-;UGV0SYY0IlPdlrRHiHr0cQXXT4G?QEHx>7JvFd5C?$_Lhi#r z#wA!rK|I)pPqcqI{u7z|j#3dJ1e_%0zXj(uz=_S9AjO%CHqM#kx5^qKWJ(stWN}>H UD!-icLEkcGS9