@otrain13 Thanks!

It's inspired from @TRASEVOL_DOG amazing contributions with a bit more of a "dirty" look to it.

Another one:

140 chars

t=0 ::s:: t+=rnd(.1)-.02 for i=24576,32767 do vl=abs(sin(t+i*.0001+rnd(.1))*14) vr=vl-rnd(99)/50 poke(i,band(vr,15)*16+vl) end flip() goto s |

146

Not tweetsized, I tried to shrink it down without compromising the look but couldn't get it to 140. I guess that if the screen was interesting enough before running it, you could get rid of the print statement and make it fit.

Anyway, I think the effect is nice enough to post, I love spirals! :)

s=60t=s::a::y=rnd(128)x=rnd(128)u=x-s v=y-s q=.01*t+atan2(u,v)n=.1*sqrt(u*u+v*v)line(x,y,x-n*cos(q),y-n*sin(q),pget(x,y))t-=.1^4 ?"�",s,s,t goto a |

z=128::s::t=time()for i=0,999 do x=rnd(z)y=rnd(z)circ(x,y,1,pget(x,y)) if(i<8)circfill((t*33+i*7)%z,z-abs(cos(t/4)*z),4,8+i)end flip()goto s |

@RadicalTeapot: I love it, it looks super good! :D

133 chars:

a=128 r=rnd t=0 ::s:: t+=r(.01)-.003 for i=0,250 do x=r(a) y=r(a) rect(x,y,x+r(5)-3,y+r(a)-64,sin(t+x*.004)^a*4+t*3)end flip() goto s |

@TRASEVOL_DOG: Thanks a lot! I really like how colourful your contributions are, the last one is mesmerizing ;)

138

More spirals! Sorry! :)

p=64t=0::_::cls()t-=.0001 x=p y=p for j=200*t,t,-t do s=j*sin(j)c=j*cos(j)circ(x,y,1,j/4)circ(p+p-x,p+p-y,1,j/4)x+=s y+=c end flip()goto _ |

Ok, here's my tweetjam contribution... the countdown clock from the TV show "24" :o)

140 characters exactly:

s=59x=0t=2m=12868::s::cls()p=poke ?"23:59:"..s,50,60,9 x+=1 if(x>30)x=0 s-=1 t=2-t p(m,100+t)p(m+1,94)p(m+2,128)p(m+3,79)sfx(1) flip()goto s |

Here's the first decently cool thing I've managed to fit into less than 140 characters. A variation on the basic Langton's Ant algorithm.

o={{0,-1},{1,0},{0,1},{-1,0}} f=0 x=64 y=64 cls() while 1 do c=pget(x,y) f=(f+c+1)%4 pset(x,y,6+c%4) x+=o[f+1][1] y+=o[f+1][2] end |

Originally the pset() didn't have the +6 offset or the mod 4, but those seemed to be the magic numbers that led to a little bit of cool structure forming before the whole thing descends into chaos.

**EDIT:** Wait! Changed a few numbers around and got something way cooler.

A screenshot of some of the structures that emerge before it just turns into noise:

2 characters to spare, not sure what to spend them on...

r=rnd f=flr memcpy(0,24591,336) ::z:: x=r(128)y=r(128)c=sget(f(x/25.6)+1,f(y/25.6)+1) if (c==0) c=f(r(2)) rect(x,y,x+r(6),y+r(6),c) goto z |

*later* Realized this was biased to the lower right, fixed:

memcpy(0,24591,336)r=rnd f=flr ::z:: x=r(128)y=r(128)c=sget(f(x/25.6)+1,f(y/25.6)+1) if (c==0)c=f(r(2)) d=r(3)rect(x-d,y-d,x+d,y+d,c)goto z |

@jtruk: damn, you beat me to it ! I was about to post this yesterday:

cls(7)p={12,9,0,11,8}w=1o=circ for a=0,0.5,0.01 do c=16*cos(a)s=16*sin(a)d=1w=-w for k=1,5 do d=-d a=4+d*c+k*20o(a,68+d*8+w*s,2,p[k])end end |

but I wanted to reclaim my circfill, which I just did:

(edit:optimized further, 138 chars)

