viznut's amazing discoveries

[2007-04-02]

Atari 2600 democoding

I'm unable to visit the Breakpoint demoparty this year, but I have contributed some code for an Atari 2600 demo that will be released there. I won't be any more specific until the compo is over, so consider this another wild demoscene rumor until then.

This was the first time I have ever programmed anything for the 2600. I often find myself comparing it to the VIC-20: both are very simple machines with a 6502(-compatible) processor and very little memory space, and democoding on both requires a lot of cycle-counting and rastersync.

Eight-bit platforms, especially the most extreme ones, are often frustrating, but the frustration doesn't always come where you expect. For example, I wasn't irritated at all about the 128-byte RAM of the 2600. It just belongs to the challenge, like the fact that the CPU needs to "spoon-feed" all the visible stuff to the video chip at the precise scanlines. Instead, I found myself cursing that TIA only remembers half a scanline instead of a whole scanline of background pattern. So, if you want to show non-symmetrical and non-repetitive patterns, you need to keep poking bytes even if the scanline is identical to the previous one. Also, the logic for sprite placement and movement is braindead, at least for demo effects that want to use sprites for unusual purposes.

Anyway, much of my current 8-bit inspiration comes from the 2600. The VIC-20 does not give me similar kicks anymore - perhaps it has just became too tame and familiar or perhaps I just want to increase the level of challenge. A big bunch of classical effects have already been implemented on the VIC-20 (including texture-mapped tunnels, wolfenstein 3d engines, kefrensbars, rotozoomers, glenzvectors etc.) so it's getting more and more difficult to surprise the audience codewise. The 2600, however, is still quite virgin to the demoscene, so you can expect more 2600 stuff from me in the future.