Cursed Console #Pico1k
Plot
Oh mighty Zep, a quest for thee: to fix this bug in oh-two-three.
Time's very fabric has been torn, and monsters from the past reborn!
A pumpkin army's impossible roll befouls our once cozy console.
Its humbled clock refunds too much, permitting Cauldron's villain's touch.
Relentlessly they spin and taunt, they dare thee to remove their haunt.
Please help us take our console back and save us from their cycle hack!
Their jeering eyes provide the clue, all stars show what you must do.
A table's count below sixteen, as low as any number's been,
Negate it and they'll mock you more... the wellspring of this wretched flaw!
About
A PICO-8 bug report demo in 1023 characters for #Pico1k jam 2021. Inspired by the classic 8-bit game Cauldron (Copyright 1985 Palace Software), from which the music was reverentially reproduced. Original score by Keith Miller.
Code
_set_fps(60)๐ฉ=64โ ={}s=.001๐ด=sin while(#โ >=0)add(โ ,โ ) poke(24337,ord('โโด์ \nโฅโฌ๏ธโฌ๏ธยณยณโฌ ๏ธโ\0\0',1,14))๐ข=abs fillp(โ\1)๐ค=cos?"โถc0โถwโถt แถeโ " function ๐ญ(๐บ)all(โ )for t=0,โ,s do w=r-r/3*๐ด(t*7%โ)x=w*๐ค(t)๐น=๐ข(x)z=w*๐ด(t)l=(x*x+y*y+z*z)^.5b=1+๐ข(x/5+y/3+z)/l*5 if(y>=11-x^2/200and y<=27-x^2/83+๐น*.1or pget(๐น,-y)>0)b=8 sset(๐ฉ+x,๐บ+y,b+((b+โ)\1-b\1)*8)end end y=0while(y<9)r=2+y/16๐ญ(22)y+=1 a=0while(a<.43)d=30+15*๐ข(๐ด(a))y=d*๐ค(a)r=d*๐ด(a)๐ญ(๐ฉ)a+=s function p(v)poke2(d,v)d+=๐ฅ end ๐ฅ=2๐ฎ=12280d=๐ฎ for i=1,84do n=ord('@/\0ใ@)t๐ธแถแถใแถ แถ แตแตโโใโโใโโโ โ ใโโฌ ๏ธแตแตโฆใจใใใใฌ$+07<70+ใฏ$,08<80,ใฃโใป$)05<50)ใฏ$*06<60*&+2โ72โใ*ใฃใฏ',i) if(n<128)p(n)d-=1else for _=0,n\16%8do p(%(d-n%16*2-2))end end p(-32384)p(770) d+=316๐ฅ=68v=7169p(v+24)p(v+32)p(v)p(v)music() ๐ณ=0function ๐ฑ()p(%c+@a)c+=2end ::_::?"โถ1" while(๐ณ-8&31!=stat(20))d=12800+๐ณ%32*2a=๐ณ%128+๐ฎ+8c=๐ฎ ๐ฑ()๐ฑ()a+=128๐ฑ()๐ฑ()๐ณ+=1 a=t()*.1c=๐ค(a)s=๐ด(a)๐ป=s+2for y=-๐ฉ,๐ฉ do all(โ )for x=-๐ฉ,๐ฉ do v=๐ฉ+(s*x+c*y)*๐ป&127 ๐ท=v-73if(๐ท>0)v-=๐ท*๐ด(a*16)/2 k=sget(๐ฉ+(c*x-s*y)*๐ป&127,v)d=k\8k%=8if(k>0and v<30)k+=7 pset(๐ฉ+x,๐ฉ+y,k+(k+d)*16)end end goto _
Comments
Log in with itch.io to leave a comment.
epic colourscheme here
Small update: while typing up an explanation I found a way to shrink it to 1011 chars, so I threw in a _set_fps(60) call, bringing it up to 1023. Unfortunately that makes the web player slower even though PICO-8 thinks its running at 60fps. On my desktop it's a true 60fps though. So now the code above includes the _set_fps call, but the actual cart that's played does not so runs at a solid 30fps on the web. :)
Wow. This is amazing! ๐ฎ
I'm still trying to unpack all this (esp. the music), but I can already tell there are LOTS of awesome "tricks" being used here! ๐
Nice one ๐
P.S. - Best bug report... ever! ๐
this is incredible ๐
that trick with poke + ord to set many values (in the palette) is nifty! Iโll have to remember that one