Posts tagged vcs
The Three-Stream Versatile Kernel
- 13 October 2025
In my previous article on the Versatile Playfield Kernel, we explored how to draw complex backgrounds by choosing which register to update on each scanline. But this version didn’t address sprites in particular.
Becuase the playfield logic only took up to nine cycles per scanline, there was plenty of time left over to draw sprites using one of the typical routines. (You know the one – subtract position and height, test for boundaries, load bitmap and color, store in registers. Boring.)
Now we’re taking this concept further: what if we could control not just the playfield, but also two sprites using the same versatile approach?
The Versatile Playfield Kernel
- 11 October 2025
In Atari 2600 programming, we struggle to draw two sprites and the playfield (background) within the 76-cycle budget of each scanline. For maximum-resolution single-line updates where we change parameters every scanline, we’d need to look up and write:
2 registers per sprite (color, bitmap) × 2 sprites = 4 registers
5 playfield registers (PF0, PF1, PF2, COLUPF, COLUBK)
Tiny Atari 2600 ROMs
- 26 July 2025
On the Atari 2600, a kernel is the term for the highly-optimized assembly code that draws the display, i.e. “races the beam”.
I was pondering a question: What’s the smallest Atari 2600 kernel you can write?
I found this AtariAge thread which packs entire ROMs into 32 bytes. Can we do better?
VCSLib, A C Library for the Atari 2600
- 05 November 2023
The previous blog post, “Your 8-bit System is a Weird PDP-11”, discussed several challenges faced when developing in C, especially for the Atari 2600/VCS.
We’ve overcome those challenges as best we can, and now we can introduce VCSLib, a support library for programming the Atari 2600/VCS with CC65.
Let’s take a tour.
