Raspberry Pi Emulators for Retro Gaming

Play your favorite console and PC games on Raspberry Pi
with Retropie and Raspberry Pi emulators

 

PC Games on Pi which can be run with a Raspberry Pi emulator

Raspberry Pi emulators and Retropie emulators are what you need to play retro games and old PC games on Raspberry Pi.

In fact, building up a Raspberry Pi game console is considered to be one of the coolest RPi projects.

So, in this post, we are going to give an in-depth look at how to make your Raspberry Pi a gaming machine with the proper and most powerful emulators.

To understand the possibilities and the range of games you can play on Raspberry Pi as well as on other ARM devices, first of all, you need to understand the structure of gaming emulation. And this is going to be our first question.

What are Raspberry Pi emulators?

Basically, we need to talk about the emulators in general. There are two things that we can actually call the “emulators” – an application to emulate some particular video gaming console and software, which provides a set (or a bundle) of those console emulators mentioned. Nowadays, you can hardly find the separate emulators. Neither the emulation software has a great number of examples. The software projects to choose from include:

In one of our previous articles, we’ve already told you about the different ways of playing games on Raspberry Pi. So, you are supposed to know that most of these ways allow you to play only very old games. And even using such retro gaming emulators as Rertopie or Emulation Station will still cause some speed issues and retro gaming bundle limitations. As you can see, it includes only NES classic emulators, so you’ll find very old console video games in their game lists and ROMs to download. And if you would like to play more up-to-date computer games, like Might and Magic, you’ll certainly face problems…

Well, how can we play x86 PC games on ARM devices then? Luckily, there is a simple solution – ExaGear Desktop. It will work as a Raspberry Pi emulator (or like VirtualBox) and will allow you to play a much wider variety of Linux and Windows PC games. And what’s more, it has been recently integrated into Retropie as an extension and users can install it like a native emulator.

We have already posted 2 tutorials on how to use ExaGear Desktop as a gaming emulator and run some iconic games such as Arcanum, Disciples II, Fallout and Heroes of Might and Magic 3, Sid Meier’s Alpha Centauri and Caesar 3 on Raspberry Pi. However, we continue testing more games and sharing our experience with you. In this post, we’ll look through the cases of running Might and Magic 6, Stronghold Crusader Extreme HD and Pharaoh and Cleopatra on Raspberry Pi as if your device was really all in one game console.

P.S.: keen gamers will probably also like to know that with ExaGear Desktop you can turn your Raspberry Pi into a TeamSpeak 3 Server

Raspberry Pi test stand configuration

Model

Raspberry Pi 3

Frequency

1200 MHz

Memory

1 GB RAM

Operating System

Raspbian Stretch from September 2017

Software

Eltechs ExaGear Desktop v2.2 for Raspberry Pi 3

Retropie v4.3 for Raspberry Pi 2/3

EmulationStation

EmulationStation was the first attempt to gather a lot of console emulators together and give it a user-friendly interface. It is a flexible and open-source front-end for emulators and it supports Windows, Debian, and Arch versions. It has also got a Raspberry Pi version, which has recently been turned into a Retropie application (that we’re going to decribe later).

EmulationStation is an emulator for Raspberry Pi

EmulationStaion’s main features are the user-friendly interface with customizable themes for any emulator, a list of pre-installed emulators (which is rather short) and the possibility of operating with controllers (no keyboard needed).

How to install EmulationStation

As we are from the ARM industry, there’s no need for Windows installation tutorial, especially since downloading the installer and launching it will be enough. Let’s jump to Debian installation process:

1. Make sure you have updated your OS:

$ sudo apt-get update
$ sudo apt-get upgrade

2. Pre-install the additional libraries:

$ sudo apt-get install -y libsdl2-dev libboost-system-dev libboost-filesystem-dev libboost-date-time-dev libboost-locale-dev 
libfreeimage-dev libfreetype6-dev libeigen3-dev libcurl4-openssl-dev libasound2-dev libgl1-mesa-dev build-essential cmake git

3. Download the Emulation Station:

$ git clone https://github.com/Aloshi/EmulationStation

4. Install the Emulation Station on your Debian device:

$ cd EmulationStation
$ git checkout unstable
$ cmake
$ make
$ sudo make install

As soon as the installation is finished and you are booting the EmulationStation for the first time, you ‘ll need to configure the controllers’ buttons. You may either use the keyboard or the controllers to operate within the interface.

Also, it’s possible to do some technical configuration. This can be easily done via the GUI, including theme setup and adding the game system emulators. But if you want to do it manually, you’ll need to find the es_systems.cfg file in the emulationstation folder. There you may add the emulators’ titles by placing its title between “” which are listed inside of tag (as seen in the picture):

Raspberry Pi emulators: EmulationStation configuration

If you’d like to install Emulation Station app on Raspberry Pi, look below on Retropie’s section, as EmultationStation has been fully replaced with Retropie for Raspberry Pi version. It’s also announced on their official website.

Retropie

Retropie is probably the most popular console emulator for Raspberry Pi devices. Actually, it’s not the emulator itself but the big opensource retro gaming and emulation project. It originates from EmulationStation and is optimized for open source operating systems in general. Due to the tendency of Raspberry Pi becoming more and more popular to make up a retro gaming machine on, Retropie offers it’s core features adapted for Raspberry Pi and concentrates on this type of devices.

Retropie for Raspberry Pi

In addition to Raspberry Pi device models, which include RPi Zero/1 and Raspberry Pi 2/3, there are also distributions for Odroid-C1/C2, Odroid-XU3/XU4, Debian PC and Ubuntu PC.

The main feature of Retropie is that it includes almost all the previous experience of console gaming emulation. It consists of EmulationStation with themes for emulators, Kodi media-player, RetroArch (Libretro’s frontend) and 50+ systems pre-installed.

Retropie installation

You can install Retropie on Raspberry Pi using an SD card to make an image for booting or install it on top of the existing Raspbian OS. In this post, we’re going to highlight the most spread and convenient way with an SD card. If you’d like to learn all of the ways, read our detailed Retropie guide.

You will need some side PC desktop (Windows, Linux or Mac) to make up an image. So, as soon as you’ve got the additional device, follow the steps below:

