I can plug it into my Linux computer at home and it pops up exactly as it should: as a single 4TB hard drive. But the Raspberry Pi doesn't see it. Lsblk (or any of the other commands designed to show attached drives) will show me the two partitions on the SD Card, but this ridiculous $700+ drive just isn't there. 2-4 Player Plug and Play Raspberry Pi Arcade: Plug and play, not just a term for those crappy plastic game consoles you bought at your local Walmart. This plug and play arcade cabinet has the works, powered by a Raspberry Pi 3 running Retropie, this machine boasts full customization abilities a. Raspberry Pi Stack Exchange is a question and answer site for users and developers of hardware and software for Raspberry Pi. I could then connect the SD slot of my device with the Pi and change the files / file contents on the fly without the device recognizing an SD card change (and, hopefully, without the device re-validating the.
Would you like to play Nintendo Entertainment System, Super Nintendo, SEGA and Gameboy games on your TV? Turning a Raspberry Pi into a retro game console emulator will allow you to do just that. Using the RetroPie project we will make your Raspberry Pi play Nintendo, Super Nintendo, SEGA Genesis, SEGA Master System and even arcade games such a PacMan or Donkey Kong.
The Raspberry Pi 4 has two HDMI mini ports. However, I found them pretty unreliable for dual setup and very flimsy overall, so be careful. At the time of the build, the only way to mirror was to run Raspberry Pi OS first, then Retro Pie. The best solution I have found is to use a single HDMI port on the Pi but split it with an HDMI splitter.
The TI99/4 with expansion modules. We decided to resurrect one of these bad boys and make a retro-inspired emulation machine — Raspberry Pi style. To run the system, we used the RetroPie Project. The emulation machine runs off of a Raspberry Pi running Retropie, this allows it to support various emulators such as NES, SNES, Gameboy, Gameboy Color, Gameboy Advance, Sega Genesis, Neo Geo, MAME, PlayStation One and can even emulate an Apple II. Like our own all-in-one retro game console, Zaqq's project uses RetroPie to get all the emulators set up and working on the Raspberry Pi.From there, the machine gets stuffed into a briefcase with. This Slot Machine is created with Java. The program run on Raspberry Pi overclocked at 1GHz with 512MB RAM. The cabinet is made in plywood. All buttons, rela. Turning a Raspberry Pi into a retro game console emulator will allow you to do just that. Using the RetroPie project we will make your Raspberry Pi play Nintendo, Super Nintendo, SEGA Genesis, SEGA Master System and even arcade games such a PacMan or Donkey Kong.
To get started you’ll need a Raspberry Pi, a screen connected to it, a keyboard, and most importantly some controllers – remember to buy two so you can play with your friends.
The full list of things we’ll need is:
Instead of starting from scratch with an empty Raspbian image and installing emulators one by one we are going to use a fantastic project called RetroPie. The RetroPie project lets you download a Raspberry Pi image that comes with the pre-loaded emulators cores and a slick interface. It will come with emulators for: NES, SNES, Genesis, Amiga, MAME (for arcade games) and many others. Those that are not pre-loaded you can find and install through the easy to use menu system.
Now to get started head over to the RetroPie download page and click the button download the version for Raspberry 2/3.
Once downloaded, extract the image and load it on to a SD card using win32diskimager:
Now connect your Raspberry Pi to the your TV, keyboard, favorite controller and WiFi dongle (if Raspberry 2) and power it up.
On your first boot you will see the regular Raspberry boot sequence and the RetroPie logo. RetroPie will initialize and expand the file system as well as initialize it self, this will take a little while (5+ minutes) so have patience.
Once its done you’ll see the welcome screen below:
If you don’t see the welcome screen and instead see “Illegal Instruction” and it boots into the terminal its likely because you picked the wrong image during the download step. Go back and download the correct image for your Raspberry Pi 1 or 2/3.
Now go through the setup steps for your controller as instructed on the welcome screen.
Use the following diagram as a button reference if needed:
Controller Reference RetroPie (source: https://github.com/retropie/retropie-setup/wiki/First-Installation)
Once you’re done setting up your controller you’ll see the emulation station setup screen. You can exit this screen by pressing B on your controller at anytime and get back to setup screen by pressing start.
If you exit the screen you’ll get to the main RetroPie interface you navigate between emulator by using left and right on your d-pad. You’ll notice there are no emulators available right now.
To get emulators to show up we need to load some games (ROMs) on to your RetroPie. To do that we need to setup a WiFi or wired network connection.
To setup WiFi go the RetroPie configuration screen and press A. You’ll now be taken to the configuration interface below:
Select the WiFi option and use your keyword to navigate through the configuration screens to select your network and setup your network key.
Once connected you can go back to the RetroPie interface by selecting exit (use tab to navigate the options). To verify you’re connected you can select the “Show IP” option, it should show you the local IP address of your RetroPie on your network.
The RetroPie configuration screen can also be used to change themes, setup connections to BlueTooth devices etc.
If you ever want to reconfigure your controller or configure a new controller to enable two player play you can press the start button of the currently connected controller and select the Configure Input option. This will take you through the controller configuration guide again allowing you to setup the controller / gamepad.
Now that we have the Raspberry Pi installed, our controllers setup and WiFi configured its time to add games so we can start playing.
Due to varying copyright restrictions and IP laws RetroPie cannot be distributed with pre-loaded ROMs, instead you’ll have to go out and find your own ROMs. You can do this by ripping your old cartridges – or if you do some googling you may also just stumble upon your favorite game.
Once you have the ROMs downloaded to your laptop you’ll need to transfer them to your RetroPie.
From Windows this can easily be done using the built-in Samba share on the RetroPie Raspberry Pi.
Open a file explorer in Windows and go to:
If Windows asks for a username and password use:
On the file share open the roms folder find the emulator you want to use and load games (ROMs) into the directory.
On MAC you can open finder and select “Connect to Server” from the “Go” menu – type in smb://retropie and click the connect button.
Once you have loaded the games into the roms folder – reboot the system by pressing start selecting quit and select the restart system option.
Now wait for your RetroPie to boot up again, press the d-pad left and right to check the emulators are now loaded into the interface, let nostalgia take over and play your favorite games.
Go save that princess…
Now you’ve booted up your favorite game, played for a few hours and want to play something else… how do you exit out of a game? simply press select and start at the same time this will take you back to the RetroPie setup screen.
MAME stands for Multiple Arcade Machine Emulator. MAME can emulate thousands of games that otherwise would have been lost in the ash-heaps of history.
See Also: FinalBurn-Neo, Neo Geo
There are a variety of arcade emulator versions available in RetroPie. There are significant differences in performance, compatibility, and configuration between them. If you're getting started with an arcade emulation project, begin by reading the Arcade page.
This page is a resource for additional details on RetroPie's MAME emulators including configuration paths, controls, and the ROM sets which each emulator requires.
Emulator | ROM Folder(s) | Extension | Required ROM Set Version |
---|---|---|---|
mame4all-pi | arcade or mame-mame4all | .zip | MAME 0.37b5 |
lr-mame2000 | arcade or mame-libretro | .zip | MAME 0.37b5 |
lr-mame2003 | arcade or mame-libretro | .zip | MAME 0.78 |
lr-mame2003-plus | arcade or mame-libretro | .zip | MAME 0.78-MAME 0.188 |
lr-mame2010 | arcade or mame-libretro | .zip | MAME 0.139 |
lr-mame2015 | arcade or mame-libretro | .zip .7z | MAME 0.160 |
lr-mame2016 | arcade or mame-libretro | .zip .7z | MAME 0.174 |
AdvanceMAME 0.94 | arcade or mame-advmame | .zip | MAME 0.94 |
AdvanceMAME 1.4 | arcade or mame-advmame | .zip | MAME 0.106 |
AdvanceMAME 3 | arcade or mame-advmame | .zip | MAME 0.106 |
MAME | arcade or mame | .zip .7z | same as MAME version |
lr-mame | arcade or mame-libretro | .zip .7z | same as MAME version |
Three of the available MAME ROM paths in RetroPie are shared directories which are used by more than one emulator: arcade
, mame-libretro
, mame-advmame
. In order to successfully load zipped ROM sets in these locations you must specify the arcade emulator version which matches your ROMs.
To avoid having several menus for different arcade emulators, all arcade-based ROMs can be placed in the arcade
ROM folder, but you will have to specify which emulator each zipped ROM set will use from the Runcommand Menu.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-mame4all |
Binary | /opt/retropie/emulators/mame4all |
Configuration | /opt/retropie/configs/mame-mame4all |
Samples | /home/pi/RetroPie/mame4-all/samples/ |
MAME Version: 0.37b5 (July 2000)
Active Sets: 2241
MAME 0.37b5 DAT File: mame4all-037b5-RetroPie-260.dat
MAME 0.37b5 XML File: mame4all-no-clones-no-neogeo Does not include clones or NeoGeo romsets.
While in a game press Tab to open the menu to set up controls. The MAME4ALL configuration is saved in:
Other files in the cfg
directory are ROM specific configs.
Note: If configuration or other aspect of the configuration need resetting to defaults, remove the default.cfg
or ROM specific .cfg
file, and it will be re-created with default values next time MAME4ALL is started or the ROM configuration modified.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-mame4all /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2000 |
Configuration | /opt/retropie/configs/mame-mame4all/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2000/samples/ |
MAME Version: 0.37b5 (July 2000)
Active Sets: 2241
MAME 0.37b5 DAT File: mame4all-037b5-RetroPie-260.zip
MAME 0.37b5 'Lite' DAT File: mame4all-no-clones-no-neogeo - Does not include clones or NeoGeo romsets.
MAME 2000 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Please see MAME 2003 on RetroPie for information on how to configure specific features of this emulator.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2003 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2003/samples/ |
MAME Version: 0.78 (December 2003)
Active Sets: 4705
MAME 0.78 XML DAT File: MAME 0.78.dat
MAME 0.78u5 DAT File: mame2003-lr-working-no-clones - Working romsets only. Does not include clones.
MAME 0.78u5 'Lite' DAT File: mame2003-lr-lite - Working romsets only. Does not include: clones, NeoGeo, PlayChoice NES/multiplay, romsets with rotary/dial/trackball/light gun controls, or romsets classified as casino/quiz/mahjong/fruit_machines/rhythm/mature.
Mame 2003 catver.ini also contains data on games definitively known not to work, as well as sorting data for mature games and other, less desirable, romsets.
MAME 2003-Plus uses both RetroArch control configuration and the MAME input configuration menu (accessible by pressing Tab). Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
MAME 2003-Plus (also referred to as MAME 2003+ and mame2003-plus) is a libretro arcade system emulator core with an emphasis on high performance and broad compatibility with mobile devices, single board computers, embedded systems, and similar platforms.
In order to take advantage of the performance and lower hardware requirements of an earlier MAME architecture, MAME 2003-Plus began with the MAME 2003 codebase, which is itself derived from xmame 0.78. Upon that base, MAME 2003-Plus contributors have back-ported support for several hundred additional games as well as other functionality not originally present in MAME 0.78.
Please see the libretro MAME 2003-Plus core documentation for information on how to configure specific features of this emulator.
Folder/File | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2003-plus |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg /opt/retropie/configs/arcade/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2003-plus/samples/ |
MAME Version: 0.78-0.188 (MAME 0.78 as a baseline with other ROMs back-ported from later MAME romsets)
Active Sets: 4850
MAME 2003-Plus DAT File: Github project page. An XML 'DAT' file can be generated from the emulator, directly from the MAME menu.
The MAME 2003-Plus catver.ini also contains data on games definitively known not to work, as well as sorting data for mature games or other, less desirable, romsets.
MAME 2003-Plus uses both RetroArch control configuration and the MAME input configuration menu (accessible by pressing Tab). Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Some notes about extra controls options and configuration available in MAME 2003-Plus:
simultaneous
.Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2010 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2010/samples |
MAME Version: 0.139 (August 2010)
Active Sets: 8782
MAME 0.139 DAT File: MAME 0.139.dat
MAME 2010 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Note: these controls are only operational for Player 1
Note: This emulator is considered 'experimental' in RetroPie and has limited functionality. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2015 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
Samples | /home/pi/RetroPie/BIOS/mame2010/samples |
MAME Version: 0.160
Active Sets: ??
MAME 0.160 DAT File: ProgettoSnaps MAME .dat page
MAME 2015 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Note: This emulator is considered 'experimental' in RetroPie and has limited functionality. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-libretro /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/libretrocores/lr-mame2016 |
Configuration | /opt/retropie/configs/mame-libretro/retroarch.cfg |
MAME Version: 0.174
Active Sets: ??
MAME 0.174 DAT File: ProgettoSnaps MAME .dat page
MAME 2016 uses RetroArch control configuration. Custom Retroarch controls can be added to the retroarch.cfg
file in
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-advmame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/advmame/bin |
Configuration | /opt/retropie/configs/mame-advmame |
Samples | /home/pi/RetroPie/roms/mame-advmame/samples |
MAME Version: MAME 0.94 (March 2005)
Active Sets: 5563
AdvanceMAME 0.94 DAT File: advmame-0.94-RetroPie-260.7z
While in a game, press Tab to open the menu and set up controls. AdvanceMAME configuration for controls is stored in /opt/retropie/configs/mame-advmame/advmame-0.94.0.rc
. Changes to specific games result in .rc
file entries with a prefix for the ROM (i.e. bwidow/input_map[p1_doubleleft_up] keyboard[0,up]
for the bwidow
game).
Note: The .rc
file can also be edited manually, with a text editor. Any config can be made ROM-specific using a romname/
prefix which is handy for overriding a setting for a specific ROM or class of ROMs, such as vertical/
. However, a single mistake in the .rc file will stop AdvanceMAME from launching. It is always best to make a backup of the configuration file before manual edits.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-advmame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/advmame/bin |
Configuration | /opt/retropie/configs/mame-advmame |
Samples | /home/pi/RetroPie/roms/mame-advmame/samples |
MAME Version: MAME 0.106 (May 2006)
Active Sets: 6166
AdvanceMAME 1.4 DAT File: advmame12-106.7z
While in a game press Tab to open the menu to set up controls. AdvanceMAME configuration for controls is stored in /opt/retropie/configs/mame-advmame/advmame-1.4.rc
. Changes to specific games result in .rc
file entries with a prefix for the ROM (i.e. bwidow/input_map[p1_doubleleft_up] keyboard[0,up]
)
Note: The .rc
file can also be edited manually. Any config can be made ROM-specific using a romname/
prefix which is handy for overriding a setting for a specific ROM or class of ROMs, such as vertical/
. However, a single mistake in the .rc
file will stop AdvanceMAME from launching. It is always best to make a backup of the configuration file before manual edits.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame-advmame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/advmame/bin |
Configuration | /opt/retropie/configs/mame-advmame |
Samples | /home/pi/RetroPie/roms/mame-advmame/samples |
MAME Version: MAME 0.106 (May 2006)
Active Sets: 6166
AdvanceMAME 3 DAT File: same as AdvanceMAME 1.4, see above.
While in a game, press Tab to open the menu and set up the controls. AdvanceMAME configuration for controls is stored in /opt/retropie/configs/mame-advmame/advmame.rc
. Changes to specific games result in .rc
file entries with a prefix for the ROM (i.e. bwidow/input_map[p1_doubleleft_up] keyboard[0,up]
)
Note: The .rc file can be edited manually. Any config can be made ROM-specific using a romname/
prefix, which is handy for overriding a setting for a specific ROM or class of ROMs, such as vertical/
. However, a single mistake in the .rc
file will stop AdvanceMAME from launching. It is always best to make a backup of the advmame.rc
file before manual edits.
Note: This emulator is considered 'experimental' in RetroPie. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame /home/pi/RetroPie/roms/arcade |
Binary | /opt/retropie/emulators/mame/bin |
Configuration | /opt/retropie/configs/mame |
BIOS | /home/pi/RetroPie/BIOS/mame |
Samples | /home/pi/RetroPie/roms/mame/samples |
MAME Version: MAME has monthly versioned releases, there is no single version. Version 0.221
was released for May 2020, 0.222
for June 2020, etc.
Installing from binary will probably get a version that's a little behind the current MAME, installing from source will always get the latest monthly release.
NOTE: installing from source requires a lot of RAM and CPU power, on Pi3 and lower end systems could take more than one day - use the binary release when available, instead of installing from source.
MAME Dat Files: ProgettoSnaps MAME .dat page has versions for each MAME release.
Active Sets: ???
While in a game, press Tab to open the MAME menu, then choose the Input configuration. MAME controls configuration is saved in /home/pi/RetroPie/roms/mame/cfg
:
default.cfg
<romname>.cfg
Note: This emulator is considered 'experimental' in RetroPie. It requires more processing power than earlier MAME versions and will not run as many games at full speed on Raspberry Pi hardware.
Folder | Location |
---|---|
Roms | /home/pi/RetroPie/roms/mame /home/pi/RetroPie/roms/mame-libretro |
Binary | /opt/retropie/libretrocores/lr-mame |
Configuration | /opt/retropie/configs/arcade |
BIOS | /home/pi/RetroPie/BIOS/mame |
Samples | /home/pi/RetroPie/roms/mame/samples |
MAME Version: Similar to MAME, lr-mame
follows the monthtly MAME releases, so there is no single version. Installing from binary will probably get a version that's a little behind the current MAME, but the upstream Libretro repository tries to keep up with MAME's monthly releases, so installing from source
NOTE: installing from source requires a lot of RAM and CPU power, on Pi3 and lower end systems could take more than a day. Use the binary release when available.
MAME Dat Files: ProgettoSnaps MAME .dat page has versions for each MAME release.
Active Sets: ???
lr-mame
uses the RetroArch control configuration.
/opt/retropie/configs/mame-libretro/retroarch.cfg
/opt/retropie/configs/arcade/retroarch.cfg