Recreating Classic Video Games with 8-Bit Microcontrollers and Simple Displays
... and learning along the way!
With the complexity of today's video games, it is sometimes difficult to remember their humble beginnings. So, security researcher, author, and parent Michal Zalewski built four classic games using 8-bit hardware and simple displays. The result is playable handheld games that are practical, educational, and enjoyable for all ages.
"There’s no real moral to this story, but I found this to be a fun exercise: an opportunity to use some obsolete parts from my project bin, to learn the interface of modern OLED displays, to connect with kids, and to have a bit of harmless fun."
The four games Zalewski built are called TurboSnake (two versions), Dino in Space, and Blockbuster 7000. Each build enabled new features and introduced new design challenges. Other than the code, there are no custom parts in these builds. For example, all the games are standalone units built on perfboard (or protoboard.) They all feature an ATmega 8-bit microcontroller. The displays and technologies vary with each game.
The first version of TurboSnake was reminiscent of the game "Snake" that early Nokia mobile phones made famous. It used a simple 8x8 LED matrix for its screen and some push buttons for its control. A later version used a larger LED matrix and added a seven-segment display for scorekeeping.
Dino in Space is a horizontal-scrolling game where you must destroy or avoid obstacles. This ATmega1284-based game featured a 20x4 character LCD. One feature of the HD44780 controller for these displays is programming custom characters to show. Zalewski only needed two custom characters to achieve the rock and spaceship graphics in this case. The rest are text characters!
Last, Blockbuster 7000 draws its design from the classic game Breakout. This game also used an ATmega1284 microcontroller but changed to a bitmap style 128x64 monochrome OLED display instead of a character display. This seemingly small change meant designing a custom OLED driver and a 6x6 pixel character font.
These games may look simple in practice, but they proved popular with the family! Not only did they achieve some gaming fun, but Zalewski's eldest child even determined how to modify the EEPROM of one game to enable a cheat!
To learn more details about the builds, video demos, and source code, check out this blog post.
Electronics enthusiast, Bald Engineer, and freelance content creator. AddOhms on YouTube. KN6FGY.