1. Go to Retropie official website, choose the proper model of your Raspberry Pi and download it.

2. Unpack the downloaded archive.

3. Write an image using an SD card and a special application. This step requires an additional application. The recommended ones are Win32DiskImager for Windows, Apple Pi Baker for Mac and Ethcer for Linux. As Windows PC are the most popular types of devices, we are going to look through the Win32DiskImager option. In this case:

  • Download the Win32DiskImager. Then, unpack it and set up on your device.
  • Insert an SD card and run the app
  • In the menu, select the image of Retropie, extracted before
  • Select the hard drive letter you’d like to write an image to (BE CAREFUL! Do not choose your really existing drive – all the data will be removed!)
  • Hit the “Write” button

4. After the image is written, take the SD out of your Windows device and insert it into your Raspberry Pi. The Retropie will start booting automatically as soon as you switch the RPi on. On the first boot, you’ll need to configure your controllers, so make sure you have plugged them in (otherwise, the installation won’t be finished). To assign the controllers’ buttons, simply hold the proper button. When all of the buttons are assigned, you’ll be able to proceed to the EmulationStation interface.

Retropie interface

Also, it’s worth mentioning, that on the first boot, you won’t find any emulators. To display them, you need to add ROMs for a compatible console system to the respective system folder. We’ll show you what the ROMs are and how to add them a little bit later in this article.

Retropie ROMs

ROMs are the game files to be additionally installed in the respective console system folders. Then a user will be able to launch the game on a particular emulator via Retropie interface. ROMs can be usually found somewhere on the Internet, on special thematic websites or forums (just beware the Copyright Law and stay legal!).

And as soon as you get ROMs, you’ll need transfer them to Retropie. There are three ways to upload the ROMs: using USB, SFTP or Samba. The easiest and fastest one is using the USB.

USB must be formatted to NTFS or FAT32. The algorithm is the following:

  • Make up a “Retropie” folder on your USB
  • Plug it into the Pi and wait for it to finish blinking
  • Unplug it and then insert it into the PC you keep the ROMs on
  • Add the ROMs to their respective folders (in the retropie/roms folder)
  • Plug it back into the RPi
  • Refresh Retropie by restarting it from the start menu

All set! Now the ROMs should appear in the folders you’ve just transferred them to and the emulator should become visible and available for choosing in the main Retropie menu.

Retropie Emulators

As I have already mentioned above, Retropie is almost the best gaming console emulation project as it offers the essential collection of console emulators. Using Retropie, you can play the most popular ssytems such as NES, SNES, Sega, PlayStation, Wii and even PC (x86!) Windows games with an additional emulator called ExaGear (learn later in this article). Such a diversity is possible due to the great number of emulators inherited from the RetroArch and Libreto. They are available by default as well as for an additional downloading. Find the essential list of emulators below:

