Links on Android Authority may earn us a commission. Learn more.
How to make a NES Classic clone with a Raspberry Pi - Gary explains
Nintendo® launched the NES Classic Edition towards the end of 2016 and then abruptly withdrew it less than 6 months later. The NES Classic Edition was a miniature replica of the original Nintendo Entertainment System (NES) video game console. It came with a library of 30 built-in games and used software to emulate the original console. The emulator ran on an Allwinner R16, which is a quad-core ARM Cortex-A7 based processor.
It is estimated the Nintendo® sold over 2 million Classic Edition units and the demand remained high, even when Nintendo® pulled the plug. In fact, in some bizarre way, its success was one of the reasons that it was removed from sale.
So if the NES Classic Edition left you with a desire to play some vintage games from the 1980s, but you didn’t manage to get your hands on one, then fear not, here is my guide on how you can make your own NES Classic Edition clone using a Raspberry Pi.
What you will need
At a very minimum you will need a Raspberry Pi and a USB game controller. Any Raspberry Pi will do, including a Raspberry Pi Zero W, however for the best results you should use either a Raspberry Pi 2 or a Raspberry Pi 3.
If you want the full NES Classic Edition look and feel then make sure your USB game controller looks similar to a NES controller and you might want to get a NINTENDO® inspired case for your Pi. I ordered my case from eBay from a seller who specializes in 3D printed cases.
You will also need a microSD card and a PC (with Windows, macOS or Linux) to write the operating system image. If you are going to use NOOBS (with Lakka or recalbox) then for the initial setup you will need a keyboard and mouse.
The Raspberry Pi is able to run several different operating systems however the default OS is called Raspbian, a specialized Linux distribution for the Pi. While it is possible to setup NES emulation under Raspbian, a more user friendly approach is to use a dedicated retro emulation distribution like RetroPie. Based on projects like EmulationStation and Retro Arch, you can use RetroPie without a keyboard or mouse instead relying on your game controller.
To install Retropie you need to download the image file from the downloads page and write it onto the microSD card. Note that there are two downloads, one for the Raspberry Pi Zero and original Raspberry Pi and one for the Raspberry Pi 2 and 3. To write the image to the microSD card then use Etcher.io. There are versions of Etcher for Windows, OS X and Linux.
If you have done this kind of thing before with your Raspberry Pi then getting RetroPie up and running shouldn’t be a problem. However if you are struggling then RetroPie has a comprehensive installation guide or you could jump to the NOOBS section below.
Note that the RetroPie image is compressed, however if you are using Etcher then you don’t need to uncompress it, the software handles the decompression for you!
Once the image has been written to the microSD can, insert it into your Raspberry Pi, check that you have your game controller connected, and power on.
After the system has booted you will need to configure your controller. This step is very straight forward just press the button on the controller which corresponds to the item in the menu. If you controller doesn’t have the button requested, just long press on any button on the controller to leave it undefined and to move on to the next button.
Now your NES Classic Edition clone is up and running, but sadly you don’t have any games. If you are in possession of some .nes ROM file then the easiest way to use them is to copy them onto a FAT32 formatted USB flash drive.
On the flash drive create a folder called retropie and inside that folder create another folder called roms. Finally in the roms folder create a folder called nes. Copy all of your NES games into the nes folder.
Plug the USB drive into your Raspberry Pi and restart EmulationStation. To perform the latter you need to press Start and then move down to the QUIT menu. From there select RESTART EMULATIONSTATION.
Now the main screen will show that the Nintendo Entertainment System option is activated and how many games are available. To start using the NES emulator just tap “A” on your controller.
RetroPie isn’t the only solution for turning your Raspberry Pi into a NES Classic Edition clone. As Yoda would say, “there is another.” In fact there are at least two others. I am talking about Lakka and recalboxOS. While both are available as standalone installs from their respective websites, they are also available as part of the Raspberry Pi’s NOOBS (New Out Of the Box Software) system.
Installing an OS via NOOBS is very simple. Download NOOBS LITE from the Raspberry Pi downloads page and unzip it into a folder. Make sure your microSD card is formatted using FAT32 (check out the SD Card Formatter for help) and then copy the contents of the NOOBS LITE folder onto the card. Stick the card into your Raspberry Pi, connect a mouse, and power on.
Your Pi needs to be connected to a network, either wired or wireless (depending on your Pi model) so the installer can download the OSes. Tick Lakka and recalboxOS from the list of available operating systems. If you want to use your Raspberry Pi for other activities, and you have a big enough microSD card, then you should also tick Raspbian. Click Install to start the installation.
When the install is complete and the Pi restarted, you will get a boot menu that allows you to pick which OS to boot. It is also worth noting that if you install both emulators you will need a keyboard connected to that you can pick one from the boot menu!
While Lakka is the official Linux distribution of RetroArch and the libretro ecosystem, overall it isn’t as easy to use as RetroPie. Finding the games from an external USB stick isn’t straightforward and I found that I needed the keyboard attached so that I could ESC out of the current game and return to the menu.
Having said that, the games themselves play very well and I guess if you invested some time into learning the user interface then it could be a good solution.
recalbox includes a wide selection of consoles and game emulators including the NES, the MEGADRIVE and even some 32-bit platforms, such as the Playstation. Like RetroPie it uses EmulationStation, so many of the user interface aspects are the same. However unlike RetroPie I found that I still needed to keep a keyboard attached to get out of the games and return to the emulator menu.
Overall the quality of the emulation for the NES is excellent and really the choice comes down to which emulator you want to use and which Linux distribution. Although I really wanted to like Lakka and recalbox because they come as part of NOOBS, overall I found the RetroPie to be much better, mainly because I didn’t need anything else connected to my Raspberry Pi other than the game controller.
Disclaimer: “Nintendo” is a registered trademark of Nintendo of America Inc. Android Authority does not condone the use of illegal ROMs or game piracy. If in doubt, seek legal advice.