The No-CPU Amiga Demo Challenge

75 doener 22 8/29/2025, 7:20:28 PM github.com ↗

Comments (22)

Martin_Silenus · 4m ago
Demoscene has always been about hacking machines to make them do what they're not supposed to do.

I made a "Star Wars" scrolltext once, on a so-called "bazaar" screen with other effects... but it was on ST, kind of challenging ;) I still have the floppy disk in a box, but I'm afraid it's been demagnetised like the others over time (~35 years ago).

kfarr · 2h ago
Quick link to a video of one of the No-CPU demos, way better than what I was expecting...

https://youtu.be/OXT5MrDdyB8?si=cZChImbAi3JBbFFl&t=49

This also gives me a bit more understanding of how the Video Toaster was possible to architect in a day with such slow CPU clock speeds. It seemed like magic at the time compared to limited capabilities of IBM PC clones. I hadn't realized how much capabilities these other Amiga chips provided.

bitwize · 1h ago
The Video Toaster was built for the Amiga mainly due to the Amiga's built-in genlock. A similar contemporaneous product for PCs existed, the Matrox Studio, but it was pricier (due to needing extra hardware) and not as cool.
rasz · 21m ago
Sadly no build-in genlock, just ability to be easily genlocked. Full build-in genlock and one input pin would allow Amiga to easily read PCM audio stored on VHS with no external hardware https://en.wikipedia.org/wiki/PCM_adaptor
mjg59 · 21m ago
Some additional context that isn't really covered in the readme - there are two components in the Amiga chipset that are especially relevant here, the copper and the blitter. The copper (named because it's a coprocessor) is a separate execution core contained within Agnus, one of the custom chips. It only supports three instructions - move, wait, and skip. Skip will skip the next instruction if a condition is met, wait will block execution until the condition is met (in both these cases, the condition can only be the location of the video beam), and move can write an arbitrary value to a custom chip register. This means that the copper can't write to other pieces of hardware (like the CIA chips that control various things like system timers and the audio filter), but also that it can't write to RAM. The copper is used fairly heavily in the demo scene, but in gaming it's probably most commonly used to reprogram the colour palette as the screen is being displayed, increasing the number of on-screen colours. The code the copper runs is in RAM so the copper can't directly modify it, but the copper can reprogram the registers telling it where its code is, so it's possible to use the skip instruction to conditionally bounce to different code depending on where you are in scanout.

The blitter is another coprocessor with a different set of limited features. Blitter as a generic term refers to a piece of hardware that can copy memory from one location to another without CPU involvement, but the Amiga blitter is more full featured than that. It also has the ability to render lines, fill areas of the screen, and apply shifts and masks to data rather than just copying it. Of course, when I say "render lines" or "fill areas of the screen", what I actually mean is that it can write specific patterns to regions of memory - there's no actual requirement that they be on screen at the time.

A really important thing here is that while the copper can't write to memory itself, it can configure the blitter, and the blitter can then modify memory. One fun thing here is that there's absolutely nothing stopping you from using the blitter to modify the code that the copper is executing.

The naive implementation of a no-cpu demo would simply be to load all the assets into RAM and then have the copper reprogram the custom chips to display them and play audio. But combining the copper and the blitter gives a turing complete execution environment that ought to be able to do almost anything you could do with the CPU (the blitter can't touch hardware registers so you're still limited to whatever registers the copper can access, and you can only access the RAM the custom chips have access to, not the larger range of fast RAM), just somewhat more slowly.

lttlrck · 57m ago
Tremendous. Miss my Amiga and booting up the latest demo with my mates. It was a different time.

Interesting parallels with GPUs too.

Razengan · 2h ago
I kinda wish each "era" of computing/video games lasted 3-5x longer than it did.. :')

I'd have loved to live through 10 years of the Commodore 64, 10 years of the Amiga, 10 years of the NES, 10 years of the SNES...

Keyframe · 2h ago
Seems we were the lucky generation. In a way we did. As they say, when you're 10, 1 year is 10% of your life and lasts forever. Now, years turned into months. Time _does_ pass slower when you turn off the intertubes though.
uz3snolc3t6fnrq · 2h ago
we'd still be on the pentium pro by now. but imagine all the Doom clones we could have!
nullsmack · 2h ago
That gave me a nightmare vision of Doom clones where you pay money to appear as a different sprite and it's inflicted with last man standing type game modes and all kinds of other bad things modern games do.
uz3snolc3t6fnrq · 1h ago
you pay money to appear as a different sprite with shiny particles around it. important distinction, of course.

and iddqd costs ten bucks to unlock, but it's part of a lootbox with all the other cheat codes in it

Razengan · 2h ago
I'm fine with that

only if we got more Heretic/Hexenlikes too!

… Ya know, I think Doom may have actually been a parallel-universe/built-by-aliens type of fluke: It seriously accelerated gaming and the social perception of gaming, and in turn pushed computer technology adoption towards 3D cards (and everything else required to support them) much faster than it may have happened without Doom.

So I think if certain "killer apps" weren't released when they did, then maybe people might have been fine with tech chugging along at a more relaxed pace..

smallstepforman · 2h ago
With the current silicon temperature dissipation limits, we’re in a 10 year cycle now (and growing)
Razengan · 2h ago
But everything feels pretty much the same and has been "good enough" for a long while now, with little left to look forward to.. I mean just look at the Switch 1 vs Switch 2.

Back in "those days" you could literally count the extra colors you would get to see on the screen after each new generation!

dylan604 · 1h ago
The PS1 survived quite a while as well to the point some complained it was eating into PS2 sales numbers
nsxwolf · 2h ago
I think those all had close to or more than 10 years. SNES had the least but C64 was a retail product for 12 years.
lawlessone · 2h ago
Stuff would certainly be very well optimized near the end of each era.
Razengan · 2h ago
Just look at the demos people are still making now for the C64, ZX Spectrum, and even the OG IBM PC! Multicolor 60 FPS on CGA!
NooneAtAll3 · 1h ago
can someone link some kind of documentation?

what are these not-CPU chips even capable of?

agar · 16m ago
A great description was just posted as a comment here: https://news.ycombinator.com/item?id=45068268#45070258
dylan604 · 1h ago
https://en.wikipedia.org/wiki/Amiga_Chip_RAM

Alice, Lisa, Paula were some of the chips that made the Amiga the Amiga.