Gaming System Year ROMs ROM folder(s) Emulator(s) BIOS file(s) Controls configuration path(s)
3do 1993 .iso 3do lr-4do panafz10.bin /opt/retropie/configs/3do/retroarch.cfg
Amiga 1985 .adf
.zip, .adf, .dms, .exe, .adz, .rp9
amiga UAE4ALL2
UAE4ARM
kick13.rom, kick20.rom, kick31.rom via interface options
Amstrad CPC 1984 .dsk .cpc amstradcpc lr-caprice32
CapriceRPI
none /opt/retropie/configs/armstradcpc/retroarch.cfg
Apple II 1977 .dsk apple2 Linapple none /opt/retropie/configs/apple2/linapple.conf
Atari 2600 1977 .7z, .a26, .bin, .gz, .rom, .zip atari2600 lr-stella
Stella
none /opt/retropie/configs/atari2600/retroarch.cfg
hardcoded
Atari 5200
8 bit
1982 .a52, .bas, .bin, .car, .xex, .atr, .xfd, .dcm, .atr.gz, .xfd.gz Atari800 or atari5200 Atari800 ATARIXL.ROM, ATARIBAS.ROM, ATARIOSA.ROM, ATARIOSB.ROM and 5200.rom opt/retropie/configs/atari800/atari800.cfg or
/opt/retropie/configs/atari800.cfg
Atari 7800 1986 .7z, .a78, .bin, .zip atari7800 lr-prosystem 7800 BIOS (U).rom /opt/retropie/configs/atari7800/retroarch.cfg
Atari Jaguar 1993 .j64, .jag atarijaguar lr-virtualjaguar none /opt/retropie/configs/atarijaguar/retroarch.cfg
Atari Lynx 1989 .j64, .jag atarilynx lr-beetle-lynx
lr-handy
none
lynxboot.img
/opt/retropie/configs/atarilynx/retroarch.cfg
Atari ST (Falcon) 1985 .st, .stx, .img, .rom, .raw, .ipf, .ctr atarist Hatari none hardcoded only
Colecovision 1982 .bin, .col, .rom, .zip coleco CoolCV
lr-blueMSX
coleco.rom /opt/retropie/configs/coleco/coolcv_mapping.txt
/opt/retropie/configs/coleco/retroarch.cfg
Color Computer 1980 .cas, .wav, .bas, .asc, .dmk, .jvc, .os9, .dsk, .vdk, .rom, .ccc, .sna coco XRoar bas13.rom /opt/retropie/configs/coleco/coolcv_mapping.txt
/opt/retropie/configs/coleco/retroarch.cfg
Commodore 64 1982 .crt, .d64, .g64, .t64, .tap, .x64 Commodore64 VICE none /opt/retropie/configs/c64/sdl-vicerc and /opt/retropie/configs/c64/sdl-joymap-c64.vjm
Dragon 32 1982 .cas, .wav, .bas, .asc, .dmk, .jvc, .os9, .dsk, .vdk, .rom, .ccc, .sna coco XRoar d32.rom hardcoded
Dreamcast (Sega) 1998 .cdi, .gdi dreamcast Reicast dc_boot.bin, dc_flash.bin /opt/retropie/configs/dreamcast/mappings
Game Boy Advance 2001 .7z, .gba, .zip gba lr-gpSP
lr-vba-next
lr-mgba
gpSP
gba_bios.bin /opt/retropie/configs/gba/retroarch.cfg
/opt/retropie/configs/gba/retroarch.cfg
/opt/retropie/configs/gba/retroarch.cfg
/opt/retropie/emulators/gpsp/gpsp.cfg
GameCube 2001 .iso gc dolphin none /opt/retropie/configs/gc/Config
Game Gear 1990 .7z, .bin, .gg, .sms, .zip gamegear lr-genesis-plus-gx
Osmose
none /opt/retropie/configs/gamegear/retroarch.cfg
/home/pi/osmose_files/osmose.ini
Game Boy 1989 .7z, .gb, .zip gb lr-gambatte
lr-tgbdual
none /opt/retropie/configs/gb/retroarch.cfg
Game Boy Color 1998 .7z, .gbc, .zip gbc lr-gambatte
lr-tgbdual
none /opt/retropie/configs/gbc/retroarch.cfg /opt/retropie/configs/gb/retroarch.cfg
Sega Genesis (Megadrive) 1988 .7z, .gbc, .zip gbc lr-gambatte
lr-tgbdual
none /opt/retropie/configs/gbc/retroarch.cfg /opt/retropie/configs/gb/retroarch.cfg
Intellivision 1979 .int, .bin intellivision jzintv exec.bin
grom.bin
hardcoded
Macintosh 1984 .img, .rom macintosh BasiliskII mac.rom
disk.img
hardcoded
MAME 1997 .zip arcade
or
mame-mame4all
mame4all none /opt/retropie/configs/mame-mame4all/cfg/default.cfg
lr-mame2000 none /opt/retropie/configs/arcade/retroarch.cfg
/opt/retropie/configs/mame-mame4all/retroarch.cfg
lr-mame2003 none /opt/retropie/configs/arcade/retroarch.cfg
/opt/retropie/configs/mame-libretro/retroarch.cfg
r-mame2010 none opt/retropie/configs/arcade/retroarch.cfg
/opt/retropie/configs/mame-libretro/retroarch.cfg
lr-mame2014 none opt/retropie/configs/arcade/retroarch.cfg
/opt/retropie/configs/mame-libretro/retroarch.cfg
lr-mame2016 none /opt/retropie/configs/arcade/retroarch.cfg
/opt/retropie/configs/mame-libretro/retroarch.cfg
AdvanceMAME 0.94 none /opt/retropie/configs/mame-advmame/advmame-0.94.0.rc
AdvanceMAME 1.4 none /opt/retropie/configs/mame-advmame/advmame-1.4.rc
AdvanceMAME 3 none /opt/retropie/configs/mame-advmame/advmame.rc
Master System 1985 .7z, .bin, .sms .zip mastersystem lr-picodrive
lr-genesis-plus-gx
Osmose
none /opt/retropie/configs/mastersystem/retroarch.cfg
/opt/retropie/configs/mastersystem/retroarch.cfg
/home/pi/osmose_files/osmose.ini
MSX 1983 .rom, .mx1, .mx2, .col, .dsk, .m3u msx lr-bluemsx
lr-fmsx
OpenMSX
none /opt/retropie/configs/msx/retroarch.cfg
/opt/retropie/configs/msx/retroarch.cfg
hardcoded
Neo Geo 1990 .7z, .zip neogeo lr-fbalpha none /opt/retropie/configs/neogeo/retroarch.cfg
lr-fbalpha2012 none /opt/retropie/configs/neogeo/retroarch.cfg
PiFBA none /opt/retropie/emulators/pifba/fba2x.cfg
GnGeo-Pi none /opt/retropie/configs/neogeo/gngeorc
Neo Geo Pocket 1998 .7z, .ngp, .zip ngp lr-beetle-ngp none /opt/retropie/configs/ngp/retroarch.cfg
Neo Geo Pocket Color 1999 .7z, .ngp, .zip ngpc lr-beetle-ngp none /opt/retropie/configs/ngpc/retroarch.cfg
Nintendo 64 1996 .z64, .n64, .v64 n64 Mupen64plus none /opt/retropie/configs/n64/InputAutoCfg.ini
/opt/retropie/configs/n64/mupen64plus.cfg
lr-Mupen64plus none /opt/retropie/configs/n64/retroarch.cfg
lr-GLupeN64 none /opt/retropie/configs/n64/retroarch.cfg
Nintendo DS 2004 .nds, .zip ngpc lr-desmume
DraStic
(Optional) nds_bios_arm9.bin
nds_bios_arm7.bin
nds_firmware.bin
/opt/retropie/configs/nds/retroarch.cfg
/opt/retropie/configs/nds/drastic/config/drastic.cfg
Nintendo Entertainment System (NES) 1983 .7z, .fds, .fig, .mgd, .nes, .sfc, .smc, .swc, .zip nes lr-fceumm
lr-nestopia
lr-quicknes
disksys.rom /opt/retropie/configs/nes/retroarch.cfg
Oric 1983 .dsk, .tap oric oricutron none hardcoded
PC (DOS) 1981 .com, .sh, .bat, .exe pc DOSBox none /opt/retropie/configs/pc/dosbox-SVN.conf
PC Engine / TurboGrafx-16 1987 .7z, .ccd, .chd, .cue, .pce, .zip pcengine lr-beetle-pce-fast
lr-beetle-supergrafx
syscard3.pce /opt/retropie/configs/pcengine/retroarch.cfg
PlayStation 1 1994 cue, .cbn, .img, .iso, .m3u, .mdf, .pbp, .toc, .z, .znx psx lr-pcsx-rearmed SCPH1001.BIN /opt/retropie/configs/psx/retroarch.cfg
pcsx-rearmed SCPH1001.BIN /opt/retropie/configs/psx/pcsx.cfg
lr-beetle-psx scph5500.bin
scph5501.bin
scph5502.bin
/opt/retropie/configs/psx/pcsx.cfg
PlayStation 2 2000 .iso, .img, .bin, .mdf, .z, .z2, .bz2, .dump, .cso, .ima, .gz ps2 PCSX2 none hardcoded
PSP 2004 .cso, .iso, .pbp psp ppsspp
lr-ppsspp
none hardcoded
/opt/retropie/configs/psp/retroarch.cfg
SAM Coupé 1989 dsk, .mgt, .sbt, .sad samcoupe SimCoupe none /opt/retropie/configs/simcoupe/SimCoupe.cfg
Sega 32X 1994 .32x, .7z, .bin, .md, .smd, .zip sega32x lr-picodrive none /opt/retropie/configs/sega32x/retroarch.cfg
Sega CD 1991 .bin, .chd, .cue, .iso segacd lr-genesis-plus-gx bios_CD_U.bin
bios_CD_E.bin
bios_CD_J.bin
/opt/retropie/configs/segacd/retroarch.cfg
lr-picodrive us_scd1_9210.bin
eu_mcd1_9210.bin
jp_mcd1_9112.bin
/opt/retropie/configs/segacd/retroarch.cfg
Sega SG-1000 1983 .7z, .bin, .sg, .zip sg-1000 lr-genesis-plus-gx none /opt/retropie/configs/sg-1000/retroarch.cfg
Super Nintendo Entertainment System (SNES) 1990 .7z, .bin, .fig, .mgd, .sfc, .smc, .swc, .zip snes lr-snes9x2010
lr-snes9x
lr-snes9x2002
PiSNES
lr-snes9x2005
lr-armsnes
snes9x-rpi
none /opt/retropie/configs/snes/retroarch.cfg
/opt/retropie/configs/snes/snes9x.cfg (for PiSNES and snes9x-rpi)
TI-99/4A 1981 .ctg ti-99 ti99sim-sdl TI-994A.ctg hardcoded
TRS 80 1977 .dsk trs-80 sdltrs level2.rom hardcoded
Videopac / Odyssey 2 1983 .bin videopac lr-o2em o2rom.bin /opt/retropie/configs/videopac/retroarch.cfg
Virtual Boy 1995 7z, .vb, .zip virtualboy lr-beetle-vb o2rom.bin /opt/retropie/configs/virtualboy/retroarch.cfg
Wii 2006 .iso wii dolphin none /opt/retropie/configs/wii/Config
Wonderswan 1999 .7z, .ws, .zip wonderswan lr-beetle-wswan none /opt/retropie/configs/wonderswan/retroarch.cfg
Wonderswan Color 2000 .7z, .wsc, .zip wonderswancolor lr-beetle-wswan none /opt/retropie/configs/wonderswancolor/retroarch.cfg
ZX Spectrum 1982 sna, .szx, .z80, .tap, .tzx, .gz, .udi, .mgt, .img, .trd, .scl, .dsk zxspectrum lr-fuse
FBZX
Fuse
none /opt/retropie/configs/zxspectrum/retroarch.cfg
hardcoded

