Articles: | PC Video | Web Media | DVD & CD | Portable Media | Digital Imaging | Wireless Media | Home Media | Tech & Society |
Technology & Society: | Technology & Society Articles | PC Technology References |
Programming the Nintendo Game Boy (12/1999)
by Douglas Dixon
With personal computers reaching processing speeds of one billion operations per second, who would still be interested in a machine that runs a thousand times slower, at only a handful of millions of operations per second? Quite a few people, it turns out: the over 60 million people worldwide who play the Nintendo Game Boy hand-held video game system.
Nintendo claims the Game Boy is the most successful video game system of all time. Originally introduced a decade ago in 1989, it is now on its third generation and still going strong. The current version, Game Boy Color, was introduced in 1998 and sells for around $70.
This pocket game system is around 3 inches wide by 5 1/4 inches high and a maximum of 1 inch deep (to hold the two AA batteries). Crammed inside is the equivalent processing power of the Super Nintendo Entertainment System (SNES) from 1991. So, here at the dawn of a new millenium, Nintendo still needs game developers who can program down to the raw hardware and squeeze magic from every available bit inside the machine.
"It's a progressive game," says Marshall, "each track is more difficult, with more turns and even criss-crosses. The game gets faster and more fun, but the computer-controlled trucks are quite accurate in their steering, so humans need more focused concentration." In addition, you can use credits from winning races to improve your car, adding better tires, engine, turbocharger, and shock absorbers.
The game also features three different track environments: "tropical paradise," "scorching desert," and "winter wonderland." In the winter environments, you find yourself "dodging snowmen who are inexplicably on the track," says Marshall. "The track is also slippery, so it's different and more fun. Improved tires are more important."
Finally, Tonka Raceway has a "rumble pack" built in to the game cartridge. You can feel the vibrations of the motor and the bumps and jolts from driving the track, all on your hand-held game unit.
Marshall brings an eclectic background to game development, as a filmmaker, audio and video engineer, artist, musician, writer, and video game programmer. As an independent video game designer and programmer, Marshall has contracted to local New Jersey developers, including Imagineering, Absolute Entertainment, and Morning Star Multimedia, and provided support to Nintendo for several games. His personal credits include writing musical scores for five NES, SNES, and Game Boy games, converting five games to new platforms ranging from the Atari 7800 and Sega Genesis to the IBM PC, and personally developing three original games, including design, programming, and music.
Game Boy Products
Marshall's most recent video game projects have been on the Game Boy Color, with the development of "Tonka Raceway" and the colorization and enhancement of "Monopoly" for Parker Brothers. These old game concepts, and even the old kinds of game platforms, have had astonishing life. Nintendo has had a great run with the Game Boy product line, updating it only twice in ten years, and making a success of decrepitly old technology when applied to hand-held games.
The original Game Boy was introduced in 1989, used a processor which ran at 2.14 MHz (million of operations per second), and had a 140 x 102 black and white screen with only four shades of gray. Nintendo claims this was the first portable, hand-held game system with interchangeable game packs. Over the years, more than 450 titles were developed for the original Game Boy, and it was so successful that Nintendo sold it without changes for seven years.
The second version, Game Boy Pocket, was introduced in 1996. Even then, its major selling point was style, and not technology. Its key features were the smaller "pocket" size and colorful design. It slimmed down to around thirty percent smaller, from the original's 3 1/2 x 5 3/4 x 1 1/4 inch size to around the same size as the future Game Boy Color (3 x 5 1/4 x 1 inch). Inside, it did have a faster processor, now running at a comparatively zippy 4 MHz, but it still played the same games and the display was still black and white. This change then kept the product moving for another two years.
Finally, the Game Boy Color was introduced in 1998, and added a color display. Its 160 x 140 display screen could show 56 colors simultaneously, from a palette of 32,000 available colors. Its speed also doubled, from 4 to 8 MHz. The Game Boy Color was designed to still be able to play old Game Boy Games. It allowed the user to colorize the old games by selecting from a palette of color combinations that would be applied to the shades of gray used in the original games. Of course, newer games also can take advantage of the new color display, the faster speed, and additional memory.
Game Boy games currently sell for $20 to $30. Popular titles, beyond the ubiquitous Pokémon, range the gamut from traditional hand-held activities to titles from video game platforms, from action and sports to fantasy / adventure, and include BomberMan, Mario Golf, Duke Nuken, Final Fantasy, and Bass Fishing.
Nintendo has further extended the Game Boy product line with a variety of color options for the system case, from translucent to vibrant colors (atomic purple, berry, teal, dandelion, kiwi, and grape). Nintendo and others have also added a wide range of peripherals, including a low-resolution black and white camera ($45), a printer for 1 x 1 inch photo stickers ($60), a link cable for multi-player games ($8), and a PulsePack with vibration feedback and an external speaker ($8).
Game Boy Comparison
"The Game Boy Color uses ten to fifteeen-year-old technology, and is still one of the hottest things on the shelf," says Marshall. "Its only advantage is the LCD display and low cost." The original Nintendo Entertainment System (NES) was introduced in 1985 and was still selling for around $50 in 1994. It had a 1.79 MHz processor and a 256 x 240 display with 16 simultaneous colors. The follow-on Super NES (SNES) was introduced in 1991 for around $100, and had a 3.58 MHz processor and a 512 x 418 display with 256 colors. The Game Boy Color is roughly in this class; it has a faster processor, but lacks the additional special-purpose display hardware to support higher-resolution displays for TV viewing. The Game Boy products also use the Zilog Z-80 8-bit processors, while the SNES moved up to a 16-bit processor, so it could handle twice the amount of data in each operation.
At the other end of the video game spectrum, the current high-end Nintendo video game system, the Nintendo 64 (N64), was introduced in 1996, and currently sells for around $100. It has a 64-bit main processor running at 93 MHz, plus additional high-speed co-processors for sound and graphics, up to a 640 x 480 full-color display, and boasts real-time 3-D graphics with lighting, textures, and even environmental reflections.
Another interesting comparison is to the IBM PC product line. The original IBM PC was introduced in 1981, and had an Intel 8088 processor running at 4.77 MHz. (While the 8088 was a 16-bit processor internally, this advantage was reduced by the use of an 8-bit bus in the PC, which limited the speed at which data could be transferred from and to memory.) The base IBM PC had as little as 16 KB (kilobytes, or thousand characters) of memory, an 80 x 25 text-only display, and sold for over $3000 dollars. Even the next IBM product, the PC / XT introduced in 1983, still used the same processor, while adding support for double-sided 360 KB floppy diskettes and 20 to 30 MB hard disks.
The IBM PC / AT, introduced in 1994, caught up in clock speed to the Game Boy Color, with an Intel 286 processor running at 6 and then 8 MHz, and also began to support graphical and then color displays. It sold for over $6000 with 256KB of memory. The original IBM CGA color display supported only four colors, at 640 x 200 resolution, and the next EGA display supported only 16 colors out of a palette of 64, at 640 x 350 resolution.
In comparison, the $70 Color Game Boy has an 8 MHz processor and a minimum of 32 KB of RAM, plus additional memory in the game cartridges. And it supports a color graphics display, with 56 colors out of 32,000, at 160 x 140 resolution.
Game Boy Programming
Programming a machine like the Game Boy is down and dirty work. There's no fancy windows-based development environments, no simplified high-level interfaces to the graphics and sound capabilities, and no room for using modern programming languages. Instead, you develop your code on a PC in low-level machine language, download it to the Game Boy for testing, and talk directly to the hardware to move each graphical element around the screen and output each sample of sound.
It's one thing to design a game from scratch for a limited platform like the Game Boy. But it's a lot trickier to do a "conversion" of an arcade game title to a home console, or from a console or PC game to a hand-held unit. "It's like doing a local production of a big Broadway play," says Marshall. "You try to get the same feeling, but without all the resources. You do the best you can with the hardware available to you."
With the introduction of the Game Boy Color, Marshall was handed an even uglier job, the "colorization" and enhancement of an old black and white Game Boy game, "Monopoly." Revising old games like this can be quite challenging. The original programmers are long gone, so you do not have the original source code instructions to work with. Instead, you have to "reverse engineer" the program to figure out how the game works. At a minimum, you need to find the places where it is drawing to the screen and change the code to draw in full color. Since the original programmers used lots of tricks to squeeze all the desired features into the game, this can become an exercise in deconstructing the programmer's mind and figuring out their personal bag of tricks.
In addition, while you are messing around in the original code, the game publisher would also like you to add a few more features, maybe a new character or "boss" (enemy), or even build in a while new level to the game. The good news is that you now have more memory, and a processor that runs twice as fast. But this is not as good as it seems: the old code that you are trying to reuse does not know about the additional memory. Even worse, the old code contains timing loops which were carefully calibrated to the old clock speed, so the game now runs twice as fast and becomes unplayable. Now you are stuck trying to find and modify all the timing loops as well.
With the higher-definition screen on the Game Boy Color, Marshall ran into another problem. He found bugs, small errors, in the original game that had not been visible on the old display. The job was "challenging, but fun, and very satisfying," says Marshall. "Color is very important for Monopoly, with those blue and green properties. It's a big part of the enjoyment of the game." Marshall's colorized and enhanced game shipped in summer 1999.
Nintendo Game Boy Color Information
Unofficial Color Game Boy FAQ
Vintage IBM PC's - IBM Canada