cls(7)p={12,9,0,11,8}w=16 for a=0,0.5,0.01 do d=8w=-w for k=1,5 do d=-d circfill(4+d*2*cos(a)+k*20,68+d+w*sin(a),2,p[k])end end::z::goto z |

edit: revealing the trick :)

"Oh that's nice..."

*sees the interlinking rings*

"WHAAAAA?!?!? This is some real dark magic stuff now **ultrabrite**!" ;o)

cls()print("\130",0,5,1)t=0r=rnd::s:: t+=0.2 for i=0,3^7 do x=r(16)y=4+r(10)circ(x*8,y*8,1,pget((x-t)%16,y)*(8+(t+x)%8))end flip()goto s |

It's one of them one-liners!

::s::t=time()x=rnd(128)y=rnd(128)circ(x,y,1,(t-((2+cos(t/4))*abs(x+4*cos(t+y/99)-64)+(2+cos(t/4+0.25))*abs(y-64))/16+4*cos(t/4))%8+8)goto s |

k=1 while(1) do for i=0,127 do for j=0,127 do pset(i,j,i*i+j*j+k*atan2(i,j)) end end k+=0.1 end |

I swear I've seen some of those on walls for real. :)

140 chars is it ? Kaleidoscope warp ! 127-chars.

cls()a=0 b=77 c=2 d=1.77 e=0::f::line(a,b,127-a,127-b,e)e+=.1 a+=c b+=d if(a<0 or a>127)c=-c if(b<0 or b>127)d=-d flip()goto f |

Loving the Fireball, Gamax !

Zep, I think you should totally make a TWEET category for SPLORE. The rules are, 140 chars or less.

Also, would it be possible for you to make a button so in addition to being able to run the cart in the browser, you have the option of running it in the installed PICO the user has purchased ? I know you can find or do it in SPLORE, but this would be different.

This would perhaps require a Firefox plugin you write. A button would appear next to the screen shot, "Execute."

You click it and your own PICO from your HD is run with the contents of the cart you are seeing Online. The advantage is clear. As when you run a cart online currently, even by pausing it with ENTER, if you press ENTER outside the focus, like writing a message, it is still registered in the window.

Running the cart in the true EXE would not have this problem, you would have the added advantage of no 'jerkiness' from the browser, and you could immediately view the source code for it without having to download it first.

Also maybe ALT-F4 will only shut down if you are in the FILER mode (not code, image, map, audio, or music). Optional, "Are you sure ? [Y/N]"

140

s="i must obey the rules"i=1y=4 cls(3)rect(0,0,127,127,4)function _update()m=i%(#s+1)print(sub(s,m,m),m*4,y,7)i+=1 if(m>=#s)y+=6 y=y%120 end |

@ultrabrite that 70s wallpaper one is amazing

**Edit**: realized that I was setting t=0 twice so I used the spare characters to centre the text. 139. Note: memcpy is the start of line 3, flip is the start of line 4 - it's just the page formatting that makes it look like there's 5 lines.

n=1palt(0,z)::a::cls(n-1) ?n,0,0,n memcpy(0,24576,512)t=0::b::cls(n-1)sspr(0,0,8,8,64-t/2,64-t/3,t,t)t+=4 if(t>128)n+=1 goto a flip()goto b |

Original version:

r=rnd::s::t=time()*.1x=r(128)y=r(128)c=(pget(x,y)+r(99)/98)%8%6 if (x*cos(t)+y*sin(t)+t*200)%64<32 then c+=8 end circ(x,y,1,c)goto s |

cls()y=0::o::for x=0,120,8 do for n=0,14 do i=n%3j=y+flr(n/3)line(x+i,j,x+4-i,j,flr(rnd(2))*7) end flip()end ?"" y=min(y+6,120)goto o |

A set of glyphs that's kinda big.

- Z to generate. Started as general scanline triangle rasterizer and slowly morphed into pyramid generator.

n=128::s::h,w=rnd(n),rnd(n)flip()cls()for y=0,h do x=w*y/(2*h)line(64-x,n-h+y,64+x,n-h+y,4+11*(y%2))end::t:: if(btn(4))goto s goto t |

@Btopp: that's nice and all, but tweetjam = 140 chars max (size of a tweet)

@ultrabrite Ok! Sorry. I don´t found the rules.

With some compression tricks from @sean, I was able to write Conway's Game of Life on one pico8 page. We got it down to 283 characters, and I just decided to make it a single page of the code editor.

I know it won't "fit in a tweet", but I thought I'd share it here anyway.

Hey there! I don't use the BBS much and so haven't been cross-posting my tweetcarts here, but I recently put all 50 of the ones I've made to date in a collection on itch if anyone's interested.

It's been a while! Felt like doing another one of these, this one was inspired by adventures on trainjam.

140 chars. Interestingly you can copy+paste escape chars in the PICO-8 code editor and it will replace them with the actual wide chars, but when you copy+paste to external text (e.g. a tweet) it puts the \NNN back in. So this code can actually be 134 chars in-editor but not in-tweet. With the extra space I could add a -3 to P and hide the popping top edge.

a={}::s::cls(3)for y=0,25 do a[y]=a[y]and a[y]+1or y*5srand(y)p=a[y]%130 ?"\149",rnd(127),p,11 ?"\144",60,p,15 ?"||",60,p,4 end flip()goto s |

hey RhythmLynx, nice to see this thread back!

you can replace "\144" by "--" :)