Lakka

Another open source emulation system like Retropie is Lakka. Besides Raspbian, this application can also be run on Linux, Windows and Mac. Its main peculiarity is direct integration into RetroArch and LibreELEC architecture basis. Lakka can also offer the simplicity of ROMs management, high speed, automatic joypad recognition, rewinding, netplay and shaders.

How to install Lakka on Raspberry Pi

There are two ways you can install Lakka on Raspberry Pi. The first is to do it via NOOBS, the image for RPi beginners that helps manage downloads and installations. You can get it from the Raspberry Pi Foundation official website.

Lakka emulator for Raspberry Pi

Another way is the manual installation of an SD card image. It’s the way, that is very close to those we have already mentioned in this article while describing the Retropie and EmulationStation. Still, Lakka has its own peculiarities of installation. The algorithm is the following:

1. Determine your SD card drive. For that fulfill the command for the first time (without the SD card inserted)

$ ls -l /dev/sd*

You should see the output like that:

Raspberry Pi emulator Lakka setup

2. Now, insert an SD card fulfill the command “$ ls -l /dev/sd*” and once again. You should see the following:

Raspberry Pi emulator Lakka setup

Those two extras at the bottom are your SD card partitions.

3. Now, enter the Lakka directory on your Pi, the folder you’ve downloaded and extracted the Lakka archive into (usually some additional PC is used). There you need to write an image file by using the terminal command:

$ sudo dd if=Lakka-*.img of=/dev/sdX 
#where "sdX" is your SD card drive

4. Then insert the SD card with the freshly-written Lakka image into your RPi

5. Connect the monitor and controllers to your device and switch it on

6. The system will automatically do all the installation and reboot. After that, the Lakka interface with the menu should appear to navigate and set up the controllers. That means you’ve just successfully installed Lakka on your Raspberry Pi.

Raspberry Pi emulator Lakka interface

Managing Lakka ROMs

The best way to store the ROMs is to place them in the “roms” folder. The users usually create the folders named after a particular emulator and then store the ROM files there. It’s highly recommended to keep the ROMs zipped (excluding CD images). You can load ROMs both from external USB drive and via advanced remote storage (the instructions are here). As you can understand, the first one is much simpler! All you need is just to connect the USB-drive to your Raspberry Pi and drag-and-drop files to the proper directory (usually lakka/roms).

Upgrading Lakka

It’s not safe to upgrade Lakka if you have implemented a lot of customization to this emulation system. So, it’s highly recommended to backup everything before you ever update it. Anyway, there’re different ways to update Lakka, and the easiest and fastest one is to do it directly from the graphical interface.

  1. Go to “Online Updater” in the menu
  2. Choose the “Update Lakka” menu option
  3. Select the image you want to download
  4. As soon as the automatic updating is over, reboot the system

The other ways include updating via USB-drive, manual downloading the img.gz archive, reflashing and updating through SSH. To learn them visit their docs page on their website.

Recalbox

Recalbox is an open source free emulation system based on Linux and containing a lot of additional retro gaming software. The package includes: 40+ pre-installed RetroArch/LibRetro emulators, Kodi Media center and customized EmulationStation front-end.

Besides that, Recalbox offers a multiplayer (up to 4 controllers), wireless controllers connection support (including XBOX 360, PS3 and 8Bitdo), any game any time rewinding, single-click online updates, additional saves (anywhere within the game) and live screenshots.

Recalbox installation and configuration

Recalbox advantage is that it’s made as simple and user-friendly as possible. Thus, installation is as simple as writing up an SD card image for an automatic booting.

Recalbox emulator for Raspberry Pi

