RetroArch
RetroArch is a free and open-source, cross-platform frontend for emulators, game engines, video games, media players and other applications. It is the reference implementation of the libretro API, designed to be fast, lightweight, portable and without dependencies. It is licensed under the GNU GPLv3.
RetroArch runs programs converted into dynamic libraries called libretro cores, using several user interfaces such as command-line interfaces, a few graphical user interfaces optimized for gamepads, several input, audio and video drivers, and other sophisticated features such as dynamic rate control, audio filters, multi-pass shaders, netplay, gameplay rewinding, cheats, etc.
RetroArch has been ported to many platforms. It can run on several PC operating systems, home consoles, handheld consoles, smartphones, smart TV's, single-board computers and web browsers., versions for PlayStation 4 and PlayStation 3 are not out yet, but are available unofficially.
History
Formerly known as SSNES, initially based on pseudonymous programmer Near's predecessor libsnes, it began its development in 2010 with Hans-Kristian "Themaister" Arntzen committing the first change on GitHub. It was intended as a replacement to bsnes's Qt-based interface but it grew to support more emulation "cores". On April 21, 2012, SSNES was officially renamed to RetroArch to reflect this change in direction.RetroArch's version 1.0.0.0 was released on January 11, 2014, and at the time was available on seven distinct platforms: OS X, Android, iOS, PlayStation 3, Xbox 360, Wii and GameCube. On February 25, 2014, the version for Microsoft Windows was released. It featured cores for systems: SNES, NES, GB, GBC, GBA, Sega Genesis and Nintendo 64.
On February 16, 2016, RetroArch became one of the first ever applications to implement support for the Vulkan graphics API, having done so on the same day of the API's official release day.
On November 27, 2016, the Libretro Team announced that, alongside Lakka, RetroArch would be on the Patreon crowdfunding platform to allow providing bounties for developers who fix specific software bugs and to cover the costs for matchmaking servers.
In December 2016, GoGames – a company contracted by video game developer and publisher Sega – approached the RetroArch developers with the intention of using their software in their SEGA Forever project but ultimately the cooperation did not come to fruition due to licensing disagreements.
In April 2018, an input lag compensation feature called "Run-Ahead" was added.
The Libretro Team planned to release RetroArch onto Steam as a free download, integrating Steamworks features into the platform in July 2019. It would have been the first major dedicated emulation title to be released on the platform at the time.
In 2020, the paraLLel libretro core for RetroArch used the GPU to run the Nintendo 64 at full speed on common consumer hardware, with upscaled graphics and the accuracy of bit-exact low-level renderer Angrylion.
In August 2020, someone impersonating a trusted member of the team got access to the buildbot server and the GitHub account for the libretro organization, causing vandalism and server wipes.
In November 2020, RetroArch in conjunction with a PCSX2 libretro core allowed the Xbox Series X and Series S to emulate the PlayStation 2, something that Sony's own PlayStation 5 could not do at the time.
On September 14, 2021, RetroArch was released on Steam.
On May 15, 2024, RetroArch has returned after three years officially on iOS, iPadOS, tvOS and visionOS through the App Store.
Features
Its major features include:- Advanced GPU shader support – A multi-pass post-processing shader pipeline to allow efficient usage of image scaling algorithms, emulation of complex CRT, NTSC video artifacts and other effects;
- Dynamic rate control to synchronize video and audio while smoothing out timing imperfections;
- FFmpeg recording – Built-in support for lossless video recording using FFmpeg's libavcodec;
- Gamepad abstraction layer called Retropad;
- Gamepad auto-configuration – Zero-input needed from the user after plugging gamepads in;
- Peer-to-peer netplay that uses a rollback technique similar to GGPO;
- Audio DSP plugins like an equalizer, reverb and other effects;
- Advanced savestate features – Automatic savestate loading, disabling SRAM overwriting, etc.;
- Frame-by-frame gameplay rewinding;
- Button overlays for touchscreen devices like smartphones;
- Thumbnails of game box art;
- Low input and audio lag options;
- Automatically build categorized playlists by scanning directories for games/ROMs;
- Multiple interfaces including: CLI, XMB, GLUI/MaterialUI, RGUI and Ozone ;
- Game ROM scanner – Automatically constructs playlists by comparing the hashsums of a directory's files against databases of hashsums of known good game copies;
- Libretro database of cores, games, cheats, etc.;
- OpenGL and Vulkan API support;
- Run-ahead – Hide the input lag of emulated systems by using both savestates and fast-forwarding;
- Achievement tracking – Integration with the RetroAchievements service to unlock trophies and badges;
- AI service – Uses machine translation external services to translate game text on screen.
Supported systems
Below is a non-exhaustive table of which systems are available to RetroArch and what project the core is based on:
| System | Computer system/video game console emulator | Platform |
| 3DO | 4DO, Opera | PC, iOS, Android |
| Amiga | PUAE UAE4ARM | PC, iOS, Android |
| Amstrad CPC | Caprice32 CrocoDS | PC, iOS, Android |
| Arcade | MAME MESS FinalBurn Neo FinalBurn Alpha | PC, iOS, Android |
| Atari 2600 | Stella | PC, iOS, Android |
| Atari 5200 | a5200 Atari800 | PC, iOS, Android |
| Atari 7800 | ProSystem | PC, iOS, Android |
| Atari 8-bit computers | Atari800 | PC, iOS, Android |
| Atari Falcon/Atari ST | Hatari | PC |
| Atari Jaguar | Virtual Jaguar | PC |
| Atari Lynx | Mednafen Handy | PC, iOS, Android |
| BBC Micro | Acorn | PC, iOS, Android |
| ColecoVision | blueMSX Gearcoleco | PC, iOS, Android |
| Commodore 64 | VICE Frodo | PC, iOS, Android |
| Commodore 128 | VICE | PC, iOS, Android |
| Commodore CBM-II | VICE | PC, iOS, Android |
| Commodore PET | VICE | PC, iOS, Android |
| Commodore Plus/4 | VICE | PC, iOS, Android |
| Commodore VIC-20 | VICE | PC, iOS, Android |
| DOS | DOSBox DOSBox-Pure DOSBox-SVN | PC, iOS, Android |
| Electronika BK-0010/BK-0011 | M | PC |
| Fairchild Channel F | FreeChaF | PC, iOS, Android |
| Handheld electronic game | GW | PC, iOS, Android |
| Intellivision | FreeIntv | PC, iOS, Android |
| Mac II | minivmac | PC |
| Mega Duck | SameDuck | PC |
| MSX | fMSX blueMSX | PC, iOS, Android |
| NEC PC Engine / CD | Mednafen | PC, iOS, Android |
| NEC TurboGrafx-16 / SuperGrafx | Mednafen | PC, iOS, Android |
| NEC PC-8000 / PC-8800 | QUASI88 | PC |
| NEC PC-98 | Neko Project II Kai Neko Project II | PC, iOS, Android |
| NEC PC-FX | Mednafen | PC, iOS, Android |
| NEC TurboGrafx-CD | Mednafen | PC |
| Neo Geo Pocket / Color | Mednafen RACE | PC, iOS, Android |
| Nintendo 3DS | Citra Citra 2018 | PC |
| Nintendo 64 | Mupen64Plus Mupen64Plus-Next ParaLLEl N64 | PC, iOS, Android |
| Nintendo DS | DeSmuME DeSmuME 2015 melonDS | PC, iOS, Android |
| Nintendo Entertainment System | higan Emux FCEUmm Nestopia UE QuickNES Mesen | PC, iOS, Android |
| Nintendo Famicom Disk System | FCEUmm Mesen Nestopia higan QuickNES | PC, iOS, Android |
| Nintendo Game Boy / Color | Emux Gambatte SameBoy TGB Dual higan Mesen-S | PC, iOS, Android |
| Nintendo Game Boy Advance | Mednafen gpSP Meteor mGBA VisualBoyAdvance | PC, iOS, Android |
| Nintendo GameCube | Dolphin | PC,Andriod |
| Nintendo Wii | Dolphin | PC, Andriod |
| Nintendo Pokémon Mini | PokeMini | PC, iOS, Android |
| Odyssey² | O2EM | PC |
| Palm OS | Mu | PC, iOS, Android |
| Philips CD-i | SAME CDi Cdi 2015 | PC |
| PlayStation | Mednafen PCSX ReARMed DuckStation SwanStation | PC, iOS, Android |
| PlayStation 2 | Play! PCSX2 | PC |
| PlayStation Portable | PPSSPP | PC, iOS, Android |
| Super Nintendo Entertainment System | higan Mednafen bsnes Snes9x Mesen-S | PC, iOS, Android |
| Sega 32X | PicoDrive | PC, iOS, Android |
| Sega Dreamcast | Redream Flycast | PC |
| Sega Game Gear | Genesis Plus GX PicoDrive SMS Plus GX Gearsystem | PC, iOS, Android |
| Sega Master System | PicoDrive Genesis Plus GX SMS Plus GX Gearsystem | PC, iOS, Android |
| Sega Genesis/Mega Drive | Genesis Plus GX BlastEm PicoDrive | PC, iOS, Android |
| Sega CD/Mega CD | Genesis Plus GX PicoDrive | PC, iOS, Android |
| Sega Saturn | uoYabause Mednafen YabaSanshiro Kronos | PC, iOS, Android |
| Sega ST-V | Kronos | PC |
| Sega VMU | VeMUlator | PC |
| SG-1000 | blueMSX Gearsystem | PC, iOS, Android |
| Sharp X1 | X Millennium | PC |
| Spectravideo | blueMSX | PC, iOS, Android |
| Super Cassette Vision | Libretro-EmuSCV | PC |
| Thomson computers | Theodore | PC, iOS, Android |
| Uzebox | Uzem | PC |
| Vectrex | Vecx | PC, iOS, Android |
| Virtual Boy | Mednafen | PC, iOS, Android |
| Watara Supervision | Potator | PC, iOS, Android |
| WonderSwan | Mednafen, Beetle Cygne | PC, iOS, Android |
| X68000 | PX68k | PC, iOS, Android |
| ZX81 | EightyOne | PC |
| ZX Spectrum | Fuse | PC, iOS, Android |