RetroArch
The emulator front end that runs on everything and emulates nearly everything.
What it does
RetroArch is the reference front end for libretro, an API that emulators implement as loadable cores. Install the shell once, download cores from inside it, and every system — arcade, 8-bit, 16-bit, PlayStation, DS, DOS — runs through the same input mapping, save state system, shader pipeline and netplay stack.
The features that come from doing it at this layer are the reason to tolerate the interface: run-ahead, which removes frames of input lag the original hardware had; CRT shaders that reproduce scanlines and phosphor bloom properly; rewind; and achievements through RetroAchievements.
Notes
- Two casks on macOS:
retroarch-metalfor the Metal renderer, andretroarchfor the OpenGL build. Metal is the one to install unless a specific shader needs GL. - The menu is its own universe, designed for a controller rather than a mouse. OpenEmu exists because of exactly that.
- Cores that need a console BIOS will say so and refuse to run without it. Dumping one from hardware you own is your side of the deal.
Alternative to
| Alternative | Type | Trade-off |
|---|---|---|
| OpenEmu | Open source | Native, tidy, Mac-only, fewer systems |
| Dolphin, PCSX2 and friends | Open source | Standalone builds, ahead of the equivalent cores |
| EmulationStation | Open source | A launcher in front of emulators, rather than a host for them |
| Batocera | Open source | The same stack as a whole operating system for a dedicated box |
Install
brew install --cask retroarch-metal # Metal renderer
brew install --cask retroarch # OpenGL build