The importance of Afterglow for retro games

This is Pac-Man on the Atari 2600, played on an Emulator. The game was generally seen as a horrible port of the arcade game, done under a lot of time pressure, and this video really makes it look bad. See the flickering ghosts? How could they ever release a game like that? And it’s not the emulator either, hooking up a real Atari 2600 to a modern TV has the same flickering!

Now, the game wasn’t great, but the sprite flickering was actually not an issue back them. You see, the Atari 2600 was very limited when it came to sprites:

[…]the video device had two bitmapped sprites, two one-pixel “missile” sprites, a one-pixel “ball,”[…]

Each Ghost is a sprite, so we’d need 4 sprites per scanline, which was simply not possible with the hardware. So the programmer did a clever trick (that was also used on other 8-Bit Consoles like the NES or Sega Master System at times): It would only draw one Ghost per screen refresh, so each ghost would only be drawn once every four frames. That explains the flickering, because Ghosts that aren’t drawn are invisible.

This worked because in the old days, we had these big tube TVs that were using an electron beam firing on phosphor dots to ignite them. But what is important is that phosphor doesn’t immediately go dark again when it’s not hit the next time around – the dot slowly becomes dimmer until it’s “off”. This effect is known as “Afterglow” and is the secret to make the Ghosts trick work.

On a modern LCD display, turning off a Pixel immediately turns it off, while on an old Tube TV the image slowly fades out:

This is the magic trick – the sprites are never fully invisible on the old Tube TV, and thus they could do four ghosts on a system that could only do two sprites. With the flickering going on, it wasn’t actually very noticeable either, but that greatly depended on your TV, naturally. Some newer high end ones or even computer monitors had a much quicker reaction time than the consumer TVs of the 80’s.

To show the effect in a video, I hacked together a project in XNA that illustrates the effect of Afterglow vs. No Afterglow. Note the pulsing but not quite invisibility of the bottom sprite vs. the utter flickering of the top sprite – back in the day the pulsing might have been noticeable, but it’s much better than the extreme flickering modern LCDs offer.