Demo Amiga Copperbar code written in C to support the Meet the Copper video
Go to file
John Bintz 98be2de52a Update README 2023-06-20 07:17:34 -04:00
.gitignore Initial commit 2023-06-20 07:15:36 -04:00
README.md Update README 2023-06-20 07:17:34 -04:00
actual complex demo Initial commit 2023-06-20 07:15:36 -04:00
actual complex demo.c Initial commit 2023-06-20 07:15:36 -04:00
chunky vertical Initial commit 2023-06-20 07:15:36 -04:00
chunky vertical.c Initial commit 2023-06-20 07:15:36 -04:00
intro Initial commit 2023-06-20 07:15:36 -04:00
intro.c Initial commit 2023-06-20 07:15:36 -04:00
two columns of lines Initial commit 2023-06-20 07:15:36 -04:00
two columns of lines.c Initial commit 2023-06-20 07:15:36 -04:00

README.md

Amiga Copperbars Examples from "Amiga rasterbar are cool"

These are the code files used to generate the rasterbars effects on the Agnus/Copper Industrious Rabbit video Meet the Copper. I built them to compile in SAS/C 6.58:

sc <filename> link

They're written in C and, except for actual complex demo.c, are left pretty unoptimized so they're more readable. Writing them in assembler and with more tricks can get them to perform faster, at the expense of a lot of readability for a beginner.

actual complex demo.c will not run at full 50FPS on a stock Amiga 500, but intro.c will (or at least should).

They also don't work on NTSC Amigas! I wait for a position well below the max NTSC Copper vertical position to detect the end of the vertical blank. If you want to modify these for NTSC, please send patches to me via the contact instructions on the About page.

Intro

The three horizontal bars moving up and down at the beginning of the video.

Chunky Vertical, Two Columns of Lines, and Actual Complex Demo

The three different demos at the end of the video.

Random numbers

Intro and Actual Complex Demo both use FastRand to generate pseudo-random results in the demo, using the microseconds since the machine was turned on as the initial seed (using timer.device). This required enabling audio DMA for some reason that I don't understand. If you know why, please tell me via the About page!