0,]']>S}Wup8d%qy)6o;]AsVl3Y.Y>Z^ZO[/Z\/_O_O+VXZ[\]]^^^^^^^^^^_____________#PTWY[\^^^^^^^^^^^^^^^^________sRoRSRoRԄ׆؆؇ه߼PQQQQQRRRRSSTUVVWWXXYYZZZ\\]^^G   s @```` `aabbcdeefggggfffhhjjklmnot@3 @ @ @ @ @ @ @ @@@@ @ @ @ @ @ @ @@@@cccccccccccccccccccccccccccccccccdccdcdcccdcdccdcdcccd    aa aa a aa a aa    aa aa a aa a aaV    aa aa a aa a aa    g g gggggggVa    aa aa a aa a aa    aa aa a aa a aa        g g ggggggg gg ggd0d @ @ @ @ @ @ @ @ @ @ @ @` @ @ @ @ @ @ @ @    a a aa aa    a a aa aa       b b bb b bbb bb b b bb b bb b bb b@p`P@0 p`P@0 bp`P@0 p`P@0 cdccdcdcccdcdccdcdg gggA a aaA a aA a a aaa a aaAA a aaA a aA a a aaa a aaA @  @ @ @@@@ @ @  @ @ @ @ @ @ @cdcdcdcdcdcdcdcd   _A a aaA a aA a a aaa a aaAA a aaA a aA a a aaa a aaA_A a aaA a aA a a aaa a aaAA a aaA a ag g ggggggg  a a  a  aa a  a  aa a  a  aa a  a  a00 @ @ @ @ @ @ @@@@ @ @ @ @ @ @ @@@f_a AqAaAaAaAA  LIPP&PfafaaaaafafaaaaaH" -- title: sPhINx -- author: theScratchinator -- desc: TIC-80's First Full Demoscene -- site: website link -- license: MIT License (change this to your license of choice) -- version: 0.1 -- script: lua ms=1 flash=false anitimer=0 screen=-1 bootupchime=false mp=false t=0 t1=0 toimer=0 ax=0 ay=0 a=0 ii=0 i=0 chs=" --SPHINX-- Thanks for watching the 'first' full demoscene on TIC-80. This took like 5 months to finish it from the idea, all the way to finished product --BACKSTORY-- I started this in September when school started so i didnt get alot of time to work on this, and here we are! I thoght that i will never finish this but i was able to, it was really hard to think of something cool and doesn't lag TIC-80. --QUESTIONS-- 'Why did you name it sphinx?', becuaes I had no other ideas. 'Why is the main track called enigma?,the same, becuaes I had no other ideas. 'Will there be more?', There will, dont worry ;) --MUSIC-- Enigma : CMOS, Credits : Quazar this message will repeat very soon :/ " -- #### NECESSARY SETUP! #### t=0 dirs={ {1,0},{-1,0},{0,1},{0,-1},{1,1}, {-1,-1},{1,-1},{-1,1} } -- #### #### function TIC() anitimer=anitimer+0.0166666667 ticks=time()/1000 tempo=peek(0x13E7C) patt=peek(0x13FFD) f1=peek(0xFF9C)|((peek(0xFF9D)&0x0F)<<8) f2=peek(0xFFAE)|((peek(0xFFAF)&0x0F)<<8) f3=peek(0xFFC0)|((peek(0xFFC1)&0x0F)<<8) f4=peek(0xFFD2)|((peek(0xFFD3)&0x0F)<<8) v1=peek4(0x1FF3B) v2=peek4(0x1FF5F) v3=peek4(0x1FF83) v4=peek4(0x1FFA7) v1e=v1/2 v2e=v2/2 v3e=v3/2 v4e=v4/2 lv1=v1/7 lv2=v2/7 lv3=v3/7 lv4=v4/7 cls(0) if screen==-1 then t1=t1+0.1 if anitimer==1 or anitimer>1 then spr(263,13*8,7*8+math.sin(t1),0,1,0,0,5,2) if not bootupchime then bootupchime=true sfx(63,'C-5',-1,0) sfx(62,'C-4',-1,1) end if anitimer==3 or anitimer>3 then cls(0) if anitimer==4 or anitimer>4 then screen=0 end end end end if screen==0 then if ms==1 then toimer=toimer+0.0166666667 cls(0) if not mp then mp=true music(0,0,0,false) end if patt==0 then t1=t1+0.1 font("WARNING:",96,24+math.sin(t1)*2,0,8,8,false,1) if toimer>1 then font("THIS DEMO CAN CAUSE SOME",24,32+math.sin(t1)*2,0,8,8,false,1) font("TO HAVE EPTILEPTIC SEIZURES",32,40+math.sin(t1)*2,0,7,7,false,1) if toimer>2 then font("VIWER DISCRESION IS ADVISED",32,56+math.sin(t1)*2,0,7,7,false,1) end end end if patt==1 then t1=t1+0.1 spr(384,88,56+math.sin(t1)*2,0,1,0,0,9,2) if toimer>8 then xprint("A dynamic music-display demo",120,72+math.sin(t1)*2,{12,15},false,1,false,0,false) end end if patt==2 then t1=t1+0.1 xprint("You get the point",120,56+math.sin(t1)*2,{12,15},false,1,false,0,false) if toimer>15 then xprint("Lets Get Started!",120,72+math.sin(t1)*2,{12,15},false,1,false,0,false) end end if patt==3 or patt==4 then if not flash then flash() flash=true end for px=0,60 do for py=0,34 do t=t+0.5 rect(px*4,py*4,2,136,math.sin(t)*v4) end end ax=ax+0.05 ay=ay+0.1 spr(256,math.sin(ax)*32+120,math.sin(ay)*32+63,1) spr(257,math.sin(ax-1.4)*32+120,math.sin(ay-1.4)*32+63,1) spr(257,math.sin(ax-1.2)*32+120,math.sin(ay-1.2)*32+63,1) spr(257,math.sin(ax-1)*32+120,math.sin(ay-1)*32+63,1) spr(257,math.sin(ax-0.8)*32+120,math.sin(ay-0.8)*32+63,1) spr(257,math.sin(ax-0.6)*32+120,math.sin(ay-0.6)*32+63,1) spr(257,math.sin(ax-0.4)*32+120,math.sin(ay-0.4)*32+63,1) spr(257,math.sin(ax-0.2)*32+120,math.sin(ay-0.2)*32+63,1) end if patt==5 or patt==6 then a=a+3.14159/240 for i=0,300,math.abs(math.sin(t)*20+5) do t=t+0.01 circb(120*math.sin(a)+120,34+54*math.cos(a),i+time()/40%math.abs(math.sin(t)*20+5),v4) circb(120*math.cos(a)+140,34+54*math.sin(a),i+time()/40%math.abs(math.sin(t)*20+5),v4) end end if patt==7 or patt==8 then for fx=0,240 do t=t+0.5 line(fx,0,0,fx,math.sin(t)*15/v4) line(fx,0,fx,136,math.sin(t)*15/v4) end end if patt==9 or patt==10 then for fx=0,240 do t=t+0.5 line(fx,0,0,fx,math.sin(t)*15/v4) line(fx,0,fx,136,math.sin(t)*15/v4) end rect(0,0,60,v1*6,v1) rect(60,0,60,v2*6,v2) rect(120,0,60,v3*6,v3) rect(180,0,60,v4*6,v4) end if patt==11 then circ(120,68,v3*3,v3) end if patt==12 or patt==13 then for px=0,120 do for py=0,68 do t=t+0.1 pix(px*2,py*2,math.tan(t)*v4) end end rect(0,0,60,v1*4,v1) rect(60,0,60,v2*4,v2) rect(120,0,60,v3*4,v3) rect(180,0,60,v4*4,v4) end if patt==14 then for d=1,25 do t=t+0.001 spr(math.random(416,418),math.sin(t*2)*120+(d*5),math.sin(t)*60+(d*3),0) end end if patt==15 then ms=2 mp=false end -- rect(0,0,16,16,0) -- print(math.floor(toimer)) end if ms==2 then cls() if not mp then mp=true music(1) end if patt==0 then circ(120,68,v4*3,v4) end if patt==1 or patt==2 then circ(120,68,v1*6,v1) circ(120,68,v4*3,v4) end if patt==3 or patt==4 or patt==9 or patt==10 then for px=0,60 do for py=0,34 do t=t+0.5 rect(px*4,py*4,2,136,math.sin(t)*v4) end end end if patt==5 or patt==6 or patt==11 or patt==12 then for px=0,120 do for py=0,68 do t=t+0.1 pix(px*2,py*2,math.tan(t)*v4) end end end if patt==7 or patt==8 or patt==13 or patt==14 then for fx=0,240 do t=t+0.5 line(fx,0,0,fx,math.sin(t)*15/v4) line(fx,0,fx,136,math.sin(t)*15/v4) end rect(0,0,60,v1*6,v1) rect(60,0,60,v2*6,v2) rect(120,0,60,v3*6,v3) rect(180,0,60,v4*6,v4) end rect(0,100,240,80,0) i=0 while i<75 do print( string.sub( chs, math.floor(ii+i)%(string.len(chs)), math.floor(ii+i)%(string.len(chs))), 0+(i-(ii%1))*6, 80+math.sin(ii+(i/4))*4+32, 12) i=i+1 end ii=ii+0.075 end end end -- #### PRINT EXTENDED! #### function xprint(txt,x,y,col,fixed,scale,smallfont,align,thin,blink) if blink then if t%(60*blink)//(30*blink)==1 then return end end if not x then x=120 align=0 end if not y then y=63 end if not col then col={12,0} end if type(col)=="number" then col={col} end if not scale then scale=1 end local width=print(txt,0,-100,0,fixed, scale,smallfont) local posx=x if align==0 then posx=x-(width//2) elseif align==1 then posx=x-width end if col[2] then local len=8 if thin then len=4 end for o=1,len do print(txt,posx+dirs[o][1], y+dirs[o][2],col[2],fixed,scale, smallfont) end end print(txt,posx,y,col[1],fixed,scale, smallfont) end function flash() cls(12) cls(13) cls(14) cls(15) cls(0) end