Amiga Copper Demo and Module Music Video

June 8, 2021

While researching a future post about the Copper functionality of the Amiga’s Agnus custom chip, I decided to really dig in and figure out how the Copper worked and how you would write some of the bare metal custom chip code. The process of making this video made me realize I need to do a few other posts before I can do one about the Copper, as there are a lot of prerequisites to understand it, at least at the level I am now able to understand it at. I also wanted to showcase a lot of the kind of music the Amiga was known for, module music made on music trackers. So here’s a nice, long video, with a real Amiga Copper demo (the kind I know I would make made back in the day, cartoon characters included, if I had these skills in the 90s!) and a lot of really great music to listen to.

How was it made?

  • The animation was done in Krita on Android. I used a pixel brush for the in-Amiga emulation to ensure all the pixels lined up with the 320x256 screen I was working on. The rest was done normally with regular brushes.
  • I used GIMP to convert the images destined for the Amiga into 16 color PNGs. The trick to keeping a consistent palette across all of the images was:
    • Convert one image to a 16 color image.
    • Swap around the colors in the index so that the color index to knock out via the Copper effect was index 0.
    • Create new layers to physically swap the color pixels in the image. You have the ability to select all of the pixels of a particular index, and then you can fill a new layer on top of the original to change the color.
    • After you’ve swapped one of these around, you can convert the remaining ones using the first image’s palette.
  • I used Personal Paint to convert the images from PNGs to IFFs.
  • I loaded all of the images, one by one, into memory banks in AMOS Professional. I loaded the first image again into a separate memory bank, but one that preserved screen resolution and palette, to simplify app initialization. I flip through these memory banks to animate Bamboo, as the IFF animation tools in AMOS Pro seem a bit broken.
  • I wrote a lot of AMOS BASIC, which I hadn’t done since 1997, and I referenced a lot of Amiga Copper, bitplane (Denise’s territory), and DMA examples. These ones helped out the most:
  • I ran all of this in FS-UAE, and captured it with vokoscreenNG.
  • I edited the video with Kdenlive.
  • I converted the music mod files using ffmpeg. It was the fastest way to convert a large number of modules at once for evaluation and movie use. I hope they sound OK!

Code & Assets

I put the AMOS code – the bundled .amos file, the .abk with the animation frames, and a .txt file with the code in plaintext – up on GitHub. The code is released under an MIT license, but the artwork is copyright by me, all rights reserved. I’m no expert at Copper coding, so if there are improvements (besides rewriting it in assembler. Learning 68K assembler is on my list of things to do for R1KR), I’d love to hear them! For it to run fast enough, I emulated a 68030 with JIT enabled in FS-UAE.

Music

All the music is either Public Domain or Creative Commons Attribution 3.0, and it all comes from The Mod Archive. Check out all of these artists' awesome work! There’s way more there than I could put into this 90 minute video.

  • The beat

    • Andreas Viklund
    • CC-BY 3.0
  • Frostbiter

    • Pip Malt
    • CC-BY 3.0
  • Super Dance

    • Katie Cadet
    • Public Domain
  • NeuroTransfer

    • JAM
    • Public Domain
  • Momentary Meditation

    • K. Jose
    • CC-BY 3.0
  • Computer Adventures Of Drozerix

    • Drozerix
    • Public Domain
  • Filterness

    • Katie Cadet
    • Public Domain
  • Additional Discomfort

    • Pip Malt
    • CC-BY 3.0
  • Gate 303 - demomix

    • Andreas Viklund
    • CC-BY 3.0
  • the Epic Chip

    • M0ns0n/Drozerix
    • Public Domain
  • Pretty Big Stench

    • Pip Malt
    • CC-BY 3.0
  • Harmony-PartyEdit

    • Andreas Viklund
    • CC-BY 3.0
  • Digital Rendezvous

    • Drozerix
    • Public Domain
  • Simple Chip Tune

    • JAM
    • Public Domain
  • Dangerous Radiation

    • JAM

    • Public Domain

  • Sound Effects

    All sound effects, except for Bamboo’s “heh” which was all me, come from Freesound, and are also either Public Domain or Creative Commons Attribution 3.0.

    What’s next?

    I’ll be converting some of my prior posts into short YouTube videos on the Rabbit with 1000 Repos channel, reworking them and updating them for a more visual medium. Once they’re done, I’ll post them here for viewing!

    Changelog

    • 2021-06-08: Initial post.