- Feb 14, 2004
- 49,985
- 6,298
- 136
This system is for people who want a compact, cost-effective, multi-emulation system with an easy interface. You can get more powerful results using a fast computer (especially for things like the Dolphin emulator), but this project is easy, low-power, and works more like an appliance than a computer. It basically gives you the ability to emulate arcade games & older console games like the Super Nintendo for around a hundred bucks. If you were ever into modded Xboxes (for the purpose of playing emulators), this is the same idea, just in an itty bitty little case with dedicated software.
It also has extra features like save states, which is the ability to freeze a game anywhere rather than just the save points (super useful if you keep dying at Koopa, without having to re-play the whole level!). Regarding the acquisition & legality of the games (ROMs), that is left up to you. There is a (small) variety of places to buy legal ROMs from. Some are public domain & homebrew. Nintendo has very specific verbage on ROMs of their products. This guide is simply to explain how to build the hardware & software system to support (legal) ROMs you already have in your personal collection. Skipping ahead:
TL;DR: You can build a vintage console emulator using a Raspberry Pi 3. In a nutshell:
The basic idea starts with the Raspberry Pi 3 (Model B), which is a $35 SoC (integrated mini motherboard). It's a beefy little unit for the price: 1.2ghz ARM CPU, 1GB RAM, MicroSD slot, BT/Wi-Fi/Ethernet, HDMI/Minijack, (4) USB ports, and low power requirements (2.5A @ 5V via a Micro-USB port). The starter kit linked above for $75 from CanaKit includes all of the core hardware: the motherboard, a snap-together case & pair of heatsinks, an external wall-wart PSU, a 32gb MicroSD card & USB adapter, and even an HDMI cable. Great deal for the price, although you can save a few bucks if you already have some of the bits & pieces & just buy the motherboard to start out with. Lots of other cool case options available as well (including clear cases, mini NES cases on Etsy/eBay, and custom 3D-printed case).
So that's more or less it it for the core hardware...you plug it into your TV/projector/monitor via HDMI (which supplies sound as well, unless you want to use some computer speakers, in which case you can use the minijack port), plug it into A/C wall power, and use the MicroSD card to boot the OS to the GUI & store the ROMs. The CanaKit case is about the size of two decks of cards, pretty compact. No fan required. 32 gigs on the card should be more than sufficient for even a full ROMs collection.
As far as controllers go, you can pretty much use whatever you want. I selected the SNES controllers because those are my wife's favorite gamepads. They are pretty lightweight (I wish they were heftier), but work great for the price. They are also available in wireless (Bluetooth). I also have an Xbox-style iPega Bluetooth controller I'm going to test, a wireless Xbox gamepad (360, I think, via the Windows USB adapter), and my X-Arcade Tankstick (2-player arcade joystick USB controller). The RetroPie wiki discusses support for additional controllers such as the N64, Wiimote, and PS3 gamepads. Yes, 2-player works if you buy a pair of gamepads.
So that takes care of the hardware. Next up is the software. Download the Raspberry Pi 2/3 image from the official website & unzip it. From there, just follow the official installation guide. In (detailed) summary:
It also has extra features like save states, which is the ability to freeze a game anywhere rather than just the save points (super useful if you keep dying at Koopa, without having to re-play the whole level!). Regarding the acquisition & legality of the games (ROMs), that is left up to you. There is a (small) variety of places to buy legal ROMs from. Some are public domain & homebrew. Nintendo has very specific verbage on ROMs of their products. This guide is simply to explain how to build the hardware & software system to support (legal) ROMs you already have in your personal collection. Skipping ahead:
TL;DR: You can build a vintage console emulator using a Raspberry Pi 3. In a nutshell:
- Buy a Raspberry Pi 3 kit ($75) & a 2-pack of USB SNES controllers ($12)
- Assembly the Pi & format the card with the latest image (requires a computer & a USB stick)
- Program your gamepads & load up your ROMs (optional: you may want a temporary or dedicated keyboard & mouse, such as a compact AIO Logitech K400 wireless keyboard with built-in touchpad for $29)
So that's more or less it it for the core hardware...you plug it into your TV/projector/monitor via HDMI (which supplies sound as well, unless you want to use some computer speakers, in which case you can use the minijack port), plug it into A/C wall power, and use the MicroSD card to boot the OS to the GUI & store the ROMs. The CanaKit case is about the size of two decks of cards, pretty compact. No fan required. 32 gigs on the card should be more than sufficient for even a full ROMs collection.
As far as controllers go, you can pretty much use whatever you want. I selected the SNES controllers because those are my wife's favorite gamepads. They are pretty lightweight (I wish they were heftier), but work great for the price. They are also available in wireless (Bluetooth). I also have an Xbox-style iPega Bluetooth controller I'm going to test, a wireless Xbox gamepad (360, I think, via the Windows USB adapter), and my X-Arcade Tankstick (2-player arcade joystick USB controller). The RetroPie wiki discusses support for additional controllers such as the N64, Wiimote, and PS3 gamepads. Yes, 2-player works if you buy a pair of gamepads.
So that takes care of the hardware. Next up is the software. Download the Raspberry Pi 2/3 image from the official website & unzip it. From there, just follow the official installation guide. In (detailed) summary:
- Insert the MicroSD card into the USB reader & plug into your computer
- Burn the image to the card (Windows: Win32DiskImager; Mac: Apple Pi Baker; Linux: dd command or Unetbootin). Don't worry about overwriting the included NOOBS software as we won't be using that.
- Eject the USB stick, remove the MicroSD card, insert the MicroSD card into the Raspberry Pi, and boot it up with one of the gamepads attached. Program the gamepad as described in the guide above (you can skip buttons you don't have by holding any key down for a few seconds).
- Time to load up the ROMs! On your computer, format a temporary USB stick to FAT32 or NTFS, create a folder on the root directory called "retropie", eject it, insert it into the booted Raspberry Pi, wait a couple of minutes, pull it out, and put it back in the computer
- The retropie folder on the USB stick should now have a few folders, including one for ROMs with sub-directories for each system (Atari, SNES, etc.). Copy your ROMs (note that the file name is what will be displayed on the screen in the console selection window) into the appropriate subfolders (you can keep the ROMs zipped if you want). Eject the USB stick from your PC, insert it into the booted Pi, wait a few minutes for the games to auto-copy over, then remove the USB stick & reboot the system using the software menu. The game consoles for the ROMs you loaded will automatically be displayed in the GUI list.
- 3do
- Amiga
- Amstrad CPC
- Apple II
- Atari (2600, 8-bit 5200, 7800, Jaguar, Lynx, ST, STE, TT, Falcon)
- Color Computer
- Commodore 64
- Dragon 32
- Dreamcast
- Genesis (Megadrive)
- Game Gear
- Gameboy (original, Color, Advance)
- Intellivision
- Macintosh (1984)
- MAME (arcades)
- Master System
- MSX
- Neo Geo
- Neo Geo Pocket (original & Color)
- Nintendo DS
- NES
- PC (.com, .sh, .bat, .exe support ~1981)
- PC Engine (TurboGrafx-16)
- Playstation 1
- PSP
- Same Coupe
- Sega 32x
- Sega CD
- Sega SG-1000
- SNES
- Ti-99/4A
- TRS-80
- Vectrex
- Videopac (Odyssey 2)
- Virtualboy
- Wonderswan (original & Color)
- ZX Spectrum
- Select + Start: Exit (back to console selection screen)
- Select + Right Shoulder: Save
- Select + Left Shoulder: Load
- Select + Right: Input State Slot Increase
- Select + Left: Input State Slot Decrease
- Select + X: RGUI Menu (for RetroArch)
- Select + B: Reset