A Little Goomba As Seen On A Real NES
WARNING: Don't stare at this image if you have epilepsy or get headaches easily.
In 1985, a new gaming console: the Nintendo Entertainment System (or NES) hit the market. Bundled with the game Super Mario Brothers, it quickly became a big success and almost single-handedly renergized the home console gaming industry after the great video game crash of 1983.
Many of today's gamers have had the opportunity to play Super Mario Brothers on an NES console hooked up to an old school, non-HD, tube-TV set. That is how I enjoyed the game back when I was in high school in the late 80's. A growing number of gamers have only ever experienced this game in an emulator on their computer or tech-device of choice. It may play the same and sound the same (for the most part) but it's not the same experience.
For those who have forgotten, or perhaps never had the opportunity to see what this game looks like on the original hardware when hooked up to a tube-TV set, I present an up close and personal look at a Little Goomba. I'll explain why it appears to be shaking later in this article. This is kind of an experimental image - displaying the character in true NES form this way. Depending on possible complaints, I may replace it with a non-wobbly version.
Why display not Mario himself? That was my original plan, but after reviewing several photos I took, this little guy really captured my focus. I'll add photos of Mario and other items from the game later on.
Here's how many people see a Little Goomba these days. It's not a real Little Goomba, it's just an emulated version of one. Instead of a series of electrical impulses sent to a TV screen by the original NES console hardware, it's just colored pixels that represent an emulator's rendering of the graphic object in the game ROM. What's the difference? If the photos don't spell it out for you well enough, then I'll go in to it a little deeper.
The NES PPU (picture processing unit) offers a graphics layout of 256 x 240 pixels. Although capable of slightly more, a only about 16 colors (maximum) were typically displayed on a game screen at once. In an emulated NES image, each screen pixel displays a color value precisely and consistently during screen updates/redraws/refreshes. The PPU alternates between two slightly varying images (drawing one each 60th of a second) to create each pixel. The process is similar to standard tube-TV interlacing, however each slightly different image takes place on the same scanline (row for row) every time the screen refreshes. In addition, there is kind of an underlying color pattern that the NES produces. Unlike emulators, the NES does not display pixels as a constant colors. Each pixel is location dependent. For instance, when playing an NES game that scrolls horizontally, like Super Mario Brothers, one may observe some flickering as the screen moves. Pixels of different colors appear to flicker (brighter/darker) as they move across the screen horizontally. What appears as a perfect vertical line in an emulated NES image, will often show up as a slightly jagged vertical line when generated by a real NES on a TV, and will appear to flicker when in motion.
If you're not quite following what I'm saying, some of it is visually represented by the wobbling present in the (NES console) Little Goomba up top. When playing Super Mario Brothers on a standard resolution tube-based TV, the exact same wobbly effect is present. It's just not as noticeable unless you're looking for it, or view the screen up close. Although some flickering is present in all tube-TV images (because of the screen refresh rate), it tends to stand out more the way that the NES displays the graphics. For each single frame (during play, or while paused), the NES draws two slightly different images to complete each pixel on the graphic display. So depending on pixel color, location of where it is on the screen, and which screen draw (pass 1 or pass 2), the same display pixel (or more accurately, physical screen location) may take turns displaying as one of two different colors. More complex images/graphics will result in more noticeable flicker or wobble.
If you're still not following me, just hook up an NES console to an old tube-TV and look closely. If you don't have one and you really, really want to know more about this strange phenomenon present in the way NES hardware displays images on a TV, shoot me an e-mail asking for an illustrated demonstration of it. If I get enough e-mail requests, I'll do a more in-depth post about it, complete with animations that clearly illustrate the quirks of NES graphics.
In contrast to the NES, this jittery, non-stable pixel generation method is not present in the Super Nintendo. The SNES displayed images without noticeable color flicker. It also has more powerful graphics hardware.
So there you have it: a Little Goomba as it looked back in 1985, and still does today when displayed via an NES console hooked up to an old tube-TV. It's like a beautiful miniature electronic stained glass work of art. I love the look that those little red, green, and blue screen components create. Unfortunately this kind of thing is slowly fading away as newer technology takes center stage and many people quickly push aside the older, "obsolete" technologies.
My NES is far from obsolete though. Like most classic or retro-gamers, I have an NES emulator that I use for a quick NES fix here or there. But there's no substituting playing on the real hardware. Seriously - it's a whole different experience, and in my opinion, far more rich. The graphics of an NES displayed on a tube-TV ain't perfect, but somehow they come to life in a way that no emulator has captured yet.
UPDATE Dec. 10, 2009:
Special thanks to Jeff Tyrrill for pointing out inaccuracies in how I explained the NES and SNES PPU screen draw method (see comment below). In the original article write-up, I incorrectly referred to TV "interlacing" to explain the jitter or wobble effect produced by the NES PPU. The NES image display methodology is similar to TV interlacing in the sense that it draws two slightly different images each 30th of a second (one each 60th), but these two slightly different images are not displayed on interlacing scanlines, but rather the same constant set of scanlines each screen refresh.