10.01.2013 Views

Racing the Beam : the Atari Video Computer System - Index of

Racing the Beam : the Atari Video Computer System - Index of

Racing the Beam : the Atari Video Computer System - Index of

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4K ROM provides greater fl exibility than <strong>the</strong> arcade board, but far less<br />

total storage space.<br />

The TIA also provides registers to set sprite colors: one named<br />

COLUP0 and <strong>the</strong> o<strong>the</strong>r COLUP1. In many early VCS games, including<br />

Combat, sprite colors were set once for <strong>the</strong> entire game. In later games,<br />

<strong>the</strong> program stored a different color value in one or both sprite color<br />

registers along with a different bitmap value. Multicolor sprites were<br />

implemented, too. These included Pitfall Harry in Activision’s Pitfall! The<br />

careful observer can note color banding in most <strong>of</strong> <strong>the</strong>se sprite graphics,<br />

though, which is not seen in <strong>the</strong> true bitmapped graphics <strong>of</strong> later platforms<br />

like <strong>the</strong> NES. This style <strong>of</strong> “stripe-colored” sprites is a particular<br />

trademark <strong>of</strong> VCS games. Mercifully for Tod Frye, <strong>the</strong> iconic Pac-Man <strong>of</strong><br />

<strong>the</strong> arcade game is a single color, so no fur<strong>the</strong>r ROM space or horizontal<br />

blank logic had to be expended to draw his yellow image convincingly.<br />

Combat uses two sprites, each <strong>of</strong> which fi res a corresponding missile—<br />

just what <strong>the</strong> TIA ordered, or what it was originally ordered to do. But<br />

games like Taito’s Space Invaders were not designed with <strong>the</strong> peculiarities<br />

<strong>of</strong> <strong>the</strong> <strong>Atari</strong> VCS in mind. Sprites were different in many post-1977 arcade<br />

games. Most important, <strong>the</strong>re were <strong>of</strong>ten more than two per screen! When<br />

faced with <strong>the</strong> rows <strong>of</strong> aliens in Space Invaders or <strong>the</strong> platoon <strong>of</strong> ghosts that<br />

chases Pac-Man, VCS programmers needed to discover and use methods<br />

<strong>of</strong> drawing more than two sprites, even though only two one-byte registers<br />

were available.<br />

As discussed in <strong>the</strong> previous chapter, <strong>the</strong> TIA <strong>of</strong>fers a set <strong>of</strong> horizontal<br />

motion registers for each <strong>of</strong> <strong>the</strong> sprites, <strong>the</strong> missiles, and <strong>the</strong> ball. The TIA<br />

also exposes ano<strong>the</strong>r register called HMOVE to execute changes in horizontal<br />

motion. These registers were primarily intended to be set during a<br />

vertical blank—that is, between screen draws. For example, Combat repositions<br />

both player and missile horizontal positions each frame, <strong>the</strong>n<br />

updates variables in RAM to ensure that <strong>the</strong> objects are drawn on <strong>the</strong><br />

appropriate lines, and <strong>the</strong>n updates <strong>the</strong> horizontal motion registers once<br />

at <strong>the</strong> start <strong>of</strong> <strong>the</strong> frame.<br />

Larry Kaplan, one <strong>of</strong> <strong>the</strong> fi rst developers to work on <strong>the</strong> Stella prototype,<br />

fi gured out that sprite data could be reset more frequently than once<br />

per frame. Because <strong>the</strong> VCS requires <strong>the</strong> program to control every line <strong>of</strong><br />

<strong>the</strong> television screen, it is possible to change <strong>the</strong> sprite graphics’ values<br />

and <strong>the</strong>ir horizontal positions more than once per frame. Kaplan fi rst<br />

used this technique in Air-Sea Battle, one <strong>of</strong> <strong>the</strong> console’s launch titles. In<br />

<strong>the</strong> game, multiple rows <strong>of</strong> enemies, one per row, pass back and forth<br />

across <strong>the</strong> screen. Each player controls a turret on <strong>the</strong> ground that can be<br />

aimed and fi red at targets in <strong>the</strong> air. Multiple targets are presented by<br />

[72]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!