Steffest digitale pulptuur

Amiga DFunk

The past few weeks I have been collaborating with GigaBates and mA2E to create an "Amiga Demo".

For those unfamiliar with the demoscene, it's a geeky gathering, usually with some friendly competition, to show off creative and technical skills by making "demos": a short media production combining graphics, music and cuttin edge programming into 1 showcase.
Specifically in the retro computer scene, it's also a continuous quest to see how far you can push these wonderful machines and to make them do things never dreamed possible.

We opted for a 64kb "intro" for the Classic Commodore Amiga 500 - a personal computer released in 1986 with 1MB of total memory and a humble CPU running at 7mhz. (basically: a computer that is a thousand times slower then your current phone)

mA2E came up with this funky tune, I did the graphics, GigaBates coded the effects and made it all happen.
I'm happy to say it won the 1st price at the Nova2023 DemoParty this weekend in the "Old School Demo" category.
You can find it at https://www.pouet.net/prod.php?which=94543.

Some screenshots:


And here's a video capture of the demo.



It was quite a challenge to fit everything into 64kb.
Every image was methodically analysed to get it as small as possible.
  • Can we reduce the colour count even more?
  • Can we half the height and double it again in code while palette-shifting it, without sacrificing too much detail?
  • Can we replace some parts with copper lines?
  • If we loose the dithering, it compresses 1kb smaller, is that worth it?
  • Can we optimize the palette even more to squeeze out those last few bytes?
Super interesting.
Lessons learned:
  • Nobody codes directly on Amiga anymore: it's all cross-compilation.
  • Writing your own tools pays off: this is such a niche of a niche, that general purpose image software just isn't up for the job.
    Being able the add the stuff I needed to my https://github.com/steffest/DPaint-js was super helpful to quickly iterate and get the most optimal results possible.
    So: colour cycling, fine-grained palette controls and frame based animation will be part of the next release.
  • Hats off to GigaBates: I made rough versions of my ideas in JavaScript that need a modern browser and a multi-gigahertz CPU to run, he was able to transform that into super optimal assembler that runs on a standard 7mh Amiga 500 ... impressive!
ah, and the best part: it's all open source! => https://github.com/grahambates/desire-dfunk

That was fun, let's do it again!


Steffest on 6/26/2023 2:12:37 PM
Comments:0


Back to index

This is http://blog.stef.be optimised for your mobile device