Raspberry Pi NES Emulator Project

In my previous blog post, I mentioned that I didn’t grow up with a video game console of any kind. My experience with Super Mario Brothers was watching other people play from the couch.

I had wanted a mini-NES when they were released last year because I never got to have one when I was a kid. I didn’t get organized to camp out and hunt one down and I lost out. I was incredibly disappointed at missing my second chance at having an NES.

My birthday was earlier this month and The Boyfriend indicated he had put a lot of thought into organizing it. I was super curious about what he found me. I thought maybe he found the mini-NES, but he found something better. Instead, he bought me a Raspberry Pi to build an emulator.

Bill of goods (plus a pug card) for the Raspberry Pi emulator


I knew a lot of people advocated using emulation for retro games, but I thought it wouldn’t be the same experience. One thing that appealed to me specifically about the mini-NES was the form factor. It looked like an NES. It was small and cute. It had tactile buttons. You could tell a lot of love and attention to detail were lavished on the design of that product.

The Boyfriend also has an eye for design details and knew that was a major part of the appeal of the mini-NES. He scoured the web looking for a good enclosure and managed to find one that felt like the mini-NES. It had tactile buttons, was the right color, and even had a slot where the cartridges used to go.

Parts List

Here is a list of all the parts he bought to help build the mini-NES emulator:

The first and most important part of this assembly is the Raspberry Pi. For anyone not super familiar with all the hipster IoT stuff, the Raspberry Pi is a full computer board the size of a credit card. It differs from Arduino by the nature of the projects both are designed to do. Arduino is designed to do rapid prototyping of electronics projects that need to talk to sensors and buttons by removing the need to understand how to solder or design circuit boards. Raspberry Pis are ideal for single, self contained projects and tasks where you require a full operating system. Emulation is a common use case for Raspberry Pis. Penetration testing is another. It’s possible to build a Linux emulator within a virtual machine on your home computer, but it’s more fun to have a dedicated device that is portable and easy to connect to the TV. There are a lot of different models of Raspberry Pi. The emulator site recommends using the Raspberry Pi 3 Model B.

The second most important component is the enclosure. There are many knock-off mini-NES enclosures on the market, but they’re not all created equal. Some don’t have the right kind of buttons. Some are not as detailed. This particular one was pitch perfect in recreating the look and feel of the NES.

The MicroSD card is where the operating system and the emulator are stored. This card will also hold all the games. The ROMs for the games are not super large, but it’s good to have a decent amount of space to hold all the software components.

The final three components are all adaptors. Being an electronic device, the Pi requires a power adapter. This specific power supply had the proper connector. Additionally, we required extra power to fun the lights and buttons on the enclosure. Rather than trying to buy reproductions of the controllers, The Boyfriend brought his own childhood controllers to use with the emulator. There is a certain tactile feel that you can’t reproduce that you get from the original hardware. These predate USB, so we require an adapter to be able to connect the controllers to the Pi. Plus USB is low latency so there is less of an issue with lag.

Now that we have all our necessary components we need to install the emulator and the ROMs.

Emulator Installation

There is a good main site to go to for a Raspberry Pi emulator: RetroPie. The emulator is solid and it has an excellent installation guide.

We had to flash the emulators to the micro SD card. I fortunately still had an older MacBook Pro before Apple eliminated the SD card slot. We had some slight trouble because the MicroSD adapter that came with the card was defective. We managed to scrounge up a new adapter, but fair warning that the adapters can go bad pretty easily.

There are directions on the site about how to install the emulator on various devices. I initially thought to follow the Mac directions, but I remembered that the actual operating system for the Pi was Linux. We used Etcher to flash the emulators to the SD card.

Adding ROMs

One of the components in the box of goodies from The Boyfriend was a USB drive with a bunch of ROMs that fell off the back of a truck. ROMs are the programs you need to load onto the Raspberry Pi in lieu of using a disk or a cartridge. You can blow on the USB if that makes you feel better, however.

We found the initial process to be slightly confusing. The directions are fairly straightforward. You need to create a folder called retropie on your USB stick and plug it into the Pi. The directions tell you to unplug it once it stops blinking. Our USB stick never stopped blinking and we got confused. I am uncertain if the directions meant the Pi or the USB stick. After a reasonable amount of time we chanced it and unplugged the USB stick and found that it had in fact successfully generated our folder structure. There were folders for every type of hardware the Pi could emulate. This ranges from the Commodore 64 to the Nintendo 64. We then moved the ROMs that fell off the back of a truck into their appropriate folders.

Once we got the Pi connect to our home network, we were able to remotely add ROMs to the Pi using Samba-Shares. We connected to server smb://retropie/roms to access the ROM folder structure to add more games to the Pi.

Conclusion

This was a really fun and thoughtful project. There are a lot of games I need to catch up on that I never got to play. I have felt uncomfortable about a few newer games because they assume that you grew up playing Mario and Call of Duty and whatever else has been produced over the last thirty years. Sometimes going back to the beginning can help with figuring out how we got to where we are. I am incredibly excited to finally get to play Super Mario Brothers on my own Nintendo that I built myself.

I played Super Mario Brothers 3 for the first time ever. I didn’t get past the first level. It’s harder than it looks.