empowering creative people

Videos / DIY Gameboy based on Raspberry Pi Zero W (PiGRRL)

This project is centered around the Adafuit PiGRRL 2. Rather than go with the more compact PiGRRL Zero, we stuck with the chunkier PiGRRL 2 design to retain that authentic retro-console aesthetic. We plan on taking this thing to makerfaires and conventions, so having marathon battery-life is a must. Dropping a Zero into the larger case leaves heaps of real-estate for battery upgrades!

Search Videos

Related Content



 Gidday, welcome to the lab! My names Michael and today I’m going to be showing you our Raspberry Pi Zero W installed into a PiGRRL 2 Project.

Here’s the project and as you can see it’s currently running the NES classic Super Mario Brothers. Let’s just have a look at how responsive this  is, so quickly I’m just going to start a new game.  You can see that there is no lag whatsoever. It’s very playable in fact I’m getting a bit carried away with myself there just running the whole way! It’s been a long time since I tried to speed run! You can see there’s no delay in how the game works. I’m not going to get that mushroom, you know I like to live dangerously - so its actually incredibly playable running on a Raspberry Pi Zero W. Of course the Pi Zero W has a GHz processor so it’s more than capable of doing these old style games like NES and SNES games.

Lets take a quick look at the package and take a quick tour of the Pi. So this is in a 3D printed enclosure - this is ABS but of course you could print this in PLA if you prefer.  I have  ninja flax for the buttons and that’s quite important because you need to have a flexible plastic membrane for all those buttons. So all these green buttons and the shoulder buttons on the back are printed in NinjaFlex.  I’ve taken the screws out already so this thing is ready to come apart and we can have a bit of a look inside. I can power it off at the switch at the back here and we can just snap this apart. The first thing you’ll notice is there is a lot of space left over. This was originally designed to house a full sized Raspberry Pi B Model. So a Pi 2 or a Pi 3 Model B and you can clearly see that with how much space there is around the Pi Zero here and also with the openings in the case where we would normally have the USB and ethernet ports.  You can see I’m only running a 2000 mAh Lithium battery inside this but because of the space that using the Pi Zero W you’re afforded a lot more space in the case. If you wanted to roll your own Nickel Level Hydro Battery pack that would be a great use of all the extra space down here because of course the Pi Zero W doesn’t have any native audio output so there’s no speaker or audio amplifier inside this project. If I take the battery out this device over here that the battery is plugged into is a PpowerBoost 1000C so that is what handles powering the Pi off a 3.7 V Lipo when the Pi takes 5 V  USB. This does the voltage boosting but also handles charging the battery through the USB port you can access right from the bottom.  In this project you have a gameboy that you can charge from a USB outlet - that’s fantastic.

We can take - well I won’t take the Pi off because it’s not really much to see there - but we just have the Pi Zero W seated on top of the touch display here and that’s connected with this big IDC cable to just another circuit board that handles the button user inputs.  Of course, as I mentioned before this does have shoulder buttons on the back so not only can you do classic NES games but you can do SNES games as well and games that require more complicated controllers.

Let’s quickly go through a boot sequence of the PiGRRL to see how quickly it boots and what interacting with it is like. I’ll just power that on and that takes a little while to boot so while that is going I’ll take you over to the project page and we can have a look at that.

This is the Game GRRL project page on our website - you can find this by going to the projects tab and this is documenting our build process. You can see I was able to print the entire case in one pass on a TAZ5 3D Printer and this was our first time printing with Ninja Flex so things got a bit stringy. If you were going to attempt this yourself definitely have a bit of a research on Ninja Flex first and find some optimal settings. I hear that increasing the print speed to about 200% is a good way to get started.  Then we come down and we have the first boot and a quick look at how everything is assemble and then  a few modifications to the original Adafruit instructions on how to get this running with your Pi Zero W. Most notably the version of RetroPie that you need to run is not the same as the version that runs on Model 2 & 3 - so you need to download the version that is for Zero and 1. So follow this link to the downloads page of RetroPie and this version on the left here is the version you would need to download to run if you’re going to be using a Raspberry Pi Zero W.

So, that is the complete boot and now we’re in the emulation station or RetroPie interface so you can move around to configure RetroPie. At the moment I only have one game, Super Mario Brothers - so that’s in the NES emulator - so I can enter that with my ‘A’ key and that drops us right in. Then I can start the game by pressing that again. It’s a bit hard to see but there’s an entry there to Super Mario Brothers.

If you’re thinking of building your own PiGRRL or events installing RetroPie on another Raspberry Pi you may have a few questions so if you check out on our website the tutorial section we have an entire section dedicated to getting RetroPie running smoothly on your Raspberry Pi. This coverts things like updating controller mapping - for what buttons do what, saving games and even just setting up the RetroPie.  Because we have a Raspberry Pi W Zero running the whole show on the PiGRRL we should be able to maintain the games on it wirelessly, and indeed we can. So this Raspberry Pi is connected to the same network that my computer is running on so I can access it in the file explorer by navigating to its host name with 2 backslashes, so backslash backslash retropie. Now by accessing a special shared directory within the Raspberry Pi where we can manage say the ROMS, the games that we want to play. So in the directory called ROMS - these are the ROMS that are available that are offered by RetroPie and for a Raspberry Pi Zero it would probably be best to keep your ROMS to the older generation like NES and SNES, that’s where it performs really really well. It might not work so well for much heavier emulation like Nintendo 64. Anyway we can navigate to that NES directory and there we have the Super Mario Brothers ROM that I was running at the start of this video.

So there you have it - a Raspberry Pi Retro Games Emulator in the form factor of an old school games console!

If you have any questions about how to build your own or if you have any suggestions for improvements - like if you want to re-spin the case so it’s a little more appropriate for the Raspberry Pi Zero W, we’d love to hear from you on our forums.

I’ll see you next time.