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 ;
file:Retroarch screenshot.png|thumbnail|Screenshot of RetroArch running under the Ozone user interface
  • 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

While RetroArch is available for many platforms, the availability of a specific libretro core varies per platform. For example, fewer cores are available for the iOS or Android version, than for the PC.
Below is a non-exhaustive table of which systems are available to RetroArch and what project the core is based on:
SystemComputer system/video game console emulatorPlatform
3DO4DO, OperaPC, iOS, Android
AmigaPUAE
UAE4ARM
PC, iOS, Android
Amstrad CPCCaprice32
CrocoDS
PC, iOS, Android
ArcadeMAME
MESS
FinalBurn Neo
FinalBurn Alpha
PC, iOS, Android
Atari 2600StellaPC, iOS, Android
Atari 5200a5200
Atari800
PC, iOS, Android
Atari 7800ProSystemPC, iOS, Android
Atari 8-bit computersAtari800PC, iOS, Android
Atari Falcon/Atari STHatariPC
Atari JaguarVirtual JaguarPC
Atari LynxMednafen
Handy
PC, iOS, Android
BBC MicroAcornPC, iOS, Android
ColecoVisionblueMSX
Gearcoleco
PC, iOS, Android
Commodore 64VICE
Frodo
PC, iOS, Android
Commodore 128VICEPC, iOS, Android
Commodore CBM-IIVICEPC, iOS, Android
Commodore PETVICEPC, iOS, Android
Commodore Plus/4VICEPC, iOS, Android
Commodore VIC-20VICEPC, iOS, Android
DOSDOSBox
DOSBox-Pure
DOSBox-SVN
PC, iOS, Android
Electronika BK-0010/BK-0011MPC
Fairchild Channel FFreeChaFPC, iOS, Android
Handheld electronic gameGWPC, iOS, Android
IntellivisionFreeIntvPC, iOS, Android
Mac IIminivmacPC
Mega DuckSameDuckPC
MSXfMSX
blueMSX
PC, iOS, Android
NEC PC Engine / CDMednafenPC, iOS, Android
NEC TurboGrafx-16 / SuperGrafxMednafenPC, iOS, Android
NEC PC-8000 / PC-8800QUASI88PC
NEC PC-98Neko Project II Kai
Neko Project II
PC, iOS, Android
NEC PC-FXMednafenPC, iOS, Android
NEC TurboGrafx-CDMednafenPC
Neo Geo Pocket / ColorMednafen
RACE
PC, iOS, Android
Nintendo 3DSCitra
Citra 2018
PC
Nintendo 64Mupen64Plus
Mupen64Plus-Next
ParaLLEl N64
PC, iOS, Android
Nintendo DSDeSmuME
DeSmuME 2015
melonDS
PC, iOS, Android
Nintendo Entertainment Systemhigan
Emux
FCEUmm
Nestopia UE
QuickNES
Mesen
PC, iOS, Android
Nintendo Famicom Disk SystemFCEUmm
Mesen
Nestopia
higan
QuickNES
PC, iOS, Android
Nintendo Game Boy / ColorEmux
Gambatte
SameBoy
TGB Dual
higan
Mesen-S
PC, iOS, Android
Nintendo Game Boy AdvanceMednafen
gpSP
Meteor
mGBA
VisualBoyAdvance
PC, iOS, Android
Nintendo GameCubeDolphinPC,Andriod
Nintendo WiiDolphinPC, Andriod
Nintendo Pokémon MiniPokeMiniPC, iOS, Android
Odyssey²O2EMPC
Palm OSMuPC, iOS, Android
Philips CD-iSAME CDi
Cdi 2015
PC
PlayStationMednafen
PCSX ReARMed
DuckStation
SwanStation
PC, iOS, Android
PlayStation 2Play!
PCSX2
PC
PlayStation PortablePPSSPPPC, iOS, Android
Super Nintendo Entertainment Systemhigan
Mednafen
bsnes
Snes9x
Mesen-S
PC, iOS, Android
Sega 32XPicoDrivePC, iOS, Android
Sega DreamcastRedream
Flycast
PC
Sega Game GearGenesis Plus GX
PicoDrive
SMS Plus GX
Gearsystem
PC, iOS, Android
Sega Master SystemPicoDrive
Genesis Plus GX
SMS Plus GX
Gearsystem
PC, iOS, Android
Sega Genesis/Mega DriveGenesis Plus GX
BlastEm
PicoDrive
PC, iOS, Android
Sega CD/Mega CDGenesis Plus GX
PicoDrive
PC, iOS, Android
Sega SaturnuoYabause
Mednafen
YabaSanshiro
Kronos
PC, iOS, Android
Sega ST-VKronosPC
Sega VMUVeMUlatorPC
SG-1000blueMSX
Gearsystem
PC, iOS, Android
Sharp X1X MillenniumPC
SpectravideoblueMSXPC, iOS, Android
Super Cassette VisionLibretro-EmuSCVPC
Thomson computersTheodorePC, iOS, Android
UzeboxUzemPC
VectrexVecxPC, iOS, Android
Virtual BoyMednafenPC, iOS, Android
Watara SupervisionPotatorPC, iOS, Android
WonderSwanMednafen, Beetle CygnePC, iOS, Android
X68000PX68kPC, iOS, Android
ZX81EightyOnePC
ZX SpectrumFusePC, iOS, Android