Do not kill yourself with an open TV.
Now we’ve whipped you up into the prerequisite frenzy, join Christopher Stanton and me as we turn the Raspberry Pi Zero into a Mega Drive/Genesis, SNES, Amiga, Master System, NES and a host of other classic video game platforms. Without further ado:
Classic Games, Classic TV
Flat screen LCD TVs are ten-a-penny these days, but we really didn’t feel like that would fit with the theme of a retro video game. So we took to the charity shop, and found ourselves a classic CRT!
The stumbling block here is that it obviously has no HDMI input, and that’s the simplest option for hooking up a display to the Pi Zero (using a mini-HDMI adapter, of course). But there’s also a composite video output available on the tiny Pi, so that’s where we started.
As we didn’t want too many trailing cables or an exposed Pi Zero, everything is going inside the old telly. Initially we cracked open the case and soldered a couple of twisted-pair wires from the Pi Zero’s composite RCA output to the back of the TV’s video input phono socket.
But no joy.
After some tinkering, it seems the phono socket or its PCB had some issues, which turned out to be a blessing. Instead of connecting internally to the phono socket, we opted to make use of the SCART socket instead. Buried within its 21 pins, SCART has a composite video input (and output, for that matter). Pins 18 and 20, for those who want to do the same, rather than assailing the phono socket. We tested it by shoving the wires into the SCART socket, and we got a picture! Kind of…
Never Twice the Same Colour
As you can see, it wasn’t quite the rainbow-tinged dream we were hoping for. We had an image, but in black and white. That’s too retro, even for us.
When looking into the Pi Zero’s config file it turned out that the composite RCA output defaults to NTSC (this’ll be correct for some of you, of course). A quick change in the config file swaps it to a PAL signal, and we’re bathed in glorious rasterised technicolour!
If you want to switch the RCA output to PAL, open the Pi Zero’s config.txt file (located in /boot) and uncomment (by removing the preceding hash) the following line:
Just in Case
Given that the Pi Zero has just one USB, and its a micro socket, we added a modified, powered hub to the equation so it could accept joypads, keyboards and drives. We’ve another build coming along soon to show you how we modified a cheap USB hub into one with power for the peripherals, but also shared it with the Pi Zero, hence only needing one power supply. Bookmark this page and follow the Raspberry Pi section to be notified when the USB hub post is published.
We also took the opportunity to cut a section out of the TVs case while the back was off, and glued the USB hub in place. The power socket was fitted to the case beneath the hub, keeping things neat and the cables out of the way of the screen. A couple of slots cut into the inside of the TV’s casing holds the Pi Zero nicely in place next to the hub.
We tried a few options for installing emulators on the Pi Zero, with RetroPie proving to be the simplest, easiest and most stable. This is likely because it has a version for the earlier models of Raspberry Pi, which the Zero is more akin to.
We’re going to cover the installation of RetroPie (and maybe some other OS options) for the Pi Zero shortly, but it wasn’t a chore. Download the SD card image, write it to the card and put it in the Pi Zero. Simple and classic.
So far we’ve tested it out with two Xbox 360 controllers (given they’re USB native) and the emulator automatically detected them both without fuss. The UI is clean and readable on the old screen, and games up to 16-bit run like a velvet dream!
If you turn your Pi Zero to gaming uses, or make your own retro console like we did, remember to come on back and tell us all about it right here on element14!
And if you want more info on the Pi Zero so you can get started on your own awesome projects, here’s where to begin.