RetroArch
FreeOne interface for every retro console emulator
A unified front end for emulators. Systems from the NES and SNES through Sega, Game Boy Advance, PlayStation and arcade boards load as "cores" inside one program, sharing a single interface, controller mapping, save system, rewind feature and video filters. It runs on Windows, macOS, Linux, Android, iOS and a long list of handheld systems.
Why we picked it
The annoying part of playing old games is not finding an emulator — it is that every system needs a different one: different interfaces, controller mappings redone each time, incompatible save formats, video settings tuned separately.
RetroArch's answer is a single shell. Individual emulators are packaged as "cores", installable from within its interface, after which every system shares the same operating logic: map the controller once, one save and save-state system, one screenshot and recording pipeline.
It also brings capabilities individual emulators rarely offer:
- Rewind: mistime a jump and roll the game back a few seconds to try again.
- Fast forward: hold a button to skip through dialogue or backtracking.
- Shader filters: simulate the scanlines and rounded corners of a period CRT, or upscale with modern algorithms — whichever you prefer.
- Netplay: some cores support online multiplayer across locations.
Its reach is the other advantage — the same configuration reappears on a desktop, an Android phone, iOS, a Raspberry Pi and a variety of open handhelds.
To be clear about:
- It is not effortless to learn. The menu is designed for controller navigation and runs deep, so first-time setup of cores, directories and controllers takes a while. It is efficient once internalized, but it is not "open and play".
- Bring your own games and BIOS files. RetroArch ships no game content, and some cores (the PlayStation one, for example) require a BIOS you obtained legally. Only run games you legitimately own.
- Watch out for imitations. App stores carry ad-laden and even paid knockoffs trading on the RetroArch name. Use retroarch.com or the official GitHub releases.