The way is absolutely identical to what we’ve already described earlier in the Retropie or EmulatioStation section. The only difference is that you have to download the image file here. If everything is done correctly, you should see the Recalbox interface which looks very alike EmulationStation.

Raspberry Pi emulator Recalbox interface

Recalbox emulation system features great configuration opportunities. There’s a wide list of parameters you may set up the way you like. To configure the system, choose between the two options:

  • Through the network shared folders on Recalbox. Find the file in a directory named “recalbox.conf”
  • Via root connection by editing the file on the system at /recalbox/share/system/recalbox.conf

Among the adjustable settings, you’ll find the system options, network, audio, controllers, language and keyboard, updates and emulation configuration. To learn more visit their page on GitHub.

PiPlay

PiPlay (formerly PiMAME) is an operating system and an emulation system open source project made for retro gaming on Raspberry Pi. Actually, the Piplay also includes the two hardware products – the Piplay portable and the DeskCade.

Recalbox emulator for Raspberry Pi

The Piplay portable is a device, based on Raspberry Pi Zero and PiPLay system to play retro console games on one portable game system kit (like a Gameboy or a PSP). DeskCade is a desktop arcade gaming kit, looking like a retro gaming arcade machine. It has a classic arcade controller (a joystick) and is compatible with Retropie, so you can play any retro and modern console games arcade style.

PiPlay as an emulation system itself is a quite simple application that works ontop of Raspbian and has a user-friendly interface. It offers a limited number of retro console emulators, including MAME, CPSI/CPSII, Neo Geo, PlayStation, Genesis, NES and SNES, Gameboy, ScummVM, Atari 2600, Cavestory and Commodore64.

How to install PiPlay on RPi

1. Update and upgrade the packages before you start:

$ sudo apt-get update
$ sudo apt-get dist-upgrade -y
$ sudo reboot

2. After the system reboots update a Raspberry Pi firmware:

$ sudo apt-get install rpi-update
$ sudo rpi-update

3. Install additional libraries:

$ sudo apt-get install git build-essential joystick htop python-pygame jstest-gtk

4. Download and install the PiPlay:

$ wget http://piplay.org/installer.sh
$ cd home/pi/Downloads
$ sudo ./installer.sh

Create the “piplay-sound.slate” file:

$ touch ~/pimame/config/piplay-sound.state

5. Now you can configure your controller (previously connected, of course) by pressing tab and selecting the “Controller Setup”.

6. On this step, the system is actually installed and the only last thing you need to do is to start it and install MAME4ALL and AdvanceMAME by moving to the right screen and selecting “Install MAME” in the interface. As soon as this installation is finished, you are completely all set!

Raspberry Pi Emulator PiPlay interface

Now, you need to find ROMs and load them to the ~/pimame/roms folder. all the ROMs must stay “.zip” format in PiPlay. You can choose to download the ROMs via FTP or SRC as well (the methods are similar to those, described above).

ExaGear Desktop Emulator for gaming on Raspberry Pi

All of the Retropie emulators mentioned above are available for playing only console games, while ExaGear Desktop allows playing x86 PC Windows games on Raspberry Pi! Of course, the only condition is that games technical requirements should be relevant to the hardware. Raspberry Pi, even overclocked and withs 3D graphics acceleration feature enabled (supported by ExaGear), can still run old and medium age computer games. For example, such games as Fallout, Arcanum, Heroes III etc. are OK. But the latest Destiny 2 will definitly never start! 🙂

Besides the graphics acceleration support, another great feature of ExaGear Desktop is that it’s been integrated into Retropie front-end, bringing a lot of convenience to users. The mater is that, originally, ExaGear Desktop is not a narrow-purpose gaming emulator but the full functional binary translation software, which aim is (but not limited to) running any x86 applications on ARM-based devices. So, it used to work side-by-side with Retropie and on top of Raspbian. And only since the latest update in 2017, ExaGear has become integrated into Retropie and has been gained the option for running PC games directly from the Retropie’s interface. Read the details in our ExaGear extension for Retropie guide.

ExaGear Desktop for gaming is compatible with Raspberry Pi (all models) as well as with Odroid.

In addition, it’s worth noting that ExaGear may run two ways: headless as a side application and as a Retropie emulator from the EmulationStation’s interface. It is very convenient and the only thing you need is to download it, set up and start. For that, simply follow the instructions below.

How to install ExaGear emulator on Retropie

The installation of ExaGear Desktop emulator on Retropie is quite simple.

1. Open Retropie and call for the terminal inside the Retropie interface by pressing “Ctrl+Alt+F4”.

2. Download and install ExaGear Rettopie Emulator with this command (you need to be in “home” directory):

$ cd /home/pi
$ wget downloads.eltechs.com/install-exagear-retropie-v2.sh

3. Assign the proper rights to the installer app and launch it:

$ chmod +x install-exagear-retropie-v2.sh
$ ./install-exagear-retropie-v2.sh

4. The next step is to fill out a tiny pop-up form. Input your name, last name and e-mail address to activate the emulator.

ExaGear Retropie pop-up form

5. As the final step, you’ll need to configure Wine. The configuration window will open up automatically and you’ll have to simply tick “Emulate a virtual desktop” checkbox.

ExaGear Retropie emulator Wine configuration

As soon as you are done with all the steps and the installation is finished, perform a reboot.

$ sudo reboot

Now, you can proceed to installing and running PC games with your new RPi emulator. Below you can find some examples.

The ExaGear emulator doesn’t work with ROM files. To install and play x86 PC games, you’ll need to get distributions (mainly “.zip” files). The easiest way to get the proper files is to use the website www.gog.com, specially targeted to distribute such games.

Below, find some examples of games we have already managed to install and launch on the Pi with ExaGear Desktop.

Emulate Might and Magic 6 on RPi

We recommend downloading Might and Magic 6 from GOG.

To install MaM 6 open Terminal (command line), enter the guest x86 system by running the ‘exagear’ command to activate the Raspberry Pi emulator for Windows games. After that, enter the folder with the installer (in our case it’s  in folder Downloads) and run it with Wine:

$ exagear
$ cd Downloads
$ wine setup_mm6_2.1.0.42.exe

