From the vault: Mindflow

Introduction:

I always like watching Flashparty, an Argentine demoparty that always has crazy and different oldschool, wild and petscii/ascii entries. I've released a couple of intros there in the past, so for this year coming off of the development for Wasteland I didn't have anything specific ready for the party, so I checked my hard-drive to see if there was something different in style to my last few intros that would be good to release as an intro.

Luckily, I found this thing from way back in 2022 from when I was still actively doing TIC-80 development and which I thought would make a nice intro with some fresh visuals.

Development:

With the intro being developed quite a while ago I don't recall the exact development anymore, but the visuals and sound came together in three different stages as there were 3 versions of the intro in the folder.

Version 1: The visuals:

The first version of the intro was just doing the basic visuals which consist of doing what I personally call a 'polar projection' to the coordinate space my calculating the squared-distance to the center of the screen and dividing both the X and Y coordinates by this, like so:

z=(X*X+Y*Y)/599+.2
x=X/z
y=Y/z

The +.2 here is to avoid a division by zero as well as cut out some of the artefacting at the center

Then this new coordinate space is fed to a julia-type of fractal calculation which is then in turn used for the final color calculation that generates the effect visuals for this intro:

for i=0,1 do
X=x*x-y*y + 240*sin(a/99)
Y=2*x*y + 240*sin(a/86)
x=X/32
y=Y/32
end

Final pixel color is then calculated using an asymetric AND pattern using the final x,y values.

Version 2: The texts:

Now that the effect was up and running it was time to start to add some flair. So I started to experiment with adding some sound (using register banging) and texts, so I settled on the words "free","mind" and "flow" which would give me some nice combinations when randomized and combined.

Version 3: The music:

Whilst the sound register banging was okay as a first attempt at sound, it didn't sound great plus it didn't fit the vibe of the rest of the intro. So since there was still a bit of space left I went back a few minimalistic musicplayer experiments which I did that same year and used one of those as the basis for the music.

The musicplaying routine uses 4 base note-offsets (0,5,0,7) for both the bassline and lead sounds. The first channel just plays a bassline on the first 2 octaves using the bass notes like so:
note = n[t/512%4] + t/24%2*12

Then the second channel is using a slightly more complex note-pattern as the main theme on the second octave like so:
note = n[t/512%4] + n[t/8%4] + 24

Combining these notepatterns with some volume ramping resulted in the music that ended up in the intro. Packing everything together already got me close to the final size of 256 byte with only a few byte over limit.

Sourcecode:

Here is the sourcecode for the entire intro put together:

a=0l={"","free","mind","flow"}n={0,5,0,7}
function TIC()a=a+1s=math.sin
for k=a&1,136,2 do for j=0,240 do
X=j-120Y=k-68
z=(X*X+Y*Y)/599+.2
x=X/z y=Y/z
for i=0,1 do
X=x*x-y*y+240*s(a/99)
Y=2*x*y+240*s(a/86)
x=X/32y=Y/32
end
pix(j,k,x//4&y//8)
end end
sfx(2,n[a//512%4+1]+a//24%2*12, 9,2,-a&7)
sfx(1,n[a//512%4+1]+n[a//8%4+1]+24, 9,1,-a&7)
print(l[a//64%4+1],192,64,a//8)
print(l[a//86%4+1],32,64,a//8)
end

Conclusion:

It was fun to release something a little different from my last few intros that still does some fresh things. However the inclusion of music in this size didn't allow me to do more of a buildup/progression, but in this case I think it was worth the tradeoff.

For more information, you can check out the intro as well as other great productions at Flashparty 2025 on demozoo.

Return to blog overview