This topic is one of the best things I've ever found online. Here's my first try, a drunkard's walk --

r=64w=127x=r y=r while 1 do q=rnd(4)circ(x,y,r%5,q*q) if(q>2)x+=rnd(q) y+=q if(q<2)x-=q y-=rnd(q) x%=w y%=w r+=1 flip()end |

I had to keep it short to fit those hashtags in.

https://twitter.com/WIZRND/status/844659406688137217

couldn't sleep last night so i tried my hand at a tweetjam thing with audio. might try more later but here is a dumb little beachside noise gen

p,a,x=poke,0x3200,0x5f41sfx(0)p(x+2,1)p(x-1,1)p(x,1)p(a+1,91)p(a+67,1)p(a+65,1)::s::w=sin(x/999) x+=.0003 p(a,160+w*30)goto s |

First post, first tweetjam \o/

after seeing the IFS Visualiser by 1bardesign, I knew I had to mess around with it :)

140 characters (those hashtags take a lot of space!)

::a::cls()y=rnd(9)x=y w=y while 1 do c=1+pget(x,y)pset(x,y,c)x,y=y,(x*cos(w)-y/w*sin(w))%127 if(c>15)goto a end--#tweetjam #april3030 #pico8 |

second tweetjam \o/

140 characters.

If you're patient enough, the screen fills with other colored liquids as well. Unintentional result of integer overflow? 🤔

I hope @TRASEVOL_DOG doesn't mind me using his wonderful game as my backdrop :3

x=0p={}f=133t=0::a::z=x%f y=x/f if(t<f)p[x]=pget(z,y) c=p[x] if(y+sin(t)*7+t/f>f)z+=sin(y/60+t)-3 c+=1 pset(z,y,c)x=(x+1)%(f*f)t+=1/f goto a |

First tweetjam - Conway's game of life in 139 characters. This was a lot of fun to do and I'm so happy I got it finished. Thanks to LRP for help with it!

k=2^13::s::for a=0,k do n=0 for x=0,8 do n+=peek(k*3+a+x/3+x%3*64-65) end poke(a,n==12 and 4 or n==16 and peek(a))end memcpy(k*3,0,k)goto s |

Wanted to see how closely I could replicate the tune from another game I made in a tweetjam

a=12800 t={[27]=84,[60]=141,[65]=12,[66]=0,[67]=32}for i=0,67 do poke(a+i,({129,84,148})[i%4+1]) if(t[i])poke(a+i,t[i])end sfx(0)::_::goto _ |

My first tweetjam, and 1st use of poke ever. 126 chars. After a (long) while it gets less interesting, but that's a matter of taste.

t=1 p="012489ab3cdef76d5100" ::a:: for m=24576,32767 do c=flr((m%t)%2+t)%#p poke(m,("0x"..sub(p,c-1,c))) end t+=1/256 goto a |

[Please log in to post a comment]