The graphical interface of the game installer will show up:

The installer interface for setting up Might and Magic 6 with Wine and Raspberry Pi 2 Emulator for games

After installation is finished you can run MaM 6 from your Desktop:

Running Might and Magic 6 within Wine on RPI emulator for gaming

Wait a couple of minutes while MaM 6 is loading, and finally, you will see the start menu.

Now you can play Might and Magic 6 on Raspberry Pi:

Launching Might and Magic 6 game on the Pi with Raspberry Pi 3 emulator

For more detailed illustration, we’ve made a video of the whole installation process.

Emulate Pharaoh and Cleopatra on Raspberry Pi

We recommend downloading the game from GOG.

To install Pharaoh and Cleopatra open Terminal (command line), enter the guest x86 system by running the ‘exagear’ command, enter the folder with the installer and run it with Wine:

$ exagear
$ cd Downloads
$ wine setup_pharaoh_gold_2.0.0.12.exe

The graphical interface of the game installer will show up and you can proceed with the installation. After installation is finished you can run Pharaoh and Cleopatra directly from the Raspbian desktop or from the start menu. You might need to wait until the game is loaded.

Starting Pharaoh and Cleopatra game on Raspbian within guest x86 environment made by emulator for Raspberry Pi

For your convenience, watch the video about the whole process below.

Emulate Stronghold Crusader Extreme HD on RPi

We recommend downloading Stronghold Crusader Extreme HD from GOG.

To install the game on our Raspberry Pi console emulator, just enter the guest x86 system by entering the ‘exagear’ command in the Terminal, enter the folder with the installer and run it with Wine:

$ exagear
$ cd Downloads
$ wine setup_stronghold_crusader_extreme_hd_2.2.0.8.exe

After installation you can run the game from the Raspbian desktop:

Starting Stronghold Crusader game within guest x86 environment on Raspberry Pi 2 emulator

The Most Popular Emulators for Raspberry Pi

We’ve already listed a number of emulators to be actively used within the emulation systems, like Retropie or Recalbox. So, there are the most popular among them. In fact, it’s not optimal to load all the existing emulators to Retropie, for example, as it can influence on your hardware performance. And it’s really smart to get only the best emulators which are used by hundreds of thousands of retro gamers around the globe. For you to learn them and compare, we’ve prepared a special listing below.


Gameboy

Gameboy was the first handheld portable gaming console, released by Nintendo in 1989 and started the whole industry of handhelds. The great Gameboy features which made it the world popular were the multiple players (via the cable, up to 4 players), extended battery life and affordable price. Not mentioning the portability for gamers to play anywhere and on-the-go.

Emulators: lr-gambatte, lr-tgbdual

ROM files extensions: .7z, .gb and .zip.

ROMs directory: /home/pi/RetroPie/roms/gb.

The controls configurations: customize the file, located in /opt/retropie/configs/gb/retroarch.cfg

Raspberry Pi Gameboy emulator

The main feature for using the emulators is that lr-gambatte is good for single playing, while lr-gambatte emulator supports two players connected through the cable over network or parallel on the same system.


Gameboy Advance or GBA

GBA was the next generation handheld console, released by Nintendo in 2001. It featured 32-bit updated graphics and performance.

Emulators :gpSP, lr-gpSP, lr-vba-next, lr-mgba

ROM files extensions: .7z, .gba and .zip.

ROMs directory: /home/pi/RetroPie/roms/gba.

The controls: files to configure are situated in /opt/retropie/emulators/gpsp/gpsp.cfg for gpSP emulator and in /opt/retropie/configs/gba/retroarch.cfg for other emulators.

Note that The Game Boy Advance requires a BIOS file “gba_bios.bin”, which should be placed in /home/pi/RetroPie/BIOS


NES

NES stands for “The Nintendo Entertainment System”. It is an 8-bit gaming console, firstly released in 1985.

Programm emulators (LibRetro): lr-nestopia, lr-fceumm and lr-quicknes.

ROM files extensions: .7z, .fds, .fig, .mgd, .nes, .sfc, .smc, .swc, and .zip.

NES ROMs directory: /home/pi/RetroPie/roms/nes.

Raspberry Pi NES emulators

Also note, that games with the .fds files extension will require the “disksys.rom” file, which must be placed in /home/pi/RetroPie/BIOS directory. Concerning the controllers, you can set up and configure them using the Retroarch configurations. Add custom controls to the “retroarch.cfg” file in /opt/retropie/configs/nes/retroarch.cfg directory.


SNES

SNES (or “Super Nintendo Entertainment System”) was later released in 1991 and was the 4th generation video game consoles produced by Nintendo.

Emulators (RetroArch): lr-snes9x-2010, lr-snes9x, lr-snes9x2002, PiSNES, lr-snes9x2005, lr-armsnes, snes9x-rpi. Each of them accepts the ROMs: .7z, .bin, .fig, .mgd, .sfc, .smc, .swc and .zip.

The controls configurations: through the custom “retroarch.cfg” file which you can find in /opt/retropie/configs/snes/retroarch.cfg

Controller configurations: are kept in “snes9x.cfg” file that is located in /opt/retropie/emulators/pisnes.

Raspberry Pi SNES emulators

Also note, that the games with more than 2 players are supported only for lr-snes9x2010 emulator. To activate the feature, switch on the multi-tap option by adding this line to the “retroarch.cfg” file (using the leafpad command):

input_libretro_device_p2 = "257"

Nintendo 64 or N64

Nintendo 64 (or N64) was released by Nintendo in 1996 and that started the era of the 5th generation gaming consoles.

Emulators: Mupen64plus, lr-Mupen64plus, lr-GLupeN64. (The recommended one is the Mupen64plus as it has better performance.)

ROM files: .z64, .n64, and .v64 files.

ROMs directory: /home/pi/RetroPie/roms/n64 folder.

Controls regulation: for lr-Mupen64plus and lr-GLupeN64 the controls are regulated via the “retroarch.cfg”. For Mupen64plus (starting from Retropie 3.3) they are configured automatically. So, the files to modify in this case are located at: /opt/retropie/configs/n64/mupen64plus.cfg and /opt/retropie/configs/n64/InputAutoCfg.ini.

