7

I occasionally see video captures of Atari 2600 games that have horizontal bars down most of the left-hand side of the screen, as in this video of Star Voyager by Imagic:

Atari 2600 Star Voyager

It's not clear to me whether this is just on some games, or if it's on all video generated by the 2600 and is just usually hidden either by a black border or by overscan.

What exactly causes this? I'm looking for a detailed technical explanation, not just "it's an artifact of the TIA" or something like that.

1
  • These TIA notes go rather in-depth and also explain this “comb effect”. Search for “hides” in these notes.
    – WimC
    Nov 13, 2021 at 13:10

1 Answer 1

8

Each moveable object on a 2600 is handled by an individual counter. Each counter has the same period as the width of the display and triggers a new output of the object when it wraps around.

Horizontal placement is achieved coarsely by having the CPU hit an appropriate address that prematurely resets the counter. From then on the object is as whatever horizontal position the raster was at when the CPU reset the counter.

Partly because the processor isn’t as fast as the pixel clock and partly to simplify small movements of existing objects there’s also a feature called HMOVE. You specify an offset for the object of between +8 and -7, hit HMOVE and the object will be moved by that much relative to its current position during the horizontal retrace.

But here’s how that’s implemented:

The display is disabled for the first eight clocks. That also stops the clock to the object counters. So they are inherently moved 8 clocks to the right, because the raster keeps running even though the wrapping counters temporarily pause.

If you’ve specified any movement other than +8 then the object clock is incremented during the retrace period up to 15 times, to produce the range of offsets from +8 (no additional increments) to -7 (a full 15 of them).

Tge counters are polynomial and therefore can’t feasibly be decremented.

So, in short: those lines on the left are to allow fine object positioning and, in some cases, limited motion, and are a artefact of the way that objects are implemented such that there’s no common counter and no inputs to the objects other than increment and reset.

You’ll even notice that in most titles the positions of the horizontal correlate with the vertical positions of objects.

(As an aside: this correlates closely to how you’d implement things in pre-microprocessor arcade games, which tended to have dedicated circuits for different objects; it obviously differs hugely from the way almost every other video processor with objects has been implemented since, in which you specify a horizontal position directly and it takes effect via direct comparison with a common counter)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.