In this video Brad Wheeler covers the RetroPie project and associated programs: RetroArch and EmulationStation.
- Before we get into the details of installing RetroPie on your Raspberry Pi, let's make sure we're on the same page when we talk about video game emulation, starting with the terminology. An Emulator is a piece of software designed to reproduce the functionality of some other software or hardware. From the perspective of any software you run in an emulator, it's actually running on whatever the original hardware was. With few exceptions, it can't tell the difference. However, emulators typically don't reproduce the original on a one to one basis. They don't simulate every last circuit, diode or line of code.
Instead, they're only concerned with the end result. Does the software work properly? A ROM, or ROM image, refers to the software that you run on a video game emulator. It contains a copy of the Read-Only Memory from old video game cartridges. The memory where the game's code and state were stored. Most ROMs are video games, but a ROM could theoretically be any piece of software, like the old BASIC cartridges that came in some early computers, for instance. In the context of video game emulation, ROMs could also refer to optical disk images, such as from the Sony PlayStation.
Not all emulators need ROMs. If whatever system it's emulating allowed you to use writable memory, then the emulator typically does, too. Take DOSBox, for example. It emulates MS-DOS running on an IBM-compatible PC, and just like an IBM PC, you can mount drives, install software, and change system settings. So then, what's RetroPie? It's software that includes emulators, front end interfaces, and global configuration tools to allow you to get your retro game console up and running without having to do a lot of tedious installation and configuration by hand.
It includes the following important sub-systems: RetroArch. RetroArch implements the libretro API. This API allows developers to create emulators or any 2D video game called "cores" that are purely concerned with running game code. The RetroArch front end handles everything related to audio, video and interface for the core. All the core has to do is run content. RetroPie also installs with EmulationStation, the interface that allows you to run games, as well as to configure them on a per-game or per-system basis.
EmulationStation is more than an interface, however. Think of it like a virtual assembly line that pairs the game content you want to run with a configuration file, uses RetroArch to load it into libretro core, and then launches the whole bundle for you as a playable game.
- Installing RetroPie automatically and manually
- Configuring RetroPie
- Using RetroArch
- Using the EmulationStation front end
- Backing up your settings
- Loading games to your Raspberry Pi
- Configuring a USB controller
- Building an arcade cabinet