Raspberry Pi N64 or Nintendo 64 emulators

Note, that at least Raspberry Pi 2 needed for a good N64 performance. Also beware, that the performance gets worse with the HD screen resolution. For the best experience don’t mind using low resolution. For example, for RetroPie 4.0 the best resolution would be 320×240 px.


Nintendo DS

Nintendo DS (where the “DS” is “dual screen”) is a handheld portable video gaming console released by Nintendo in 2004. The main feature of this console was the two LCD screens, one of which was a touchscreen. Also, it had a built-in microphone and a wireless connection. It is a unique application with a bunch of frontends to provide users with a simple interface.

Emulators: lr-desmume and DraStic.

The ROMs extensions: .nds and .zip format.

The ROMs directory: /home/pi/RetroPie/roms/nds.

The controls directories: for lr-desmume – opt/retropie/configs/nds/retroarch.cfg and for DraStic – /opt/retropie/configs/nds/drastic/system.

Raspberry Pi N64 or Nintendo DS emulators

Note, that the DraStic is a beta software, though it runs very good, unlike lr-desmume, which is very laggy even when used on an overclocked RPi 2/3.


PlayStation or PS1 or PSX

Sony PlayStation came to the market as the 5th generation CD-based game console and was released by Sony in 1994. Besides playing games, PS also could playback audio CDs and some models even could play Video CDs. Was one of the best selling computer entertainment platforms.

Special emulators: lr-pcsx-rearmed, lr-beetle-psx and pcsx-rearmed.

ROMs: .cue, .cbn, .img, .iso, .m3u, .mdf, .pbp, .toc, .z and .znx

The ROMs directory: /home/pi/RetroPie/roms/nds.

Controllers configuration: for lr-desmume – /opt/retropie/configs/psx/pcsx.cfg and for other two – /opt/retropie/configs/psx/retroarch.cfg.

Raspberry Pi PlayStation 1 PS1 PSX emulators

The BIOS file “SCPH1001.BIN” is needed. You should place it in /home/pi/RetroPie/BIOS directory.


PlayStation 2 or PS2

PS2 was a successor of PSX (PS1) and the 7th generation gaming console. It was released in 2000 and was the best selling entertainment system of all time with over 155 million units sold worldwide. Besides gaming, it also played the audio and video CDs, DVDs, and had the Internet connection.

Emulator: only PCSX2.

ROMs: .iso, .img, .bin, .mdf, .z, .z2, .bz2, .dump, .cso, .ima and .gz.

The ROMs directory: /home/pi/RetroPie/roms/ps2.

Controllers configuration: can be done via Retropie GUI on the first run.

Raspberry Pi PS2 emulator

Plasystation 2 BIOS file is needed for the emulator to function. Load it to /home/pi/.config/PCSX2/bios/.


Wii

Wii was released by Nintendo in 2006. The most modern console available in Retropie. Was the 7th generation gaming console to compete with Xbox 360 and PS3. Was the first device with a pointing remote controller that could detect movement in 3D.

Emulator: dolphin.

ROMs extension: only .iso.

ROMs directory: /home/pi/RetroPie/roms/wii.

Controllers configuration: //opt/retropie/configs/wii/Config.

Wii emulator for Raspberry Pi is not available

NOTE! Can’t be ported to Raspberry Pi (or other ARM) and although the ARM community discusses the opportunities on forums, the solution is still unreachable due to hardware performance limitations. (Introduced only for familiarization)


MAME Arcade emulators

MAME or Multiple Arcade Machine Emulator is the app to emulate arcade machine games. It doesn’t emulate a console, but different arcade machines. Consequently, MAME represents thousands of retro games, rather very old, released by different manufacturers, which used to deliver them with their own unique arcade machines.

Emulators list: mame4all-pi, lr-mame2000, lr-mame2003, lr-mame2010, lr-mame2014, lr-mame2016, AdvanceMAME 0.94, AdvanceMAME 1.4, AdvanceMAME 3.

The ROMs: all use .zip format.

Raspberry Pi Arcade emulators - MAME

ROMs locations: The ROMs are stored in the shared folders, which means they are used by more than one emulator. You can find these folders by names, which have the RetroPie/roms/ in the beginning of the directory and finishes with: /arcade, /mame-libretro, /fba and /neogeo (for example, RetroPie/roms/neogeo). Thus, you need to specify the arcade emulator version which matches your ROMs.

The things are a more complicated with MAME emulators contorls. Different emulators belong to different directories where you can find the controls configuration files to modify:

  • for mame4all-pi the path is /opt/retropie/configs/mame-mame4all/cfg/default.cfg
  • for lr-mame2000 – /opt/retropie/configs/lr-mame2000/retroarch.cfg
  • for lr-mame2003, lr-mame2010, lr-mame2014 and lr-mame2016 – /opt/retropie/configs/mame-libretro/retroarch.cfg
  • for AdvanceMAME 0.94, AdvanceMAME 1.4 and AdvanceMAME 3 – /opt/retropie/configs/mame-advmame

FBA Arcade emulators

FBA stands for FinalBurn Alpha that is a Multiple Arcade Emulator just like MAME is, but supports only Konami, NeoGeo, Cave and Capcom games.

Emulators: lr-fbalpha, lr-fbalpha2012 and PiFBA

ROM files: .7z .zip, .zip

ROMs directories: like MAME, FBA uses 5 shared folders – /arcade, /mame-libretro, /fba and /neogeo (with RetroPie/roms/ as the start of the path, e.g. RetroPie/roms/neogeo). Specification of the emulator is needed!

Raspberry Pi Arcade emulators - FBA or RinlaBurn Alpha

Different emulators have different controls configuration files directories:

  • for lr-fbalpha and lr-fbalpha2012: /opt/retropie/configs/fba/retroarch.cfg
  • for PiFBA: /opt/retropie/emulators/pifba/fba2x.cfg

Neo Geo

Neo Geo is a cartridge-based arcade emulator, which brought the arcade machine fun at users homes. Released by SNK in 1990. So, it is emulated with one unique emulator. Also, the NeoGeo games can be played via FBA emulators.

Emulators list: GnGeo-Pi, lr-fbalpha, lr-fbalpha2012 and PiFBA.

