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,[2][3] designed to be fast, lightweight, portable and without dependencies.[4] It is licensed under the GNU GPLv3.

RetroArch
Developer(s)Libretro
Initial releaseMay 26, 2010; 14 years ago (2010-05-26)
Stable release
1.19.1[1] Edit this on Wikidata / 4 June 2024; 20 days ago (4 June 2024)
Repositorygithub.com/libretro/RetroArch
Written inC++, C
Operating systemHaiku, Unix-like, Linux, Android, iOS, FreeBSD, macOS, Windows, Xbox Series X and Series S, Xbox One, Xbox, Switch, New Nintendo 3DS, New Nintendo 2DS, GameCube, Wii, Wii U,PlayStation 4, PlayStation 3, PlayStation 2, Vita, PlayStation Portable, PlayStation Classic, tvOS, webOS
PlatformIA-32 (x86), x86-64 (x64), ARMv7, AArch64, PowerPC, MIPS, Cell
Available inEnglish, Mandarin, Spanish, German, French, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Russian, Vietnamese, Turkish, Arabic, Greek, Persian, Hebrew, Asturian
TypeVideo game console emulator
LicenseGNU General Public License, version 3.0
Websitewww.retroarch.com, www.libretro.com

RetroArch runs programs converted into dynamic libraries called libretro cores, using several user interfaces such as command-line interface, a few graphical user interfaces (GUI) optimized for gamepads (the most famous one being called XMB, a clone of Sony's XMB), several input, audio and video drivers, plus other sophisticated features like dynamic rate control, audio filters, multi-pass shaders, netplay, gameplay rewinding, cheats, etc.

RetroArch has been ported to many platforms.[5][6] It can run on several PC operating systems (Windows, macOS, Linux), home consoles (Xbox Series X, Wii U, PlayStation 2 etc.), handheld consoles (PlayStation Vita,[7] Nintendo Switch, etc.), on smartphones (Android, iOS, etc.), single-board computers (Raspberry Pi, ODROID, etc.) and even on web browsers[8] by using the Emscripten compiler. Versions for PlayStation 4 and PlayStation 3 are not out yet, but are available unofficially (as of 1st April 2024.)

History

edit

Formerly known as SSNES, initially based on pseudonymous programmer Near's predecessor libsnes,[9] it began its development in 2010 with Hans-Kristian "themaister" Arntzen committing the first change on GitHub.[10] It was intended as a replacement to bsnes's Qt-based interface[11] but it grew to support more emulation "cores". On April 21, 2012, SSNES was officially renamed[12] 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.[13]

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.[14]

On November 27, 2016, the Libretro Team announced that, alongside Lakka (LibreELEC-based RetroArch operating system), 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.[15]

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.[16][17]

In April 2018, an input lag compensation feature called "Run-Ahead" was added.[18]

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.[19]

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.[20]

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.[21]

On September 14, 2021, RetroArch was released on Steam.[22] Later on May 15, 2024, RetroArch was officially released on iOS through the App Store.[23]

Features

edit

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;[24]
  • 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;[25]
  • 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 (optimized for gamepads), GLUI/MaterialUI (optimized for touch devices), RGUI and Ozone (available everywhere);
  • Game ROM scanner – Automatically constructs playlists by comparing the hashsums of a directory's files against databases of hashsums of known good game copies;[26]
  • Libretro database of cores, games, cheats, etc.;[27]
  • 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;[28]
  • AI service – Uses machine translation external services to translate game text on screen.[29]

Supported systems

edit

RetroArch can run any libretro core. While RetroArch is available for many platforms, the availability of a specific core varies per platform.

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 emulator
3DO4DO
Amstrad CPCCaprice32
CrocoDS
ArcadeMAME
MESS
FinalBurn Neo
FinalBurn Alpha
Atari 2600Stella
Atari 5200a5200
Atari800
Atari 7800ProSystem
Atari FalconHatari
Atari JaguarVirtual Jaguar
Atari LynxMednafen
Handy
Atari STHatari
WonderSwanMednafen
ColecoVisionblueMSX
Gearcoleco
Commodore 64VICE
Frodo
Commodore 128VICE
AmigaPUAE
UAE4ARM
Commodore CBM-IIVICE
Commodore PETVICE
Commodore Plus/4VICE
VIC-20VICE
MS-DOS and compatible operating systemsDOSBox
DOSBox-Pure
DOSBox-SVN
Electronika BK-0010/BK-0011M
Fairchild Channel FFreeChaF
Vectrexvecx
Handheld electronic gameGW
Mac IIminivmac
Odyssey²O2EM
IntellivisionFreeIntv
Mega DuckSameDuck
MSXfMSX
blueMSX
NEC PC Engine / CDMednafen
NEC TurboGrafx-16 / SuperGrafxMednafen
NEC PC-8000 / PC-8800QUASI88
NEC PC-98Neko Project II Kai
Neko Project II
NEC PC-FXMednafen
NEC TurboGrafx-CDMednafen
Nintendo 3DSCitra
Citra 2018
Nintendo 64Mupen64Plus
Mupen64Plus-Next
ParaLLEl N64
Nintendo DSDeSmuME
DeSmuME 2015
melonDS
Nintendo Entertainment Systemhigan
Emux
FCEUmm
Nestopia UE
QuickNES
Mesen
Famicom Disk SystemFCEUmm
Mesen
Nestopia
higan
QuickNES
Game Boy / ColorEmux
Gambatte
SameBoy
TGB Dual
higan
Mesen-S
Game Boy AdvanceMednafen
gpSP
Meteor
mGBA
VisualBoyAdvance
GameCubeDolphin
Nintendo Pokémon MiniPokeMini
Super Nintendo Entertainment Systemhigan
Mednafen
bsnes
Snes9x
Mesen-S
Virtual BoyMednafen
WiiDolphin
Palm OSMu
Philips CD-iSAME CDi
Cdi 2015
32XPicoDrive
DreamcastRedream
Flycast (formerly Reicast)
Game GearGenesis Plus GX
PicoDrive
SMS Plus GX
Gearsystem
Master SystemPicoDrive
Genesis Plus GX
SMS Plus GX
Gearsystem
Mega CD/Sega CDGenesis Plus GX
PicoDrive
Mega Drive/GenesisGenesis Plus GX
BlastEm
PicoDrive
SaturnuoYabause
Mednafen
YabaSanshiro
Kronos
Sega ST-VKronos
Sega VMUVeMUlator
SG-1000blueMSX
Gearsystem
Sharp X1X Millennium
X68000PX68k
ZX81EightyOne
ZX SpectrumFuse
PlayStationMednafen
PCSX ReARMed
DuckStation
SwanStation
PlayStation 2Play!
PCSX2
PlayStation PortablePPSSPP
Neo Geo Pocket / ColorMednafen
RACE
SpectravideoblueMSX
3DO Interactive MultiplayerOpera
Thomson computersTheodore
UzeboxUzem
VectrexVecXGL
Watara SupervisionPotator

Reception

edit

RetroArch has been praised for the number of systems and games it can play under a single interface.[30][31][32][33]

It has been criticized for how difficult it is to configure, due to the extensive number of options available to the user,[31][30] and at the same time has been praised for the more advanced features it possesses.[34]

On Android, it has been praised for the fact that overlays can be customized, for the expandability of the libretro cores it supports, for its compatibility with several USB and Bluetooth controller peripherals, in addition to the app being free and having no ads.[33][35]

Kyle Orland, writing for Ars Technica, said that RetroArch's 'Run-Ahead' feature is "arguably the biggest improvement to the experience the retro gaming community has yet seen".[18]

See also

edit

References

edit
  1. ^ "Release 1.19.1". 4 June 2024.
  2. ^ "libretro/RetroArch". GitHub. Archived from the original on 2018-10-23. Retrieved 2017-10-01.
  3. ^ "libretro/libretro-samples". GitHub. 12 October 2021. Archived from the original on 12 June 2018. Retrieved 31 October 2017.
  4. ^ "Home – Libretro". www.libretro.com. Archived from the original on 2017-08-03. Retrieved 2017-08-02.
  5. ^ "RetroArch". www.retroarch.com. Archived from the original on 2017-08-03. Retrieved 2017-08-02.
  6. ^ "Lakka documentation - Hardware support". www.lakka.tv. Archived from the original on 2017-08-03. Retrieved 2017-08-02.
  7. ^ "The retroarch PS Vita port we won't talk about". Wololo.net. 2015-09-20. Archived from the original on 2018-08-19. Retrieved 2017-08-02.
  8. ^ "RetroArch Web Player". buildbot.libretro.com. Archived from the original on 2017-11-04. Retrieved 2017-08-02.
  9. ^ "Libsnes - libretro/snes9x2010 Wiki". GitHub. Archived from the original on 2020-10-18. Retrieved 2017-08-06.
  10. ^ "SSNES · libretro/RetroArch@eed8e2b". GitHub. Archived from the original on 2021-12-10. Retrieved 2017-08-02.
  11. ^ "SSNES - The SNES emulator that sucks less. / Community Contributions / Arch Linux Forums". bbs.archlinux.org. Archived from the original on 2014-09-13. Retrieved 2017-08-02.
  12. ^ "SSNES · libretro/RetroArch@9ab51ad2". GitHub. Archived from the original on 2021-12-10. Retrieved 2017-08-16.
  13. ^ "RetroArch v1.0.0.0 release information – Libretro". www.libretro.com. 11 January 2014. Archived from the original on 2014-01-15. Retrieved 2017-08-02.
  14. ^ "Day 1 Vulkan support – Libretro". www.libretro.com. 16 February 2016. Archived from the original on 2016-02-19. Retrieved 2017-08-02.
  15. ^ "We are now on Patreon! – Libretro". www.libretro.com. 27 November 2016. Archived from the original on 2017-08-03. Retrieved 2017-08-02.
  16. ^ Matulef, Jeffrey (2017-06-21). "Sega releases classic games on mobile, for free, but at what cost?". Eurogamer. Archived from the original on 2019-04-23. Retrieved 2017-08-03.
  17. ^ Robinson, Martin (2017-06-26). "Sega defends Sega Forever launch after fan outcry". Eurogamer. Archived from the original on 2017-06-26. Retrieved 2017-08-03.
  18. ^ a b "Better than reality: New emulation tech lags less than original consoles". 19 April 2018. Archived from the original on 19 April 2018. Retrieved 4 May 2018.
  19. ^ Machkovech, Sam (July 13, 2019). "RetroArch will be Steam's biggest emulation launch yet, coming July 30". Ars Technica. Archived from the original on July 13, 2019. Retrieved July 13, 2019.
  20. ^ De Matteis, Daniel (August 16, 2020). "Hacker vandalised our buildbot and Github organization". libretro.com. Archived from the original on August 16, 2020. Retrieved August 20, 2020.
  21. ^ Campbell, Ian Carlos (2020-11-30). "Enterprising developers are emulating PS2 games on the Xbox Series S and X". The Verge. Archived from the original on 2020-11-30. Retrieved 2020-12-11.
  22. ^ "RetroArch on Steam". Archived from the original on 2019-07-13. Retrieved 2021-09-14.
  23. ^ Davis, Wes (May 15, 2024). "RetroArch brings its free multisystem emulation to the iOS App Store". The Verge. Retrieved May 15, 2024.
  24. ^ https://github.com/libretro/libretro.github.com/raw/master/documents/ratecontrol.pdf
  25. ^ "RetroArch". retroarch.com. Archived from the original on 2017-06-06. Retrieved 2017-08-02.
  26. ^ "ROMs, Playlists, and Thumbnails - Libretro Docs". docs.libretro.com. Archived from the original on 2017-12-26. Retrieved 2017-12-26.
  27. ^ "libretro/libretro-database". GitHub. 19 October 2021. Archived from the original on 10 June 2018. Retrieved 31 October 2017.
  28. ^ "RetroAchievements.org". RetroAchievements. Archived from the original on 2012-11-21. Retrieved 2019-12-10.
  29. ^ Matteis, Daniel De. "RetroArch 1.7.8 – AI Service – How To Set It Up – Libretro". Archived from the original on 2019-08-25. Retrieved 2021-04-28.
  30. ^ a b "How to Set Up RetroArch, The Ultimate All-In-One Retro Games Emulator". Archived from the original on 2017-08-03. Retrieved 2017-08-03.
  31. ^ a b Klosowski, Thorin. "How to Set Up an All-In-One Retro Game Emulator with RetroArch". Lifehacker. Archived from the original on 2017-08-03. Retrieved 2017-08-03.
  32. ^ "The NES Classic is sold out, but these emulators do the same thing for free". Digital Trends. 2017-03-31. Archived from the original on 2017-08-03. Retrieved 2017-08-03.
  33. ^ a b Dachis, Adam. "RetroArch Emulates Nearly Every Classic Gaming Console on Android". Lifehacker. Archived from the original on 2017-12-26. Retrieved 2017-12-26.
  34. ^ "Eight Advanced RetroArch Features that Make Retro Gaming Great Again". Archived from the original on 2017-08-03. Retrieved 2017-08-03.
  35. ^ "RetroArch Emulates NES, PlayStation, Gameboy Color/Advance and a Whole Lot More [Android]". MakeUseOf. Archived from the original on 2017-12-26. Retrieved 2017-12-26.
edit