One of the main themes of Racing the Beam is the strong affinity between the Atari VCS and the CRT television. The system was designed around the TV and it interfaces with that display in an unusual and specific way.
In today's world of huge, sharp LCD monitors, it's hard to remember what a videogame image looked like on an ordinary television of the late 1970s. Emulators like Stella make it possible to play Atari games on modern computers, serving the function of archival tool, development platform, and player for these original games. But unfortunately, they also give an inaccurate impression of what Atari games looked like on a television.
An Atari game played on a television would exhibit a number of visual characteristics that cannot be seen on an LCD display:
Texture. The display itself is not constructed out of pixels like a monitor, but out of the phosphorescent glow of an electron beam as it shines through a focusing grate. The result produces slightly separated colored dots on the screen, which become less visible as the viewer moves away from the set.
Afterimage. The phosphor glow padding a bit of time to "burn off" and leaves more of an afterimage on the human retina compared to an LCD display. As a result, images might linger after they had moved or changed. Atari programmers took advantage of this feature to "flicker" objects between frames.
Color Bleed. The edges of sprites and scanlines appear as sharp edges in an emulator. But on a television, luminance from these areas would bleed into neighboring sectors, both softening the hard edges of pixel-objects and blending colors together.
Noise. A television transmission is sent via RF, so a natural amount of noise is introduced into the image... this is hard to see in a normal TV broadcast, but the large, flat areas of color in a videogame will exhibit slight vibration.
Many of today's players may only experience Atari games in emulation. Indeed, many of my students may have little to no memory of CRT televisions at all. Given such factors, it seems even more important to improve the graphical accuracy of tools like Stella.
In Spring 2009, I tasked a Georgia Tech Computer Science capstone group to modify Stella, adding settings to simulate the CRT behaviors described above. The group consisted of five committed and talented CS seniors: Edward Booth, Michael Cook, Justin Dobbs, Will Rowland, and Prince Yang.
The results are, to my eyes, fantastic. Take a look at the before/after comparisons below and you'll see the difference immediately (please click for full-resolution images; the results are harder to see scaled down).
In this sample from Yars' Revenge, the texture of the scanline/CRT grid pattern is noticeable, whereas the LCD emulated version looks like flat areas of color. Here you can also see the faint afterimage of the Yar as it moves toward the Qotile shield.
Pac-Man clearly demonstrates texture and noise on the display, as well as the effect of color bleed, which reduces the harshness of the sprites. Here you can also see how the system accentuates afterimage, making the flickering ghosts of this game linger more, as they would have done on a CRT television.
In Enduro, the color bleed effect is evident again. Here you see not only how much more realistic the car sprite would have appeared on a television, but also how the multiple colored lines on the horizon would have blended with one another, creating a more credible sunset.
Despite being mighty impressive, the results in a live game are far more remarkable. Edward and his colleagues have done a fantastic job.
These features are now branched into the free, open-source Stella emulator, where the effects will be available as a configurable option. Hopefully these features will benefit players, creators, educators, and archivists alike. Given that we've placed the code back into Stella's repository, I'm also hopeful that this software might be extended for use in other emulators for computer systems that used televisions as their primary output.