The ROMs: .7z.zip and .zip.

ROMs locations: /home/pi/RetroPie/roms/neogeo

Raspberry Pi Neo-Geo emulators

The controllers can be configured in /opt/retropie/configs/neogeo/gngeorc directory for GnGeo-Pi emulator. For FBA emulators controls configuration, see the FBA emulator part.


Gamecube

Gamecube is a 6th generation gaming console, released by Nintendo in 2001 to compete with PlayStation and XBOX. It was the first Nintendo’s console which used the optical disks, supported online gaming and could connect to GBA to use it as a second screen and controller.

Emulator: dolphin.

The ROMs: .iso

ROMs location: /home/pi/RetroPie/roms/gc

Raspberry Pi Gamecube emulator

As the Gamecube can be played only via the Dolphin emulator, unfortunately, it’s almost impossible to run it on Raspberry Pi or any other ARM. It will launch but will be unbearably slow.


Dolphin

Dolphin is an emulator for just two consoles: GameCube and Wii. It’s a special emulator to talk about. The matter is that it is included in Retropie, but the Linux version only. Also, it’s possible to install this emulator on Raspberry Pi, but its performance is close to unplayable.

There are quite a lot of people who have tried to do that and discussing their experience on forums and social media. And all of those who have ever tried to launch the Dolphin emulator on Raspbian say, that it’s extremely laggy and slow.

Of course, the reason for it is in the low performance of the Raspberry Pi (as well as many other ARM) hardware. And even if you overclock your RPi, or will use the hardware graphics acceleration (which is supported by ExaGear) you won’t receive the desirable quality.

Dolphin emulator

The ROMs extensions: the ISO disk images are used. The ISO ripping is carried out by the user and may require additional apps (like Rawdump, Friidump or CleanRip). Also, due to file formats sizes the GameCube and Wii disks have, splitting some games into several ISO files and reassembling them inside the emulator is a widely used practice.


DOSBox

DOSBox is an emulator of DOS operating system for retro gamers to enjoy very old DOS PC games. DOSBox uses SDL-library and emulates CPU 286/386; FileSystem, such as XMS and EMS; graphics: VESA, CGA, EGA, VGA, Tandy and Hercules; Gravis and SoundBlaster Ultra Sound. Officially released in 2010, it had been unofficially being used since 2002.

Operating systems: compatibility with Raspberry Pi is provided with RISC OS, Fedora, FreeBSD, Gentoo Linux and Debian operating system packages. Currently, it’s also integrated into Retropie.

The ROMs extensions: use specific image files that can be downloaded from a special GOG website.

The ROMs directory: need to be placed in a specific directory, different from the “dosbox” folder. So, if you created “dosbox” folder in home/Pi/Retropie directory, so the ROMs should be kept in the same directory, but in a different folder, for instance, “DOS-GAMES” folder.

Raspberry Pi emulator DOSBox for DOS games

So, every time you install and start a game, you should download it in that folder and use the “mount c ~*your game folder path” command to connect the game ROM to the DOSBox emulator.

In general, this kind of an emulator is very simple and user-friendly. Easy to install and easy to set up and configure the controllers. All the process are guided by the clear prompts.


ExaGear

I have already mentioned the ExaGear Desktop software is a retro gaming emulation system to play old and medium age x86 PC games on ARM devices. Here, I’d like to uncover one more feature od ExagEar – it can be loaded to Retropie as an additional emulator.

The main convenience is that it becomes possible to run PC games right from the Retropie GUI. So, we can truthfully say, that Retopie is extended to PC playing in addition to consoles. The feature was released in 2017.

Raspberry Pi ExaGear emulator for Retropie PC gaming

Emulator: ExaGear

The ROMs: .exe and specific files from the GOG website.

ROMs location: No specific folders needed. You can download everything right into /home/pi/RetroPie

We’ve got a detailed guide on how to install and run ExaGear PC games emulator within Retropie – read it here. Also to get a quick tutorial watch the video guide:

Final notes

So, in this article, we’ve learned how to make a gaming console from your RPi (or any other ARM device). Moreover, to enhance your emulation machine performance you can use extra software, which will allow you to widen the limits of your personal Raspberry Pi game gear.

Exagear Desktop is able not only to turn your Raspberry Pi into an emulator but can also help you to significantly increase the capabilities of your RPi based emulation system by letting you run Linux and Windows PC games (such as Might and Magic 6, Stronghold Crusader Extreme HD, Pharaoh and Cleopatra, listed in this tutorial, and more games from our previous articles).

Don’t limit yourself – enjoy more of your favorite games with ExaGear Desktop!

Get my ExaGear Desktop

Also on Eltechs

Virtual machine for Rasberry Pi - ExaGear Desktop

Virtual machines for Raspberry Pi

Choose the best virtual machine for your Raspberry Pi or any other ARM device comparing ExaGear and its alternatives

TeamSpeak 3 Server on Raspberry Pi

Build a TeamSpeak 3 Server on Raspberry Pi

In this post, we will tell you how to setup TeamSpeak 3 Server on Raspberry Pi with ExaGear Desktop which allows running any x86 apps on ARM mini PCs.

Microsoft Dotnet Framework on Raspberry Pi

Run MS .NET Framework 4.5 on Raspberry Pi

Set and run .NET Framework on Raspberry Pi for any specific reason. Step-by-step detailed guide.

Run Wine on Raspberry Pi

Wine on Raspberry Pi

Detailed instruction on running a Wine app on any Raspberry Pi (or other ARM) to port different x86 apps on Raspbian

Get you gaming experience beyond RetroPie level

Gaming Beyond RetroPie

Run iconic PC games like Arcanum, Disciples II and Fallout on RPi with Exagear and improve your device gaming level beyond Retropie.

Run OwnCloud on Raspberry Pi to create online file storage system of your own

Setup OwnCloud on Raspberry Pi

Raspberry Pi OwnCloud detailed installation instructions for your personal files cloud storage system on Raspbian.

ExaGear is registered trademark of Eltechs, Inc. Raspberry Pi is a trademark of the Raspberry Pi Foundation. Other trademarks and product names are the property of their respective owners.