#define _POSIX_SOURCE 1 /* Song length: 189 seconds (189 seconds of loop). */ /* This source was optimized with Findbest of the Bisqwit's Midtools pack */ /*/echo "$0 is not an executable but a C source file. Compiling it now..." n=`basename $0`;gcc -O2 -Wall -W -pedantic -o /tmp/$n "$0";/tmp/$n $*;exit; */ static char*Title="Selfplayer for /dev/audio (8-bit, µ-law)\n" "This file has been compiled from a file created with intgen."; typedef unsigned char by;char*A,*tmp="nesmusa.$$$",*a0; static by*z=(by*)"5pG:6wW6VhgiAbMMghHQAMsjh]akR_m@kQXsZomU6V6V_?4646`P>6<6nsU" "6^6Vk?4V46PW>6<6n@fq;fV9?TUA@>6:ZSqVKZf5XFU;LF56wG:6OR>8NmVfNjUVe];6[R?:bwG>" "Z4MSih\\aiRcmHkaXSYolU6VV;wc5?6n;@>f>RVVEnFiTf5WI[;N6QmHC@OR`nQesTo9oC`ORgnw" "U6f6Vk?VV;^aXSAoS`oRkmXkQ_s@oP`qRw?4V4@V5>R68Fr6^Vf5V5n;5KF?ZaV@BBwWff@l6^Te" "5V8U;8HH?TQ:@^m5QNNpwVwOj5UEn;BG@?NW:@Fw>R6;6mVX;d5b6T;NA8?:GZ@6BwW6fpwVpSFc" "SNkdPaalLdh\\aIScmHkaXSAo@68wW6" "ZlmV6Fe5fT[;fH5h@aQLsBoM`kR_m@mQP>6>6nmU6fU;wh5?@V:@VR>R6lVn6h5e5f[U;:6;6wG:" "6wW6VTpFFT>aiRcmHkqXsAoCaiRcmHG:agYSanRemTo9gCPWf6BVhl5c_V;?45mPG:w:RF6>>oQ`" "s;Vjw?6]wG6ZwW6b?CoQ`sRomHC@Or`nQeqTs9wG:696Rp6;R5aiRc?XR4dQ_s@oP`qRwmpGF4NZ" "SqVp;e5_pV;NFB?Xo4<`WND<6nr58nT;F48?N88@VA=Q6Zpw6>qw5Vrw;Vqw?6swG6hwW6bww6N_" "p5WwV;^P59oGN6=ZS@oQ`qRw?4V;@6wGRV:Dn6Gff5Z6X;rg5?Z6=@6=wW6Z>rFmUwUri[;Z6=?N" "6D6pHranSem;nG4?TNB@6=wW6ZLrV6VOVw;5fw?6^w;rommDZZ>?ECTD:U>TDjU66Y@E?V5;T:Q>" "6JrVfRf[^;566FrVJQf5V5X;4XZBT@:6^RFPVmF<6h5\\qV;5F`RTb:5=R6B>NEjU6NU;VU4?Z4:@^98RV:Fn6NV" "d^>EE?6;9@6Br<=TkkU6s_BEJP@:6?RFf6lDjT_;5f5?88rGrwBRnBInfwsFZ^;5f5?`M4@bd:R6" "4F>Dj^_;]f;?VN>@Vh:RN=Rn6EE?^[:@j>9RV:Dnffrw5;c=CE" "?4V;@>BdW^w=FEjU6NU;<:4[T:9Qf4NFEZT^;fG4?NP4@648RFbEnF>cf5:XUEETTN:Q>6>R64rn6frw56sw;6]FQT`:==dEjT^:E>T@rq=R>hUn6p[f5o8UEETT@6i>R65" "Rn6Lcf5whU;Vew?6]F@n6FR6b6m6bQfU6nw;6jw?pgQ@6w?RnmEn64Jo5doV;\\g5?V:hn:M=4DJ" "T^>EET@N68R6een6>qw5F498E?46p89=E?4V989=lF6Be5r6[;" "F4B?n5>@V?BR6S:mVXFe[^?E?68>@6DwW6Zpw68keUwoT;6mw?6]N@NnJRnwMn6\\kf5q_UAE?4V" "9@fw:Z=lF6Be5V_6BE?4V=@6hRR6D:mVP^f5@?T8E?4V;@VqNRVHNNJZ^^;`64ATL:QF=Mn6f6e5" "Flw;Vjw?6dwG6h[9=lF6Rf5:XU;wG;[T:9QF:Fn6=nf5d_U;>5;KT@:6CR6sMNJZ^^;LV4?^4;@^" "98RfBFn6D6e5>mw;VjQ?Lq?@JmNRN4I>DJZ>=E?4V9@jTBBlmFHOfUghV;Mg5?XQ;@jqBR>eMnfk" "cf5IVV;a`9?V:P@Zp8R6DbnFp[VT^;5f4[T:9QnXIn6=NUT?9G[T:9Q>oMnFsdf58fT;Eb;?n:8@" "N;Ie^_;VjV?bVi4rW>6p;i@\\s;5F;^hMaklXiAcSHobhMqklwipcsOog`WQwLwiwcwH" "sa`G:6AjLOi`\\SIo\\`IaclwF6^f5NV6HsbpG:6nipcw;5V4jh]QW>6lZhpbqMo?4V8XaW" "6WFn6lFfUjUVKs_`G:6ARLWjp^sEo[`?aGlwF6^f5VlU;@6:^hmbkmpF6j5_QR_:G_Qps:h=gKH_" "n@GV6\\JsBnMbkP_?FV:@:5ER64VmFF:j5QMY;\\[5h@9P@sromckQ_\\@aQP65FrVVqw5:FDSch" "H9`@SqolciQc\\HGV6>NsihcfoMgwPWq`sIis5:65SkhX9@GSporcmQk\\XGV6>NshhafsMow`WQ" "gsHiq5:65Sshh9`GSwopcqQs\\hGV6>^lwF66=es;5f49gCPOrp6;:5eMTk:_=@OR`nRem;?65?>" "V4@f6VFrYnCeOTg9WCpHrqf5Ff54^V;B6>:O=`DRYnLeiTc9OGR6:RV6R69Ffiaco;565``QqklXisU6V6HobpIQclqF6FV\\SIw]`Kq" "P>6>>iQ\\wKo_PG:6:RlpjW]sDg?4646>6oB`w;VV5hXaASsghRak;565iXcq" "?S@hmU6VUNkepGV5>R>=Vn6BVfUrnU;LU4?45?XAGswFHNFbmNw`XQQP>6Nfibcw;Nf5eX[qWNN>" "pF6jfbqMweXG:69:Sw68:Eam;5F5ihcqSSpF6JVaQSw?VV;\\aOswV@ZfU6nV;5U5eX[a?swF6Rf" "Uf64Qk?4V4jacswFDNf5;>5SshpeAW>6<6o@`w;U64?V6:@>?GJswV^VVcm;5F5`hQaslwffBbaq" ";Bj;ihGnH?R6;V6op5Dl6Qs?<\\;@65?VS?owUVn6SshpG:6?R>>B^hRaqLw?4V;@:8FR>>FVo@g" "m;5f4qXmaksgoPgm;565qhsqW>BPn6NRfUBEUNs?@e;RaWFNdropgm;565whwq?RGnrU6VVVs5w9" "`CRpF6FVfQUw:o=@W>6>Vn@eW[s8_G:6:NRonGdQZk?464F`[rw6:NfU4fV[k?_G@Wf;>^nr58F;" "[s8wGV:8FRXnrUS6U;Gf5?VVCB`Srw6TFfU5UV;G45?F6E:`Crw6dVe5b5U;\\84?:@;nakswf:L" "fU46Y;s>4nXeAWn8Fnf;Rf5>n4QslpGB]:R^w=nFpKf5:F:SshpG>T>BSw6pWfU]9U;F64?:D:Va" ";SpF6F6bQNw``QasliiccOOg`hQqW65V>iQ\\qJg]PKqXlAiP\\WHobhMqdlYiCcOHsbpGV4>:s@" "hPboNgeP[q8SGhw5R6U;V6:?V5:@6:NR6=fn6TVfcsOsgPWqplqiscqOw?F;:XQGSWhsboMgkP_a" "GsghQaqLgiPcqHsahPaWSohhaqLsihcaOSshpeQ[S?oC`ORgnPea[sOoPkm;hw5?FV?\\a[RpVqS" "6`qYk?TC;@V4>jS?lrUi`VPk?f5:@64FR68Fn6FVe5Z6[;>44shQ@gSpF6Jf5j6UWsD_G:e9rS@n" "@im;ER55_9`OQpF:OVfMTsO_GZb8RfS>nosgoWgwPGNN:^sIoc`OQg?bC4@^@:R6;f>iM\\IIg\\" "XKQ_LGiW\\w;>6:?:6:@65FR6B6s6gFfdoYgCWOpPVO>fnceO[g8WGNL::rAnSfoVg?f6B\\QHSi" "hcamLoihcqOsw646e556U;F6:?6;f\\aW>6Pn6^6dkq_o?469L`or`mQks;F65?F64J`crpF6FVd" "QYw?464@V5:RN6FVm@ks;5V5BoMpkr_mGdQZo?46;F`[r?mGdw[s?gG:66Jn6=Nfeq[w?4648`GrpF66efqUw?4646`;rpF6FFfqVo?464@F4BRF4Nn6Iff5=VU;:T:?49;@" "V?BRVKNn6mNfU4fV;N[5?b84Npkrw6rNFkqXw?464@6DwW6Z45jA^SHob`CQOl@hQbsJo]`cQOsX" "iAcSRon`[Q?s`oQgsLoi`;P?rp68rw5:lw;F^n68VOfqVo?469:PCrHnq586_Vs?F448PGrPnq" "fs;G55?FVQ8`cSOoa`SQol`iakS_oAgSPor`masSooqU6>5Ws?ZV9rawSwoqU6>UWs?ZV9paWVMH" ">np5PVU;f6;?V?:4`?rGnWfw;N69?N848`W>M>nF[FffwUw;wcaOspF6JJaq;>55o`gQWsphqU_V" "V;>f@ohQaslhiacSOo`hUa;s8hAbSNofhYaCspF6ZVbq;Df4dh_aGspF6Zfbq;Df4khGfBCJSw6G" "ff5NVU;f;4ihcqOsghw5BVT;B;5ohGZB:R^E>nhwawSwlhiAW>6^Fo``wSsoXG:6>RSwhWaqLk?4" "6<\\aOsw6=ReUqVV;;F4kh_AW>6DNhpbw;5f4dhYAW>6DFh`bw;5f4phqAW>6^fo`gWPsrXG:6>f" "S_ow5L5[;^T4ihcqW6BJFh`bw;:d5?6Z4@fB?RVJ<6o@`m;564nheqW6U@Fo``WQwlpiqWVA@Vo@" "gWPwrpGf8MR6Zpw6>YFfq;56;4oGf6H:rHnqUbOU;B685_9@?RpF6^f58nTVg4W;pP>6Jn6;JEfk" "V_4g9pP>6T>ncfOUg4W9PKrXnsU6>5To5gGR:CRVnQgsPg?4V:lQksXosU6^4Pon`eqP>6D6o" "a`SQg?4VFjQ?s@hsU6^TNo``QqP>658XQG" "sqF6Zfbs;Je4?FT;@R:9nlw6GRf5V^V;V5;f`UqP>6<6hAbWNwfpUqW6D@>hQbwNwep[qWVFNn6P" "Be5;V;Oo\\`IqP>6DFiq5rNT;B;;?VX4@6;BZl@isU6>UJo_`GqP>6\\njQ]sDg?4646>n6ZfX^SEg?46C:QC" "lwF6^f5Flw;VJ>i`mqHsqF6^f58FULok`iqPNYCNhwU6VV;Z68l`;pPNjCFowU6V6RowPGVqsAnfoOf58NU;]W5?>V;DQ;" "sqFq`f58FUJo_`QqPVZIn6=VUcsLg?Hw4RqW>6>Viqbo;Zg4?^4;DQ_lwF6Ff5ZVUIodPOqP>6Jn" "6;^f\\s;rV5?FQ;@6=TIS`hPawMskXG:6>BSWhWbqNk?46:Ta?sw68Ff5=fVNsepUa;S8hBbMNsf" "pGf6BnLoibcMOk`hQqWV5NVi@cMHkbXMaklw6;fV\\QIk\\XIAcLOig`QQk?46:jacs_o@gm;564" "rhmqoSgorU66UPsqp;`?RpF6VFfqVwwhwAW>6Fnopgw;Z6;?f64@>58jSgow5ZVV;4U5?N6:@N8:" "R6BBn6;V6`QRknXeA[S?ow58V5SshXaASShh`aWQklXcAOS8hBbm;8VFsHoqLsihRbmNos`oaSSo" "hgaWSw?N6B@B6BbsPoaaSSoe`[QWf6Zn6Zrw5FVi@cw;5V4?V44Fa[lwF6^f^qEo?4V@?aW6VpQj@^QFo?4V@6a;M?dqU6^;>sbPMqTs9hCbOPgk" "P_qps9oC`OTglPiqLrqosgoYg:W=p4qinceO]gCWOpPq9mCdO\\g8WAp_eA[S8oB`MTk:_=pDrYnCgOPgrPmqTr9mCdOZgqPsqP6<>nVJFFfoVgA" "WSphRamLgiPcqHsaXRAmLdiZcrHmadSYoOE`TS9o<`IRc:O=`DrZn=gKP_r@mQTr:m=dKZ" "_q@sQhsboMdkZ_=GKPdlYiC`OOg`PiqPFNBVoCgOZgwPwq`rinceO]g>WEpDqqVfN6eOTgFWG>BB" "6s9hCgOIg\\Paqplqis`oMgkPwqLsihcfoQgsPGppsqosdOUg4WQpPrqnsjoYgCWgpPrqnsjOUg4" "WQppsqosdoQgsPGpLsihcfoMgkPwqplqis`oWoEWwqP>6FnoQgS^gqPsQwsHls5:f6QoCWiqP>6F" "FoQgS^g?r94@F69jsPoakoQgs`GV4:R65>6oqdORg?46:fQgshms`o;564s`iQorq6@NV`WQwlpi" "qWFfpwVVA^aQSo?4V:bacSOoqU6>5QsnheQ[s8o``q;>f5ihcQW>6D^h@`QRo?4V:faSSohaaSSs" "?F54@V6:BSWhqU6>UMs?^48\\aOs`hQaq;^65?F64Ta?spF6ZFbq;J5;kh_QGsPhp5JVV;>65ghW" "QW>6Dnip5\\fVMskpG:6::SGhQbsNs?F54@V6:nLoiqU6>5OsbXG:6?nLpF6Rfcm;565ghWqwlWh" "rU6nVLk?4V;bAW>6>fh`aWSw?hS4@ro:NShhbam;9F5?FU4XaGsWhw5F^6SkhXaAWN9<^hRamLke" "XG:6::SGhWbw;>58?VU9@B89Rn>@Nhwgm;bG5qXsAoSp6LbfUqV6Rk?F58@f=:R6B<>hRbmNk?68" "VG:B5QFf4lffrwUZj6EgTP9q\\lIic\\MEkTX9AcLHib\\SEoT`9Qcl8jC^OFg]PKqXL8jB^m;N6" ":ZP=qDlYiCcOHkZX=AOlajS]OOg`PQAOL`jr5>65Dk?44B6A_L@iR\\SFoV`5Q_lpFN6U\\SIsTh" "9aCLOi`\\QIw_PGqPl9hCbONk_XGAWLpjBbMNkf`GQWlpjAbSNofhGaWLwj@bQNsfpG>8>JLhibc" "MOoY`CQOlhiacSOsYhCaOLoi`cQOw?Z[:NAkLXiA]SDoZ`MQklXi@]QDsZhMakL_i@cw;;kw?BB[" "@>BwkL_igcQOs]hKaKL_jp5;>UJoZ`=QslhiQ\\s;8V4`XKA_LXjB]MOk?B69>qPfw=njr]m;8V<" "kX_AWf?>nV5^4cOHgeP[AGSPhB`MRob`MQ?s@hpbqMsnheqW646m6frw56sw;6]Fi`cQ;s8hq\\s" "Io?B6ITqMS:oMgiNghXeQoSw646Egw;5f5?V6>@68wW6Z4ehpU6nU;V9>ohgQW>6J^hPasLoi`G6" "5:R65>Fh`bs;565dhYqW>6>n68FfU565Lsj`G:68FS_hGaWLwfhUQW>6B6h@bWNwfpWawlpF6^f5" "BfV;H65fpUqoLgiqU6FU;ZV5ghWqW>6>Nip\\s;56:chOqW>6>6i@\\s;565]hKQW>6>n6=ff5=V" "U;J5;?Z68@F>DR>JBn6Pff5@UU;Z[5?<6;@VA8RfL>VhGaw;f[5ihcqW>6>n6>qw5F<:Tg?4698p" "4?^sAocfs;5V45g5PwshoQgsVg?469@B4" ">VsAnqU6FU;[65r`wqP>6JnV>RfaOSgw`G:66NnmbkmXkB_O@cR@mBjs;56;" "GgQPorhmrU6VU;TF5>_G@srpF6fFkSXoCgS@W>6Nnf>NVemXo?468NPgrHmqdm;56;?:U4<@KRPm" "qU6V5Yo=gEP[rhns5ED5To4W9pU@>nQfwVw5w;Pw" "saosU6^VPoqpsqosgoAgo;5V4r`GN5=jsgoWgsQglPG:6=^spV?N6gw;565r`iqTsqF6r6`SRw?4" "64fQSsahSaoLgiPcQSsqF6FVas;P6;?ZV9fQWNBR6J@n6Pff5@UU;eh4w`" "GNA=:rGnWfs;\\[54wG:6:6SWnBbMNkfXUAOS?mRamLkiXcA_S_mR`m;5F4?Z68nawRXorU6>U;D" "6;5o]@?RpF6ZffQck;_G:6=R6;>n6:Ff5FVV;J5;shQ@gSpF6Zf5\\VU;>5;whY@wSpF6ZVgq^kp" "XqAW64>n64Ff54U5QsA_iAW>6Dn6aFf5>VV;r45ohI@WSpF6Zf5XUU;f6;?>58@NG8RV6BNh`emM" "k?4V:@V5B:S_nRbmNkeX[AkLwoBcMHkbXMAWV5Bn6CM6`qYknXG:6=R6GBnV:Nf58VUPsF_sAW>6" "Dn6hff5BVU;R9;?V58@68BR6INfhPdMSkhXaASSp6bMf5LET;8[5?^9;@F68RF4Nni`fmOk?4V::" "aOSHjb^MEkTX?aSSPjr^mEk[XGacSpjr]mKk_XKakS@iR\\mJk]XIaoSHib\\MIk\\XQa?RhibcM" "Ok`XG6;8RF[BnV>Lf5wfV;6X5?R@;4`?rpF6^fgqWow`wQW64>n64F6gQPo?464naWVUCn68FfU5" "65Wsp`G:68nSooggWWwlhiQW>6BFo``WQwlpka_spF6^f5BfV;H65lpiqWSwhqU6FU;ZV5mhkqW>" "6>^hPas;56:ihcqW>6>Fh`bs;565kh_QW>6>n6=ff5=VU;J5;?Z68@F>DR>JBn6Pff5@UU;Z[5?<" "6;@VA8RfL>foggw;f[5whwqW>6>n6>qw5Flw;6mw?6selaospF6^6`QRon`eQW6o=n64Ff5poV;j" "c5?f64@B6>NSohqU6f6SshpaqSswV5SfbsMokh_qGsWhWbqNo?469@F48RF:>fhgaWNsf`G:66Vfi`cw;565\\hIQW>6>Vi@cs;565?>58@>5BRVW8@FCBR6PB6o@`w;565?6]wG6DwW6>ww6NGhdqYo?469B`SrhnaeSZs>gE" "P[rp64FffqUo?4648`GrwF6Ff5BVV;;64:o=PW>6BVn@eWTw:w;`?rpF6NFfqVw5w;pwSwoqU6FU" ";ZV5?:54>pKroo`gs;5V4?V5;@n4::rGnGgQPo?46>nakswF6Ff5poV;XG5l`iQWV:NnV:ff5\\V" "U;D6;?>:8@f=>RNJ>n6_NfgqWw?464@F>BRVRBnF5Nf5LUU;f[58oApW>6>n6>=WgmPkqXmakSpF" "6^V`QQk?469@V58RF4B6o@`m;565?N68baSSpF6Ff58VULsiXG:6:RV5NNhpbm;5654o9@W>6JVn" "@em;5V48oA@W>6J>mPdm;5V4>oE@W>6Jn6=ff5BfV;hV5?F4;@f6BRfBBn6;fFfqVk?464@f6BrS" "worU6VVVo5W;p8rIncfOUg4W;pP65pEnlfiUc:OG:6>RV5fnF4f6eo;5V54W5plsYoc`ORg?46;j" "qdsioCfOUg?V:>EP[r9mCdoZg=WKpXr9ms5:n?_cGOW`4QqF6Vf586[;=6;FWG:68nrYmcdOZg8W" "GfD?Nr9mcdOXg@WG6=>iSaoC`ORkkX_Qos`o@`QRwnpeqWV5fnf6R?", s[5][65536],l[299999],sn[32]="Solstice thm/crop / NESMusa"; #include #include static int S,h,OF,PN,d,p=1,r,k,i,a,c,CO,j,x,T=256,f=8000,LS=0, P[12],H[99],IL[99];FILE*fo,*fi; static int Out(int v){int e=0,s=1,f=0;if(OF)v=128+v/30;else for((s=(v<0))?v=-v :0;e<8;e++)if((f=((v+32)>>(e+1))-16)<16)break;return fputc(OF?v:~((s<<7)|(e<<4 )|f),fo);}void gn(void){for(f=0;A[1]>='0'&&A[1]<='9';f=f*10+*++A-'0');}int G(int n){while((k=1<p)d+=p*(by)((*z++^131)+75),p*=64;PN=d&(k-1);d/=k,p /=k;return PN;}int main(int C,char**V){if(V)fi=stdin,a0=*V;for(P[CO=i=0]=907;++i<12;P[i ]=P[i-1]*89/84);while(--C)if(*(A=*++V)=='-')while(*A&&A[1]) *++A=='r'?gn(),0:*A=='d'?OF=1:*A=='h'?h=1:0; fprintf(stderr,"%s\n\nUsage:\t %s [options]\n" "Example: %s\n\t %s -dr22050|esdcat -b -m -r 22050\nOptions:\n" "\t -d\tPlay in linear format instead & use /dev/dsp if not piped\n" "\t -r#\tSelect sampling rate in Hz\n\t -h\tThis help\n\n",Title,a0,a0,a0); if(h)exit(0);for(r=9692,LS=0,c=4;c--;)for(a=0;a=0;s[0][i]=(i&24)?170:20)s[1][i]=16*(i<16?i:31-i); for(i=IL[2]=999;--i>=0;s[2][i]=(a=a*999+1)%200); if(isatty(fileno(fo=stdout)))fo=fopen(A=OF?"/dev/dsp": "/dev/audio","wb");if(!fo){perror(A);exit(-1);}a=c=i=sn[29]=0; for(fprintf(stderr,"Playing built-in song (%s)...\n",sn);; i<3?i++:((c?c--^Out(S/9):++a>=r?a=LS:(c=f*5/T)),i=S=0)){ x=l[a*8+4+i],j=i?i-1:0;H[i] += P[x%12]<