Now you can play your favorite retro 8-bit games on your TV from an overclocked Arduino.
What can we say? There’s just something about retro gaming-inspired projects that we can’t resist. This week, we stumbled upon a project from a Maker by the name of “Rossumur,” who has found a way to play classic video games on your TV from an overclocked Arduino Pro Mini (ATmega328).
The aptly named Arduinocade boasts old-school, 8-bit color graphics along with four voice sound. All video and audio signals are generated on the Arduino board, with just three resistors, upgraded crystal and a little software magic. By overclocking the Pro Mini to 28.6363Mhz, the Maker was able him to directly manipulate NTSC to produce 27 simultaneous colors.
These colors were created with NTSC color artifacts — a designation that was commonly employed to address several graphic modes in home computers throughout the ‘70s and ‘80s. Essentially, it’s a trick where the display is really black and white, but due to a delay in the signal generation, the bits are out of whack from the reference “color burst” signal and appear on-screen as unique colors.
“Upgrading the crystal to 28.6363Mhz allows us to run at a multiple (8x CPU clock, 4x SPI output) of the NTSC subcarrier frequency,” the Maker writes. “By spitting out bits in the right pattern at the right time we can generate NTSC colorburst and different colors based on the relative phase of the pattern.”
In terms of sound, the audio driver has two parts. As Rossumur explains, the low-level kernel runs every HSYNC, stepping each of the four voices though its wavetable, mixing the sampled voices together based on their current volume and emitting a sample to the PWM/resistor single-bit DAC. This corresponds to a sample rate of 15734Hz. Meanwhile, the high-level task runs every frame at 60Hz, as well as adjusts envelope and modulates frequency of the underlying channels. It’s responsible for parsing data structures containing music and effects, modifying volume envelopes and frequencies, swapping wavetables for different instruments and so forth.
Arduinocade supports a number of IR game controllers, including keyboards, Atari Flashback 4 joysticks and wireless devices like the Apple TV remote. What’s more, the DIY system will let you relive your fondest childhood memories by playing games such as Ballblazer, Caverns of Mars, and of course, Pac-Man.
So, are you ready to spark some nostalgia? Head over to the Maker’s GitHub page here, where you’ll find all of the necessary instructions and code to get started.