FUNQTM by -KING- (a french TECHNO & HARD-ROCK lover guy). Bubles code by STONER All code in this basic file by KING. Exept some screen deformations. Bugs: _VU=0 is forgotten in the equalizer. _Position malfunction in the last sequences. _WHITH in the intro. _Volume fade (default). _Sequence sur le compteur fausse (essayer avec un scud court) ".General" ".Disk" ".Share" PathApp$="" Assemble_Shell OS_SpriteOp%=&2E General Error DefColours Rnd(2000)) mode("X1024 Y768 C256") Cycle%=0 Block% 100 PTable%(36) a%=0 PTable%(a%) Ugly ACORN, ugly... '&!Block%=7:Block%!4=150:Block%!8=-1 "OS_ReadVduVariables",Block%,Block% (Block%!4<2*!Block%) "OS_ChangeDynamicArea",2,N*!Block%-Block%!4 Amiga stereo "QTM_Stereo",1,-127 "QTM_Stereo",4,-127 "QTM_Stereo",2,127 "QTM_Stereo",3,127 "QTM_RestoreChannel",1 "QTM_RestoreChannel",2 "QTM_RestoreChannel",3 "QTM_RestoreChannel",4 "QTM_VUBarControl",2,-1 Bank%=0 ".Balls" InitBalls ScreenArea% 1024*768*2 ScreenArea%!0=1024*768*2 ScreenArea%!4=0 ScreenArea%!8=16 ScreenArea%!12=16 OS_SpriteOp%,9+512,ScreenArea% RGam% 255 GGam% 255 BGam% 255 Arrow% 5000 Cross% 5000 Radar% 5000 RadioActive% 5000 Star% 5000 World% 5000 Bub%=10 lx(Bub%),ly(Bub%),lz(Bub%),depth(1024) Matrix% 4*6 U/ColourOffset%=152: Oh my god!!!!! 40+24+82 W+Patterns$=".Draw.Patterns." Load(Arrow%,Patterns$+"Arrow") Load(Cross%,Patterns$+"Cross") Load(Radar%,Patterns$+"Radar") Load(RadioActive%,Patterns$+"RadioActive") Load(Star%,Patterns$+"Star") Load(World%,Patterns$+"World") FadeSpeed%=10 setpal(-90,-90,-90) Write(1) 128,0,0,0 "QTM_DMABuffer" V%<=0 h. *QTMLoad ".Mods.IN_YA_FACE" x *QTMStart k5*Render ".Draw.Intro" 1.5 0 0 1.5 0 0 Screen(1) angle=-90 angle+=FadeSpeed% setpal(angle,angle,angle) angle>=0 setpal(0,0,0) EXIT%(4) BACK%(4) PAUSE%(4) BALLS%(4) SAMPLES%(4) WAVES%(4) AUTHOR%(4) XNEXT%(4) EXIT%(0)=1700 EXIT%(1)=1900 EXIT%(2)=1400 EXIT%(3)=1500 BALLS%(0)=200 BALLS%(1)=400 BALLS%(2)=700 BALLS%(3)=850 SAMPLES%(0)=500 SAMPLES%(1)=800 SAMPLES%(2)=700 SAMPLES%(3)=800 AUTHOR%(0)=900 AUTHOR%(1)=1100 AUTHOR%(2)=700 AUTHOR%(3)=800 WAVES%(0)=1200 WAVES%(1)=1400 WAVES%(2)=700 WAVES%(3)=800 PAUSE%(0)=1700 PAUSE%(1)=1800 PAUSE%(2)=700 PAUSE%(3)=800 PauseFlag%= Debug%=TRUE Flag%= VUSpeed%=5 X%=XScreen%*2 Y%=YScreen%*2 MargeX%=1/10*X% MargeY%=1/20*Y% Space%=1/10*Y% EqualW%=(X%-2*MargeX%)/2 %EqualH%=(Y%-2*MargeY%-3*Space%)/4 Max%=743 : Counter%=0 Digit%=EqualW%/36 VUR%=EqualH%/2 Eyes%=0 Last1%=0 Last2%=0 LastSeq1%=0 LastSeq2%=0 Timer%=0 EqCR%=255 EqCG%=150 EqCB%=100 EqCR%=180 EqCG%=180 EqCB%=255 EqCR%=100 EqCG%=255 EqCB%=150 EqCR%=100 EqCG%=150 EqCB%=255 )EqCol%= FindColour(EqCR%,EqCG%,EqCB%) CurrentSpl%(5) CurrentSpl%()=1 BR%=255 BG%=150 BB%=100 Light purple BR%=255 BG%=150 BB%=255 Blue-Green BR%=100 BG%=255 BB%=150 Deep Blue BR%=0 BG%=0 BB%=150 Yellow BR%=255 BG%=255 BB%=150 "ColourTrans_ConvertHSVToRGB", (360)<<16, (32768)+32768,65536 BR%,BG%,BB% BR%=BR%/65536*255 BG%=BG%/65536*255 BB%=BB%/65536*255 RLim%=50 PRINT BR%,BG%,BB% "QTM_Info" Track%,Author%,Origin%,Channels%,Length% "QTM_ReadSongLength" NbSeq%,NbPat% Counter=0 Coci%=1 Piano%(36,4,4) Block% 100 (2)=1 BA%=10 BA%=5 PROCsetpal(-90,-90,-90) Background drawing loop. ************************************** Write(2) n%=0 Z%=n% Flag%= K%=100 Iy%=Y%/K% IC=256/K% r%=0 : g%=0 : b%=0 y%=0 Y%-Iy% r%=r r%,g%,b% 0,y%,r%,y%+Iy% r=r% r+=IC 128,BR%,BG%,BB% BStar, BCircle, Patterns 8*Render ".Draw.LOGO" 0.5 0 0 0.5 1550 50 1800,1100 0,255,0 0,0,160+50+10 SetCol(Black%) (A)*160, (A)*160,50 255,255,0 (A)*160, (A)*160,40 SetCol(Black%) 0,0,175 255,0,0 0,0,160 0,0,100 /2+2* /NbSeq% (A)*160, (A)*160 Drawing PANEL. 3= *Render ".Draw.Panel" 0.35 0 0 0.35 1550 700 Drawing END button. 5: *Render ".Draw.END" 0.3 0 0 0.3 1600 1400 Button to 3D world. ("Render .Draw.Balls 0.2 0 0 0.2 "+ (BALLS%(0))+" "+ (BALLS%(2))) Button to samples. ("Render .Draw.Samples 0.2 0 0 0.2 "+ (SAMPLES%(0))+" "+ (SAMPLES%(2))) Button to KING's page. ("Render .Draw.Author 0.2 0 0 0.2 "+ (AUTHOR%(0))+" "+ (AUTHOR%(2))) Button to the Waves part. ("Render .Draw.Waves 0.2 0 0 0.2 "+ (WAVES%(0))+" "+ (WAVES%(2))) R%=255:G%=0:B%=0 VoicePanel(MargeX%,MargeY%+0*(EqualH%+Space%)) R%=0:G%=255:B%=0 VoicePanel(MargeX%,MargeY%+1*(EqualH%+Space%)-50) R%=0:G%=0:B%=255 VoicePanel(MargeX%,MargeY%+2*(EqualH%+Space%)+50) R%=255:G%=0:B%=255 VoicePanel(MargeX%,MargeY%+3*(EqualH%+Space%)) PROCDrawButtons 0 : *ScreenSave ".Scr1" 1 : *ScreenSave ".Scr2" Angle=0 angle-=FadeSpeed% setpal(-angle,angle,angle) angle<=-90 Write(1) OS_SpriteOp%,10+512,ScreenArea%,".Scr1" OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,0,0 Write(2) OS_SpriteOp%,10+512,ScreenArea%,".Scr2" OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,0,0 Screen(1) Bank%=0 angle=-90 angle+=FadeSpeed% setpal(-angle,angle,angle) angle>=0 "OS_RemoveCursors" "QTM_Info" ,,origin%,,,,address% origin%>=16 0,"Oi! I can't recognise this song!" m'patterns%=address%+20+30*31+2+128+4 n!sequence%=address%+20+30*31+2 "QTM_VUBarControl",2,3 *QTMStart rAngle = 0 gAngle = 0 bAngle = 0 Begining of the GIGA LOOOOOOOOOOP. *************************************** CycleCol%= CycleColor "QTM_ReadSpeed" Speed% A%,B%,C% C%=4 (A%-1800)<160 (B%-1100)<160 - Q=(B%-1100)/ ((A%-1800)^2+(B%-1100)^2) A%-1800<0 Angle= Angle=2* P%=Angle/(2* )*NbSeq%+1 "QTM_Pos",P%-1,0 Buttons BBox(EXIT%()) : BBox(PAUSE%()) PauseFlag%= ("QTMStart") : PauseFlag%= ("QTMPause") : PauseFlag%= BBox(SAMPLES%()) Boom(".Draw.Samples 1 0 0 1 100 500",0) Samples ScreenFade BBox(WAVES%()) Boom(".Draw.Waves 1.6 0 0 1.6 200 200",1) Shell("Run .Waves") mode("X1024 Y768 G256") ScreenFade BBox(BALLS%()) Boom(".Draw.Balls 1.6 0 0 1.6 200 200",0) 128,0,0,0 Write(1) Write(2) ScreenFade BBox(AUTHOR%()) Boom(".Draw.AUTHOR 1.6 0 0 1.6 200 200",0) Shell("Run .KING") mode("X1024 Y768 G256") ScreenFade C%=0 "QTM_Pos",-1,-1 seq%,event% &47E4F,seq% pat% pos%=1024*pat%+event%*16 pos%+=patterns% ShadowSwitch Z%=1-Z% VUBars "QTM_ReadVULevels",0 XVU% Eyes%+=10 Eyes%>100 Eyes%=0 VU%=XVU% G%=pos% VoiceUpdate(MargeX%,MargeY%+0*(EqualH%+Space%),0,Red%) VoiceUpdate(MargeX%,MargeY%+1*(EqualH%+Space%)-50,1,Green%) VoiceUpdate(MargeX%,MargeY%+2*(EqualH%+Space%)+50,2,Blue%) VoiceUpdate(MargeX%,MargeY%+3*(EqualH%+Space%),3,Purple%) TimeTrack NbFPS Timer%+=1 End of GIGA Loooooop. ------------------------------------------------- YOU(p%) p%=0 p%>=&71 p%<=&358 a%=-1 a%+=1 a%>36 PTable%(a%)=p% =36-a% plot(p%) p%=-1 p%=-2 SetCol(Black%) 500+Piano%(0,c%,2+Z%)*Digit%+2,-10,14,10 p%=Piano%(0,c%,3-Z%) Piano%(0,c%,2+Z%)=p% SetCol(White%) 500+p%*Digit%+2,-10,14,10 S%=Piano%(0,c%,2+Z%) VU%<>0 Piano%(S%,c%,0)=VU% : Piano%(S%,c%,1)=255 p%=36-p% VU%<>0 Piano%(p%,c%,0)=VU% : Piano%(p%,c%,1)=255 SetCol(Black%) 500+Piano%(0,c%,2+Z%)*Digit%+2,-10,14,10 Piano%(0,c%,2+Z%)=p% SetCol(White%) 500+p%*Digit%+2,-10,14,10 Smiley PROCSetCol(White%) IF FNreadpitch(pos%+c%*4)<>0 THEN PROCSetCol(Red%) CIRCLE FILL VUR%,VUR%,VUR%+10 SetCol(White%) VUR%,VUR%,VUR% VU%<2 Q=R%/VUR% GCOL 255-(255-NR%)*Q,255-(255-NG%)*Q,255-(255-NB%)*Q SetCol(VoiceCol%) VUR%,VUR%,R% SetCol(White%) CIRCLE FILL VUR%,VUR%-R%/2,R%/5*R%/100 A%=VUR%-R%/2 B%=VUR%+R%/2 C%=VUR%-R%/3 D%=VUR%+R%/3 R%>10 VUR%,A%,R%/4,R%/5,0 C%,B%,R%/4 D%,B%,R%/4 SetCol(Black%) C%,B%,R%/4 D%,B%,R%/4 VUR%,VUR%,R% R%>10 VUR%,A%,R%/4,R%/5,0 CIRCLE FILL VUR%-R%/3,VUR%+R%/3.2,R%/6 CIRCLE FILL VUR%+R%/3,VUR%+R%/3.2,R%/6 Eyes% < 50 Eye1%=Eyes% Eye2%=50-Eyes% Eye1%=100-Eyes% Eye2%=50-Eyes% GCOL 0,0,0 : REMEyeColorR%,EyeColorG%,EyeColorB% Speed%<=3 SetCol(CycleCol%) 255,0,0 : Black% C%,B%,(R%/6)*Eye1%/50 D%,B%,(R%/6)*Eye2%/50 A%=VUR%-R%/8 B%=VUR%+R%/8 SetCol(White%) 84,A%,VUR% 84,B%,VUR% 85,VUR%,B% SetCol(Black%) A%,VUR% B%,VUR% VUR%,B% A%,VUR% StarX SetCol(White%) VUR%,VUR%,VUR% seq%+5>=NbSeq% (255), (255), (255) A=2* F=R%*2* 200,255,255,255 SetCol(Black%) T%=R% VUR%+ (F)*T%,VUR%+ (F)*T% VUR%+ (F+2* /10)*T%/2,VUR%+ (F+2* /10)*T%/2 a=F+A F+A+2* VUR%+ (a)*T%,VUR%+ (a)*T% VUR%+ (a+2* /10)*T%/2,VUR%+ (a+2* /10)*T%/2 (255), (255), (255) VUR%,VUR% 200,0,0,0 GCOL 100,C% FILL VUR%,VUR% PLOT 128+5,VUR%,VUR% BStar I%=0 Color%= I%+=1 `' R%= (255) : G%= (255) : B%= (255) Color%=1 9,R%,G%,B% SetCol(White%) Mode$="Dark" (100): 9,D%,D%,D% R%=RLim% A=2* (1000)/1000*2* U%= V%= U%,V% T%=R% R%+20 (F)*T%, (F)*T% (F+A/2)*T%/2, (F+A/2)*T%/2 a=F+A F+A+2* (a)*T%, (a)*T% r$ (a+A/2)*T%/2, (a+A/2)*T%/2 I%=50 Trans(IN%,N%) St$="" C%=0 a$= (IN%?C%) St$ += a$ IN%?(C%+1)=0 =St$ Equalizer p%=0 VU%=Piano%(p%,c%,0) VU% > 0 SetCol(EqCol%) x%+6,6,Digit%-14,EqualH%-10 255,255-Piano%(p%,c%,1),0 Piano%(p%,c%,1)-=30 Piano%(p%,c%,1)<0 Piano%(p%,c%,1)=0 V%=EqualH%*VU%/64-10 V%<0 V%=0 x%+6,6,Digit%-14,V% Piano%(p%,c%,0)-=VUSpeed% Piano%(p%,c%,0)<=0 Piano%(p%,c%,0)=-2 VU%=-2 VU%=-1 SetCol(EqCol%) x%+6,6,Digit%-14,EqualH%-10 Piano%(p%,c%,0)+=1 x%+=Digit% Position A%,Pos% SetCol(Black%) 450,0,50,EqualH% Pos%=0 A%=pos%+Pos%*16+c%*4 readpitch(A%)<>0 event%+Pos%<=64-5 SetCol(VoiceCol%) 450,EqualH%-EqualH%/5*(Pos%+1),50,EqualH%/5-5 event%+Pos%>64-5 "OS_SetColour",3,CycleCol% 450,EqualH%-EqualH%/5*(Pos%+1),50,EqualH%/5-5 DrawSamples Sample%= sa(pos%+(c%-1)*4) SetCol(Black%) 500,-60,EqualW%,50 "ColourTrans_SetFontColours",SampleFont%,0,0<<24 255<<16 255<<8,14 Sample%<>CurrentSpl%(c%) Sample%<>0 CurrentSpl%(c%)=Sample% "QTM_ReadSampleTable",CurrentSpl%(c%) Name% String$= Trans(Name%,27) String$="" String$="Unknown" "XFont_Paint",SampleFont%, (CurrentSpl%(c%))+". "+String$,&10,FOX%+500,FOY%-50 3,255,0,0 500+EqualW%/31*(CurrentSpl%(c%)-1),-60,EqualW%/31,50 Samples angle=0 angle-=FadeSpeed% setpal(angle,angle,angle) "QTM_Volume",(90+angle)/90*64 angle<=-90 *QTMPause "QTM_Volume",64 Handle% X%=XScreen%*2 Y%=YScreen%*2 0,0 Write(1) 128,0,0,0 Screen(1) "Font_FindFont",,"Sassoon.Primary",500,500,0 Handle% "ColourTrans_SetFontColours",Handle%,0,255<<24 0<<16 0<<8,5 "Font_Paint",Handle%,"Track name:",&10,0,Y%-100 "Font_Paint",Handle%,"Author name:",&10,0,Y%-300 "Font_Paint",Handle%,"Song origin:",&10,0,Y%-500 "Font_Paint",Handle%,"Track size:",&10,0,Y%-700 *Render ".Draw.Back" 0.3 0 0 0.3 100 900 "ColourTrans_SetFontColours",Handle%,0,255<<24 255<<16 255<<8,14 "Font_Paint",Handle%,Track%,&10,0,Y%-200 Author%<>0 "Font_Paint",Handle%,Author%,&10,0,Y%-400 "Font_Paint",,"Unknown",&10,0,Y%-400 Origin% 0 : Type$="15 inst. Sound Tracker" 1 : Type$="31 inst. Sound Tracker" 2 : Type$="31 inst. ProTracker" 3 : Type$="31 inst. Startrekker" "Font_Paint",Handle%,Type$,&10,0,Y%-600 "Font_Paint",Handle%, (Length%),&10,0,Y%-800 "Font_FindFont",,"Bauhaus.Demi",250,250,0 Handle% S%=1 "QTM_ReadSampleTable",S% Name%,Length% Length%<>0 200,200,200 1000-50,Y%-(S%+1)*40+10,20 SetCol(White%) 1000-50-2,Y%-(S%+1)*40+10+2,20 SetCol(Black%) 1000-50+2,Y%-(S%+1)*40+10-2,20 "ColourTrans_SetFontColours",Handle%,0, (255)<<24 255<<16 255<<8,14 String$= Trans(Name%,28) S%>=10 Number$= (S%)+"." Number$=" "+ (S%)+"." "Font_Paint",Handle%,Number$,&10,800,Y%-(S%+1)*40 String$<>"" "XFont_Paint",Handle%,String$,&10,1000,Y%-(S%+1)*40 Length$= (Length%) Length$=STRING$(5-LEN(Length$),"0")+Length$ 2000,Y%-(S%+1)*40 "Font_Paint",Handle%,Length$,&10,1600,Y%-(S%+1)*40 "Font_LoseFont",Handle% 255,0,0 A%=0 A%*20+1000,20,20,200 X1=0 N%=0 Channel%=1 Pitch%=0 (1)-0.5 (1)-0.5 (1)-0.5 (1)-0.5 angle=-90 angle+=FadeSpeed% setpal(angle,angle,angle) angle>=0 s%=1:lines%=Bub% a%=-512 ,"depth(a%+512) = 1/((a%/640)+1) ang%=0 a%=0 lines% 0"lx(a%)=(50+ (290))* (360)) ly(a%)=a%*1024/lines%-512 2"lz(a%)=50+( (290))* (360)) XS%,YS% XS%,YS% rotate 0=1 SetCol(Black%) 0,200,800,800 (X1)*255, (X1)*255,255 V1=X1*Pitch% I=0 Gm 1.5* ((I+V1)+A)* ((I+V1)+B)* (V1)*300+400,200+1.5* (((I+V1)+C))* ((I+V1)+D)* (V1)*300+400, (I*2)*50 Hn ((I+X1+A))+ (((I+X1)+B)*10)/10)* (X1)*300+400,( ((I+X1)+C)+ (((I+X1)+D)*10)/10)* (X1)*300+400,5 A%,B%,C% C%=0 Mouse%=0 A%>1000 B%>200 NF%=-(B%-Y%)/40 Q< "QTM_ReadSampleTable",NF% Name%,Length%,,,,,Adr% Length%<>0 255,0,0 Mouse%=7 MGCOL 0,0,0 0,0,800,200 Y 0,255,255,255 Incr%=Length%/200 P%=0 ^ U%=0 P%+=Incr% U%,?(P%+Adr%)/5+50 c N%<>NF% Mouse%=0 Red light SetCol(Black%) k( 1000-50,Y%-(N%+1)*40+10,18 N%=NF% SetCol(Black%) o( 1000-50,Y%-(N%+1)*40+10,18 p% 255, /100*2* /3))*255,0 q) 1000-50,Y%-(NF%+1)*40+10,18 SetCol(White%) s( 1000-55,Y%-(NF%+1)*40+15,8 NPitch%=(A%-1000)/20+1 SetCol(Black%) w( 1000+Pitch%*20+2,22,16,196 x$ Pitch%<>NPitch% Mouse%=0 Pitch%=NPitch% 255,255,0 {( 1000+Pitch%*20+2,22,16,196 C%=4 Mouse%=0 ~ 2 "QTM_PlaySample",Channel%,N%,Pitch%,64 Mouse%=1 C%=1 Mouse%=0 . "QTM_PlaySample",Channel%,N%,25,64 Mouse%=1 C%=2 Mouse%=0 ? Save(Adr%,Length%,".Samples."+ (N%),&FFD) Mouse%=1 SetCol(Black%) ( 1000-50,Y%-(N%+1)*40+10,18 NPitch%=(A%-1000)/20+1 % NPitch%<>Pitch% Mouse%=0 SetCol(Black%) ( 1000+Pitch%*20+2,22,16,196 Pitch%=NPitch% X1+=0.005 C%=2 "QTM_Volume",0 *QTMStart "QTM_Volume", /100*64 >100 TimeTrack 1800,1100 3,200,255,0 Z%=0 Last%=LastSeq1% Last%=LastSeq2% 0,150 Angle=Last%* *2/NbSeq%+ &B5, (Angle)*500, (Angle)*500 0,150 Angle=seq%* *2/NbSeq%+ &B5, (Angle)*500, (Angle)*500 Z%=0 LastSeq1%=seq% LastSeq2%=seq% SetCol(Black%) 0,0,98 PROCSpeed 3,0,0,255 0,75 Angle=event%* *2/63+ &B5, (Angle)*500, (Angle)*500 SetCol(Black%) 0,0,30 "OS_SetColour",3,CycleCol% Angle=event%* *2/63*2+ Scale%=98*event%/63 seq% 0,0,Scale% (Angle)*Scale%, (Angle)*Scale% (Angle+2* /3)*Scale%, (Angle+2* /3)*Scale% (Angle+4* /3)*Scale%, (Angle+4* /3)*Scale% Scale%>2 0,0,Scale%,Scale%/5,Angle 0,0,Scale%/5,Scale%,Angle Star (Angle)*Scale%, (Angle)*Scale% (Angle+2* /3)*Scale%, (Angle+2* /3)*Scale% (Angle+4* /3)*Scale%, (Angle+4* /3)*Scale% Angle+= (Angle)*Scale%, (Angle)*Scale% (Angle+2* /3)*Scale%, (Angle+2* /3)*Scale% (Angle+4* /3)*Scale%, (Angle+4* /3)*Scale% 0,0,Scale% 0,0,Scale% (Angle)*(Scale%/2), (Angle)*(Scale%/2),Scale%/2-2 Angle+= (Angle)*(Scale%/2), (Angle)*(Scale%/2),Scale%/2-2 Angle+= (Angle)*(Scale%/2), (Angle)*(Scale%/2),Scale%/2-2 Angle+= (Angle)*(Scale%/2), (Angle)*(Scale%/2),Scale%/2-2 Scale%>2 (Angle)*Scale%/8,- (Angle)*Scale%/10,Scale%/3,Scale%/6,Angle (Angle)*Scale%/8, (Angle)*Scale%/10,Scale%/10 Speed "QTM_ReadSpeed" Speed% Counter%+=Speed%/10 Counter%>15 Counter%=0 Z%=0 Last%=Last1% Last%=Last2% SetCol(White%) R%=200 (Last%/15*2* )*R%, (Last%/15*2* )*R%,30 ((Last%-1)/15*2* )*R%, ((Last%-1)/15*2* )*R%,30 ((Last%-2)/15*2* )*R%, ((Last%-2)/15*2* )*R%,30 255,0,0 (Counter%/15*2* )*R%, (Counter%/15*2* )*R%,30 255,100,0 ((Counter%-1)/15*2* )*R%, ((Counter%-1)/15*2* )*R%,30 255,255,0 ((Counter%-2)/15*2* )*R%, ((Counter%-2)/15*2* )*R%,30 Z%=0 Last1%=Counter% Last2%=Counter% CycleColor (Cycle% 0: C%=Red% 1: C%=Green% 2: C%=Blue% 3: C%=Yellow% 4: C%=Purple% 5: C%=Green% Cycle%+=1 setpal(rangle,gangle,bangle) rf = rangle gf = gangle bf = bangle c% = 0 rf >= 0 #& RGam%?c% = c% + (255 - c%) * rf RGam%?c% = c%*(rf+1) gf >= 0 )& GGam%?c% = c% + (255 - c%) * gf GGam%?c% = c%*(gf+1) bf >= 0 /& BGam%?c% = c% + (255 - c%) * bf BGam%?c% = c%*(bf+1) "OS_CallAVector",RGam%,GGam%,BGam%,0,9,0,0,0,0,&23 Screen(1) Write(1) I (255), (255), (255) J, (XScreen%*2), (YScreen%*2), N A=0 Ad= (1)*2 F%= (XS%*XS%+YS%*YS%/4) R%= (100)+100 XS%,YS% V (255), (255), (255) D%= /100*F% B=A Z (B)*D%, (B)*D%,R% A+=Ad XS%,YS% Col%= CycleColor Angle=0 VU%= R%=VU% "OS_SetColour",0,Col% 0,0,R% SetCol(White%) A%=-R%/2 B%=+R%/2 C%=-R%/3 D%=+R%/3 R%>10 0,A%,R%/4,R%/5,0 C%,B%,R%/4 D%,B%,R%/4 SetCol(Black%) C%,B%,R%/4 D%,B%,R%/4 0,0,R% R%>10 0,A%,R%/4,R%/5,0 (Angle)*R%/20,B%+ (Angle)*R%/12,R%/10 (Angle)*R%/20,B%+ (Angle)*R%/12,R%/10 A%=-R%/8 B%=+R%/8 SetCol(White%) 84,A%,0 84,B%,0 85,0,B% SetCol(Black%) A%,0 B%,0 0,B% A%,0 ShadowSwitch Angle+=0.8 Screen(1) Write(1) 128,0,0,0 setpal(0,0,0) DrawButtons 0,0,0 Draw(EXIT%()) Draw(PAUSE%()) Draw(BALLS%()) Draw(AUTHOR%()) Draw(SAMPLES%()) Draw(WAVES%()) Draw(Button%()) Button%(0),Button%(2),Button%(1)-Button%(0),Button%(3)-Button%(2) sa(addr%)=(?addr% &F0)+((addr%?3 &F0)>>4) readpitch(addr%)=addr%?1+((?addr% &F)<<8) BBox(But%()) (But%(0)=150 Scale IN Scale=1.01 X%= (1024*2-50) Y%= (768*2-50) < X%,Y%,200 XS%+(X%-XS%)*Scale,YS%+(Y%-YS%)*Scale >=150 Scale OUT Scale=0.99 X%= (1024*2-50) Y%= (768*2-50) < X%,Y%,200 XS%+(X%-XS%)*Scale,YS%+(Y%-YS%)*Scale >=150 Code: Vibe X%= (XS%*2):Y%= (YS%*2) O%=8 X%-O%,Y%-O%: &BD,O%,O% 0,Y%+O%: X%-O%,YS%*2: &BD,O%,Y% X%+O%,Y%+O%: XS%*2,YS%*2: &BD,X%,Y% X%+O%,0: XS%*2,Y%-O%: &BD,X%,O% O%,O%: X%,Y%: &BE,0,0 O%,Y%: X%,YS%*2-O%: &BE,0,Y%+O% X%,Y%: XS%*2-O%,YS%*2-O%: &BE,X%+O%,Y%+O% X%,O%: XS%*2-O%,Y%: &BE,X%+O%,0 >=150 StarFX (255), (255), (255) XS%,YS% Angle= /200*5*2* Scale%= /200*3000 (Angle)*Scale%, (Angle)*Scale% (Angle+2* /3)*Scale%, (Angle+2* /3)*Scale% (Angle+4* /3)*Scale%, (Angle+4* /3)*Scale% Angle=Angle+ (Angle)*Scale%, (Angle)*Scale% (Angle+2* /3)*Scale%, (Angle+2* /3)*Scale% (Angle+4* /3)*Scale%, (Angle+4* /3)*Scale% >200 ScreenFade Bank%=1 Screen(1) Write(2) OS_SpriteOp%,10+512,ScreenArea%,".Scr1" OS_SpriteOp%,28+512,ScreenArea%,ScreenArea%+16,0 CASE 1 OF Bouncing. Write(1) )* Y%=YScreen%*2-(( /50)^2*YScreen%*2) *? OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,Y%,0 0, Y%=YScreen%/4-((1- /20)^2*YScreen%/4) 1? OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,Y%,0 0,0,0 0,0,XScreen%*2,Y% 8* Y%=YScreen%/4-(( /20)^2*YScreen%/4) 9? OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,Y%,0 Boing!. Write(1) A& X%=(1- /150)* /150*2* *5)*500 B? OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,0,0 >=150 Boing2!. Write(1) J& X%=(1- /150)* /150*2* *5)*500 K& Y%=(1- /150)* /150*2* *5)*500 L@ OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,Y%,0 >=150 Brush R- X%=( /200*2* *5))*XScreen%+XScreen%) Y%=(1- /200)*YScreen%*2 OS_SpriteOp%,9+512,ScreenArea% Write(2) OS_SpriteOp%,16+512,ScreenArea%,ScreenArea%+16,0,X%,Y%,X%+300,Y%+300 Write(1) OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,Y%,0 >=200 !!! OS_SpriteOp%,10+512,ScreenArea%,".Scr1" OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,0,200,0 Scaled. Write(1) T%=0 Y%=0 Block%!0=1 Block%!4=1 Block%!8=100-T%/500*99 Block%!12=100-T%/500*99 OS_SpriteOp%,52+512,ScreenArea%,ScreenArea%+16,0,0,0,Block%,0 T%+=1 T%>=500 X%= (XScreen%)*2 Y%= (YScreen%)*2 w( OS_SpriteOp%,9+512,ScreenArea% Write(2) yN OS_SpriteOp%,16+512,ScreenArea%,ScreenArea%+16,0,X%,Y%,X%+100,Y%+100 Write(1) {@ OS_SpriteOp%,34+512,ScreenArea%,ScreenArea%+16,X%,Y%,0 >=150 Write(1) OS_SpriteOp%,28+512,ScreenArea%,ScreenArea%+16,0 Write(2) OS_SpriteOp%,10+512,ScreenArea%,".Scr2" OS_SpriteOp%,28+512,ScreenArea%,ScreenArea%+16,0 ShadowSwitch setpal(0,0,0) rotate vtx%= 0 lines% Uxnew=lx(vtx%)*c-lz(vtx%)*s:znew=lx(vtx%)*s+lz(vtx%)*c:lx(vtx%)=xnew:lz(vtx%)=znew 6ly(vtx%)=ly(vtx%)+4+(vtx%/2)-(1024 ly(vtx%)>512) vtx% f=1/((lz(a%)/640)+1) a%=0 lines% f=depth( (lz(a%))+512) PRINT f 3,255,0,255 lx(a%)*f,ly(a%)*f,f*32 3,255,255,255 (lx(a%)-15)*f,(ly(a%)+15)*f,f*5 Patterns 1 : Pattern%=Cross% : Size%=332 2 : Pattern%=Radar% : Size%=1812 3 : Pattern%=RadioActive% : Size%=532 4 : Pattern%=Star% : Size%=444 5 : Pattern%=World% : Size%=1860 6 : Pattern%=Arrow% : Size%=456 6 Pattern%!ColourOffset%=255<<24 255<<16 255<<8 (XScreen%*2) (YScreen%*2) Angle= (1)*2* Size= K Matrix%!0=(1<<16)* (Angle)*Size : Matrix%!4=(1<<16)* (Angle)*Size L Matrix%!8=-(1<<16)* (Angle)*Size : Matrix%!12=(1<<16)* (Angle)*Size * Matrix%!16=256*X% : Matrix%!20=256*Y% "DrawFile_Render",0,Pattern%,Size%,Matrix%,0,0 A%+=1 A%=20 VoicePanel(X%,Y%) X%,Y% R%,G%,B% VUR%,VUR%,300,VUR%/2,0 VUR%,VUR%,200,VUR%/2, VUR%,VUR%,200,VUR%/2,- X%+500,Y% x%=0 EqCR%,EqCG%,EqCB% x%*Digit%,0,Digit%,EqualH% SetCol(Black%) x%*Digit%,0,Digit%,EqualH% x%*Digit%+8,2 x%*Digit%+Digit%-2,2 x%*Digit%+Digit%-2,EqualH%-8 SetCol(White%) x%*Digit%+2,2 x%*Digit%+2,EqualH% x%*Digit%+Digit%-2,EqualH% SetCol(Black%) 0,-10,EqualW%-6,10 VoiceUpdate(X%,Y%,c%,VoiceCol%) X%,Y% FOX%=X% : FOY%=Y% plot( readpitch(G%))) R%=VUR%*VU%/64 Smiley x%=500 Equalizer Position PROCSamples XVU%=XVU%>>8 VU%=XVU% G%+=4 NbFPS SetCol(White%) 0,0,120,15 SetCol(Black%) T%=1/( /100) 0,15 "FPS: ";T% Boom(String$,B%) Write(1) $ *ScreenSave ".Scr1" Write(2) $ *ScreenSave ".Scr2" Screen(1) Write(2) B%=0 128,0,0,0 128,0,0,0 XS%,YS% I=0 100 S%=(1-(I/100)^2)*XS% A%=(I/100)^2*255 0,0,255 A=I/100 +I/100 (A)*S%, (A)*S%,10 255,0,A% & O%= (I/100*2* *10)*150*(1-I/100) S%-O%,S%+O%,30 -S%+O%,S%+O%,30 -S%-O%,-S%+O%,30 S%+O%,-S%+O%,30 ("Render "+String$) OS_SpriteOp%,9+512,ScreenArea% OS_SpriteOp%,16+256,ScreenArea%,"L",0,0,0,XS%,YScreen%*2 ,,AdrL% OS_SpriteOp%,16+256,ScreenArea%,"R",0,XS%,0,XScreen%*2,YScreen%*2 ,,AdrR% Write(1) X%=( /20)^2*XS% OS_SpriteOp%,34+512,ScreenArea%,AdrL%,X%-XS%,0,0 OS_SpriteOp%,34+512,ScreenArea%,AdrR%,XScreen%*2-X%,0,0 OS_SpriteOp%,34+512,ScreenArea%,AdrL%,0,0,0 OS_SpriteOp%,34+512,ScreenArea%,AdrR%,XS%,0,0 OS_SpriteOp%,9+512,ScreenArea% OS_SpriteOp%,16+256,ScreenArea%,"Screen",0,0,0,XScreen%*2,YScreen%*2 ,,Adr% /# X%= /50*2* *10)*50*(1- Y%=0 OS_SpriteOp%,34+512,ScreenArea%,Adr%,X%,0,0 Error =% Error$= $+" Error at line "+ Error$ File% (Error$) $File%=Error$ "OS_File",10,".Error",&FFF,,File%,File%+ (Error$) *QTMStop setpal(0,0,0) DATA &6B0,&650,&5F5,&5A0,&54F,&503,&4BB,&477,&436,&3FA,&3C1,&386 &358,&328,&2FA,&2D0,&2A6,&280,&25C,&23A,&21A,&1FC,&1E0,&1C5 &1AC,&194,&17D,&168,&153,&140,&12E,&11D,&10D,&0FE,&0F0,&0E2 &0D6,&0CA,&0BE,&0B4,&0AA,&0A0,&097,&08F,&087,&07F,&078,&071 DATA &06B,&065,&05F,&05A,&055,&04C,&047,&043,&040,&03C,&039,&036