#define _POSIX_SOURCE 1 /* Song length: 94 seconds (89 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="NES-S3M player for /dev/audio (8-bit, µ-law)\n" "This file has been compiled from a file created with intgen."; typedef unsigned char by;char*A,*In,*tmp="nesmusa.$$$",*a0; static by*z=(by*)"1v;FLTehJaWk1``f2:dwP2J3l>XEAKRnYECkoF=LdSRWk@ioFXve" "SdWkHtoF@we3iWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhw" "e3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFh" "we3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoFhwe3vWkPwoF" "hwe3vWkPwoFhwe3vWkPwoFhwe3vWkPw_nLPwLGn30BZWk=`aF=ve3]WkABYlSu0PLjoV1TdCQWk@" "ioV\\LFuHG08_veO0?kLhoFLve?9=kPwoFuweCW?kdLafwCd_0=kPjoFoveSaDkl_bF=ve3]WkDb" "aFuYdCQWk@ioFSTd3vWklwGmCZXLAnYwRUNZHow9nCPBZWMGZVLuXjAmgu2\\H_0=nWPRU:d]JGn30BeWk>AafN8dCPRHwnI\\RUP:" "3k1n3d?HG`veOP2NGdVHu`jQmgu2LDkaV0@^uKG0:n[dRUL@H_0=dve_J=kb@afALd[=2ki" "H_vLnY`gUXtK_AFn1wgUjwK_vFnIYRUw_HG1:YvMuXjAmSZ?Mwn;@RU2LHw1:nY`Bd_HGaVRuAafN8dCP2HwnSfRUNjI?Xw" "n1jguXCH_v:n;PSU:hRjaV0@@uKG0:nYPRU=lIG1:niaBY?k1@Zlgu2hH_2fnEORuniQD[;NOdfHeaJSm>[ENWdvHugjJmmZ[MK[nNeeJKmoZgMwnYPRu0XH?LtnQ2]UoXHG0:nm_R" "u0XH?""=LnO0]UWAHg0:nA^QU:@UjjlmY[CK_nFeUJkloYgCwn3PRU@aK?:LnoRRUYAI?t:`fPU1" "k2n>dEHK`nPu1k3nwd[IOcf^eEKKnndeIWcv^u;kBn]d;IKbn\\e9KCn_dGIWbv\\E:KLnXdAI_b" "F]U:kLnZdMI[bN]u:kMn[dOIcb^]uK?:kbveC>]JOmfZUMK[nNeeJKmvZuMkoV0Ld3VVkl_`V1Dd" "c3IktMafjMd3I:kPRoFhieS2:k;Pbfg8dO0=k8c`F=XFUUjjlmYeCK_nFeUjkloYWk1@aFXhe3=:" "kKAaflXd3V=HO`fPU1K3n>dEHK`vPu1kWnmd[IOcn^eEKKnndgIWcv]U9kBn]dEIKbn\\e9kCn_d" "GIWb>]E:KLnXdCI_bF]U:KMnZdMI[bV]u:kMn[dIIcbve3]UIwn9SBe[JOmfZeMK[nNeeJWmvZuK" "G0=mfd?08kUP`F1TZuIG0Am>e?P_Jwcfd?0\\Iwhfd?08TKhn`uK_DCn]QRuUPDKKn^uEAH?""=A" "n3PRUIDIO0@cv^uEkKnodWkDBaFojZu3kbV0@Pu?kbV0@RuK_2:dfd?0e?P\\J_n3@BeMk18aF" "@we3LFkJFaV2@e3l=k^SRn]u0P@koV0LdC1=kV@in]u0PTkoV0VBUIG08Yve?0=kL@af?LFUIG08" "_ve;S\\LKn3@BZWkcNam]u0PhJcV0BTuK_2LnSV2[Ek18QmwZ;k10Im^u0\\djoF=BNuKG0:ncgR" "U=XHG0:nY0]uGXH?:wnEB\\UPvK?Xwn1ZXuKZHOhCnev2Y;k10^lgu0tK?8Kni8QuRBHg0>YnBe]" "J;mOZGkG@aF=N8UAjRl=YEBK\\n8eAjSl_U>eH_2nY0mZSM?[FNedJImbZ]MG[VNuKG0:n1=gUX@I_lHnMgQUiZDkHnadSI;" "cN^eDKIncd_IwbF\\U8k@nRd=I;bN\\u8kAnSd?ICb^\\E9KBn]d;IObf\\e9KCn^dEIWbv\\u9k" "CnXdAIwnQbfdWk1@inaeSK?oNfeTKinbe_KGovaUPk0o1f=T;hN`ePk1o3fWk1@aFhieCW2k=``F" "G\\ecO=kZOaF\\Yd3:VkP_oF:Xdg0:kvR`V1LdSD3kLPJmaZSM?[NNedJImbZ_MG[ve?0=kPRoFL" "XdCJDkhn`fTM^UDkHnad]I;cN^eDkIncdWI?bF\\U8KAnRd=I;bV\\u8kAnSd9ICb^\\E9kBn]d;" "IObn\\e9KCn^dGIWbv\\u9KLnXdWk@IOngu0XHoE:mFd?0_J;n3`Ce?k1hYn\\u0tLkbV0:ZuGk`" "V0@^uSk`V0T`ePK1o2f=Twn9c\\UIXHW?"">ni?QU>AMkoV0Ld;S9kn1mgU@a1J`V0^0uHG0LPnd?P3@wn]A2XWknLaF1M" "vDHG0CWVd?0ZGKn30m_Ck10jcWZ1k109mgu0XH_2:`>d?0d?0\\Iwb>d?P9IGn30RdWk@IO" "ngu0XHoE:m>d?PYJGn30MeEk1hXngUIDMkoFL^ZuKG0:h>d?P9TGn302fWV3n302gWU3n30RfWkb" "81owe1k10ingUMUJ?Lwn1]\\U>YH?LCno^RUMYHG1;oVd?0YKwn]n\\UPfHoQ9nC`2g?k10af8Md" "_0=kD2mFVNdkMvL3n30BZWk1@aF=LPEHG08`ve;O=I3n30RdWk1@aF\\_dKUgJGmVZeIG0LmFe?0" "3kPWaf^Ydce9kbMaV2Ldc8ZJwn3PRUIDEKHnSu08EkoFoF[uK_]:a>d?0\\Hwn1Z2[1k10Qmgu0X" "H_2:nA;]U]fK?Xwn1:_UKVFkIncdEk1h`F@OdKF:J3n302eWk1@aF=Ldk1]K3n30beWV3n3`d?0\\MwnmTRuud3vd?09OwnMPRu0XHow:n=YRu0" "XH_2LnwPRUXtKo8An1jgUPvK?XRngYRUQGIoj;Y>d?PYLGn30MZEk1h8mgu0tK?8AYFBU\\j8mBZ" "]L;YNBu\\j9mG[3N?dFHe`joV1BHe`JQm2[?NGnWPRU:dHO>:nERSu2HH_?b`FPU0k0n2d=H;`NP" "u0k1ng[3O?fFTehJamR[=OGfVTuK_2:nwgRU@M3", o[256],w[256][64],NN[8],s[5][65536],l[299999], sn[32]="DrWily Alpha by NESMusa"; #include #include static int ss,m,IN,IV[99],IP[256],PP[100],b,M,I,D[99],Bxx,Cxx,B,Ss,CP, At[256][64],Np=0,S=SEEK_SET,h,OF,PN,d,p=1,r,k,i,a,c,CO,j,x,T=250,f=8000,LS=0, P[12],H[99],IL[99];FILE*fo,*fi; #define rw(a) a=fgetc(fi),a|=fgetc(fi)<<8 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++^4)-52),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=a=i=C?0:(fseek(fo,0,SEEK_END),r=ftell(fo)/8,rewind(fo), fread(l,8,r,fo),fclose(fo),remove(tmp),z=(by*)In,main(-1,0))]=907;++i<12;P[i ]=P[i-1]*89/84);if(C<0){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 %s (%s)...\n",*z-'*'?z:z+1,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] += (D[j]?D[j]*P[x%12]/14500:P[x%12])<=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);z=(by*)"built-in song"; main(i,0);}if(*In-'*')fi=fopen(In,"rb");if(!fi||!(fo=fopen(tmp,"wb+"))) {perror(fi?tmp:In);return-1;}fread(sn,1,32,fi);rw(m);rw(IN); rw(PN);fseek(fi,49,S);x=fgetc(fi);T=fgetc(fi)*2;fseek(fi,0x60,S); fread(o,m,1,fi);for(i=0;i=m)main(0,V);if((CP=o[CO])-254){fseek(fi,PP[CP]*16,S); rw(i);if(!i)PP[CP]=0;if(PP[CP])fread(z=s[4],i-=2,1,fi);for(r=0;r<64;r++){if(!r)ss=1; a?0:w[CO][r]?(LS=At[CO][r]),main(0,V):(At[CO][r]=ftell(fo)/8,(w[CO][r]=1)); Bxx=Cxx=-1,Ss=ss,j=B=ss=0;if(PP[CP])while((b=*z++)-(M=I=0)){ if(b&32){if(!a){if(*z<254)NN[(b&3)+4]=*z%16+12*(*z/16);else if(*z==254)NN[b&3]=0;if(z[1]&&*z!=254)NN[b&3]=IV[z[1]-1];}z+=2;} if(b&64){if(!a)NN[b&3]=*z;z++;}if(b&128){M=*z++;I=*z++;} if(M==1&&!a)x=I;M==2?Bxx=I:M==3?Cxx=I:M==4?ss=1:0; if(M==19){if(I/16==11)*((B=I&15)?&ss:&Ss)=1;if(I/16==14)j=I&15;}}if(a) a--;else{if(Ss)Np=ftell(fo);for(i=(j+1)*x;i;i--)fwrite(NN,1,8,fo); if(B){c=ftell(fo)-Np;fseek(fo,Np,S);fread(l,1,c,fo); fseek(fo,Np+c,S);for(i=B;i;i--)fwrite(l,1,c,fo);} if(Bxx>=0){CO=Bxx-1;if(Cxx<0)break;} if(Cxx>=0){a=(Cxx&15)+10*(Cxx/16);break;}}}}CO++;}}