I've been sitting on a box of old game cartridges for years. NES, Super Nintendo, Game Boy, PlayStation. Over 500 of them, collected across decades of garage sales and "I should really get rid of these" moments that never quite landed. They've moved with me three times. My kids have never touched them, because there's nothing to plug them into anymore.
So I decided to do something about it. I built a small, quiet, kid-proof system that plays all of them: every console, one box, one controller, hooked up to the TV in the living room. It cost less than a new video game and a weekend of tinkering. The whole thing runs on a Raspberry Pi, which is a tiny computer about the size of a deck of cards. The kids don't really know any of that. They turn it on, pick a game, play it.
This is the full walkthrough. I'm going to write it the way I wish someone had written it for me, assuming you know nothing about Linux or Raspberry Pi or any of this, because I didn't either.
What you're building
The finished product is a small box that sits next to your TV. You turn it on, a menu appears with all your old consoles listed (Nintendo, Super Nintendo, PlayStation, whatever you set up). You pick a console, pick a game, and it plays. The kids navigate with a wireless controller. There are no complicated menus, no settings to accidentally break, no way to get into trouble. It works like an appliance.
The software is called RetroPie. It's free and open-source, and it turns a Raspberry Pi into a dedicated retro gaming machine. The interface (called EmulationStation) is the menu system your kids will actually see and use. Underneath, individual emulators handle each console, but nobody needs to know that. To the kids, it's just "the game thing."
The legal stuff (let's just get this out of the way)
This is the part of every retro gaming guide that either gets skipped entirely or treated like a joke, and I think both approaches are a disservice. So here's the honest version.
The emulation software (RetroPie, RetroArch, all the individual emulators) is completely legal. It's open-source software that people have built and maintained for free. Nobody is breaking any laws by installing it.
The game files are where it gets complicated. In the emulation world, these are called ROMs (for cartridge-based games) or disc images (for CD-based systems like PlayStation). To play a game on your Pi, you need a digital copy of that game.
Downloading game files from the internet is piracy, full stop, even if you own the physical cartridge. I know that feels absurd when you're holding the actual cartridge in your hand, but that's where the law currently sits. The legally defensible path is to "dump" your own cartridges, meaning you use a special piece of hardware to read the data off your physical cartridge and create your own digital copy. It's the digital equivalent of ripping a CD you bought. Whether even that constitutes fair use is genuinely unsettled law that nobody has tested definitively, but it's the approach that puts you on the most solid ground.
I'm not going to tell you what to do here. I'll show you the hardware that lets you dump your own cartridges (it's in the hardware list), and the guide will walk you through everything else. How you get your game files onto the system is between you and your conscience and your understanding of copyright law.
What I will say is this: if you've got a box of cartridges in the closet, there's something satisfying about actually using them again instead of letting them collect dust. That's the whole point.
Step 1: Flash the operating system onto the SD card
This is where you write the Pi's operating system onto the microSD card so the Pi has something to boot from. It takes about ten minutes.
On your regular computer, download and install the Raspberry Pi Imager from raspberrypi.com. It's a small, free app available for Windows, Mac, and Linux.
Open the Imager and click "Choose OS." Select Raspberry Pi OS (64-bit). Don't pick the Lite version. You want the full one.
Click "Choose Storage" and select your microSD card. Make sure you pick the right drive, since this will erase everything on it.
Before you click Write, click the gear icon (or press Ctrl+Shift+X). This is the important part. In the settings, set a hostname (I used "raspberrypi" but you can use anything). This is how you'll find the Pi on your network later. Enable SSH so you can control the Pi from your regular computer without needing a separate keyboard and monitor plugged into it. Pick "Use password authentication." Set a username and password, and write them down, because you'll need them in a few minutes. Then configure your Wi-Fi by entering your network name and password, and make sure the country is set correctly.
Click Save, then Write. It'll take a few minutes to flash and verify. When it's done, pull the SD card out and put it in the Pi.
Step 2: Boot the Pi and connect to it
Put the microSD card into the slot on the underside of the Pi. Plug in the HDMI cable to your TV (use the micro-HDMI port closest to the USB-C power port). Plug in the power supply.
You should see a solid red light and a blinking green light on the board. Red means power, blinking green means it's reading the SD card and booting. Give it about a minute.
Now, on your regular computer, open a terminal. On Windows, that's PowerShell (search for it in the Start menu). On Mac, it's Terminal.
Type:
ping raspberrypi.local(Replace "raspberrypi" with whatever hostname you set.) If you get replies back, the Pi is on your network and you're good. If it doesn't work, double-check your Wi-Fi settings. The most common issue is the network name or password being slightly wrong.
Now connect to the Pi:
ssh yourusername@raspberrypi.localIt'll ask you to accept a security fingerprint the first time. Type "yes." Then enter the password you set in the Imager. You're now controlling the Pi remotely from your regular computer. Everything you type from here on is running on the Pi.
Step 3: Install RetroPie
This part is mostly waiting. Run these commands one at a time:
sudo apt update && sudo apt upgrade -yThis updates the Pi's existing software. Takes a few minutes.
sudo apt install git -yThis installs a tool needed to download RetroPie.
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.gitThis downloads the RetroPie installer.
cd RetroPie-Setup
sudo ./retropie_setup.shThis opens the RetroPie setup menu. Choose "Basic Install" and go make a coffee. On a Raspberry Pi 4, the install takes roughly 30 to 60 minutes. You'll know it's done when the menu comes back.
When it finishes, back out of the menu and reboot:
sudo rebootAfter it reboots, the Pi should boot directly into EmulationStation, which is the visual menu system. If you have a controller plugged in or paired via Bluetooth, it'll ask you to configure it. Hold any button and then map each button as it asks.
Step 4: Get your game files onto the Pi
Once RetroPie is running, you need to get your game files onto it. The easiest way is over your network using a built-in feature called Samba sharing.
On your Windows computer, open File Explorer and type this in the address bar:
\\raspberrypi.localYou should see a shared folder called "roms." Inside it, there are subfolders for each console: nes, snes, gba, psx, mastersystem, and so on. Drop your game files into the matching folder. NES games go in the nes folder, Super Nintendo games go in snes, and so on.
After transferring files, restart EmulationStation (press Start, choose Quit, choose Restart EmulationStation) and your games should appear.
For PlayStation games specifically, they're usually in .bin and .cue file pairs, or .iso format. Both go in the psx folder. PlayStation files are much larger than cartridge-based games. A single game can be 300 to 700 MB, which is where that bigger SD card pays off.
Step 5: Make it pretty (scraping artwork)
Right now your game list is just a list of filenames. It works, but it looks boring. Scraping automatically downloads box art, screenshots, descriptions, and genre information for every game and displays it in the menu. It turns a plain text list into something that looks like a polished game library.
In EmulationStation, press Start to open the main menu. Go to "Scraper." Select "ScreenScraper" as the source (it tends to have the best coverage). Then choose "Scrape Now" and pick which systems to scrape.
This takes a while if you have a lot of games. Let it run. When it's done, your game list will have artwork next to every title, and the whole thing will look dramatically more polished.
Step 6: Kid-proof it
This is the part that turns a hobby project into something you can actually hand to a child and walk away from.
The first thing is Kiosk Mode. Press Start, go to UI Settings, and change UI Mode from "Full" to "Kiosk." This hides all the system settings, emulator configurations, and anything else a kid could accidentally break. They can browse games and play, and that's it. If you need to get back into the settings, enter the Konami code on the controller: up, up, down, down, left, right, left, right, B, A. The kids won't stumble into that by accident.
The next thing is the Runcommand menu. By default, a technical menu pops up briefly before each game launches, showing emulator options. Kids don't need to see this. Go to the RetroPie menu, then Configuration, then Runcommand, and set "Launch Menu" to Disabled.
The last thing isn't really about the Pi. It's about your TV. Modern TVs do a lot of image processing that adds input lag, meaning there's a delay between pressing a button and seeing it happen on screen. Game Mode on your TV disables that processing. For retro games where timing matters, this is the single biggest improvement you can make. Check your TV's picture settings.
Step 7: Audio (the thing that will probably trip you up)
I'm including this section because it tripped me up and I've seen it trip up other people. If audio sounds crackly, or games seem to run at the wrong speed, or things feel slightly off, the problem is almost certainly the audio configuration, not the emulators.
The Raspberry Pi 4 has a specific audio path for HDMI that needs to be configured at the hardware level. Generic audio settings don't cut it. Here's what worked for me. In the file /boot/config.txt, make sure HDMI audio is explicitly enabled for the correct output. Then in RetroArch's audio settings, use the "alsathread" driver and point it at the specific HDMI audio device rather than the default. The combination of hardware-level HDMI configuration and the right RetroArch driver is what finally made everything run smoothly: correct speed, clean audio, no crackling.
If you're hitting this issue and the details above don't mean much to you, the RetroPie forums are genuinely helpful for audio troubleshooting. Search for "Pi 4 HDMI audio RetroArch" and you'll find people who've solved the same thing.
Step 8: Organize your collection (optional)
If you have more than a handful of games, keeping your ROM files organized makes a real difference. There's a tool called CLRMamePro that compares your game files against verified databases (called DAT files) from a group called No-Intro. It checks that your files are correct, complete, and consistently named. It sounds fussy, but when you have hundreds of games, being able to find "Super Mario Bros. 3" instead of "smb3 (U) [!].nes" is worth the twenty minutes it takes to set up.
This runs on your Windows PC before you transfer files to the Pi. Dump or acquire your games, run them through CLRMamePro with the appropriate No-Intro DAT file, and then move the cleaned-up collection to the Pi.
What it actually costs
The Pi itself is the most expensive piece, around $55 to $75 depending on where you buy it and which model. The power supply is about $10. MicroSD card, maybe $10 to $15 for a 32GB. HDMI cable, $8 to $10. A case, if you want one, $15 to $20. A controller, anywhere from $25 for a basic 8BitDo to $0 if you already have a PlayStation or Xbox controller in a drawer.
All in: somewhere between $80 and $130, depending on what you already have. A cartridge dumper adds another $30 to $75, depending on which consoles you need to support.
What surprised me
The setup takes a weekend, maybe two evenings if you're doing it in chunks after the kids go to bed. The first hour feels overwhelming if you've never used a command line before, but every step is just typing a command and waiting for it to finish. Nothing here requires you to understand what's happening underneath. You're following a recipe, not learning to cook.
What I didn't expect is how little my kids care about the technical parts. They don't know it's a Raspberry Pi. They don't know what an emulator is. They turned it on, saw a menu of games with pictures, picked one, and played it. My oldest asked if we could "put more games on the Nintendo thing," which I'm taking as a success.
What I also didn't expect is watching them get stuck on the same Mega Man boss that destroyed me in 1990. That's a very specific kind of parenting moment. The cartridges sat in a box for years because there was nothing to plug them into. Now there is, and the kids are playing them, which is more or less what I'd hoped would happen, with a few more "Dad, why does this one not have shoulder buttons?" questions than I'd planned for.
If you get stuck somewhere or something isn't working, drop a comment. I've probably already broken and fixed whatever you're hitting.