RetroArch
{{short description|Emulator and media player frontend}}
{{Multiple issues|
{{Excessive examples|date=September 2022}}
{{Primary sources|date=September 2022}}
}}
{{Infobox software
| name = RetroArch
| logo = RetroArch logo.png
| screenshot = File:Retroarch Netplay-lobby.png
| developer = Libretro
| released = {{start date and age|2010|05|26}}
| latest release version = {{wikidata|property|preferred|references|edit|Q39052330|P348|P548=Q2804309}}
| latest release date = {{start date and age|{{wikidata|qualifier|preferred|single|Q39052330|P348|P548=Q2804309|P577}}}}
| repo = {{URL|https://github.com/libretro/RetroArch}}
| programming_language = {{#statements:P277|from=Q39052330}}
| operating system = Haiku, Unix-like, Linux, Android, iOS, iPadOS, 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, AmigaOS, visionOS
| platform = IA-32 (x86), x86-64 (x64), ARMv7, AArch64, PowerPC, MIPS, Cell
| language = English, Mandarin, Spanish, German, French, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Russian, Vietnamese, Turkish, Arabic, Greek, Persian, Hebrew, Asturian
| genre = Video game console emulator
| license = {{#statements:P275|from=Q39052330}}
| website = {{URL | https://www.retroarch.com/}}, {{URL|https://www.libretro.com/}}
}}
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,{{cite web|url=https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h|title=libretro/RetroArch|website=GitHub|access-date=2017-10-01|archive-date=2018-10-23|archive-url=https://web.archive.org/web/20181023090818/https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h|url-status=live}}{{cite web|url=https://github.com/libretro/libretro-samples|title=libretro/libretro-samples|website=GitHub|date=12 October 2021|access-date=31 October 2017|archive-date=12 June 2018|archive-url=https://web.archive.org/web/20180612223244/https://github.com/libretro/libretro-samples|url-status=live}} designed to be fast, lightweight, portable and without dependencies.{{Cite web|url=https://www.libretro.com/index.php/home-2/|title=Home – Libretro|website=www.libretro.com|language=en-US|access-date=2017-08-02|archive-date=2017-08-03|archive-url=https://web.archive.org/web/20170803073558/https://www.libretro.com/index.php/home-2/|url-status=live}} 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.{{Cite web |last=Marín |first=Daniel |title=RetroArch, tutorial: how it works, compatible consoles, games and more |url=https://eloutput.com/en/video-game/guides/retroarch/ |archive-url=https://web.archive.org/web/20230522034754/https://eloutput.com/en/video-game/guides/retroarch/ |archive-date=2023-05-22 |access-date=2024-08-05 |website=El Output |language=en}}{{Cite web |last=Pablinux |date=2023-12-12 |title=RetroArch Web Player, retro console games in the browser |url=https://www.linuxadictos.com/en/retroarch-web-player-retro-console-games-in-the-browser-by-libretro.html |archive-url=https://web.archive.org/web/20240805115757/https://www.linuxadictos.com/en/retroarch-web-player-retro-console-games-in-the-browser-by-libretro.html |archive-date=2024-08-05 |access-date=2024-08-05 |website=Linux Adictos |language=en}} {{As of|2024|Apr|1}}, versions for PlayStation 4 and PlayStation 3 are not out yet, but are available unofficially.{{Cite web |last=Aurora |date=2019-12-28 |title=News: RetroArch FINALLY gets released on PlayStation 4 with 25 cores including PS1, MAME and experimental Nintendo 64 emulators... |url=https://wololo.net/2019/12/28/news-retroarch-finally-gets-released-on-playstation-4-with-25-cores-including-ps1-mame-and-experimental-nintendo-64-emulators-vitagrafix-5-0-0-released-for-the-psvita-with-re-written-parser-an/ |archive-url=https://web.archive.org/web/20191230061256/https://wololo.net/2019/12/28/news-retroarch-finally-gets-released-on-playstation-4-with-25-cores-including-ps1-mame-and-experimental-nintendo-64-emulators-vitagrafix-5-0-0-released-for-the-psvita-with-re-written-parser-an/ |archive-date=2019-12-30 |access-date=2024-08-05 |website=Wololo.net |language=en-US}}
History
Formerly known as SSNES, initially based on pseudonymous programmer Near's predecessor libsnes,{{Cite web|url=https://github.com/libretro/snes9x2010/wiki/Libsnes|title=Libsnes - libretro/snes9x2010 Wiki|publisher=GitHub|access-date=2017-08-06|archive-date=2020-10-18|archive-url=https://web.archive.org/web/20201018142044/https://github.com/libretro/snes9x2010/wiki/Libsnes|url-status=live}} it began its development in 2010 with Hans-Kristian "Themaister" Arntzen committing the first change on GitHub.{{Cite web|url=https://github.com/libretro/RetroArch/commit/eed8e2bed2d0d7dfe51834d6c27714472017cb6e|title=SSNES · libretro/RetroArch@eed8e2b|website=GitHub|language=en|access-date=2017-08-02|archive-date=2021-12-10|archive-url=https://web.archive.org/web/20211210182526/https://github.com/libretro/RetroArch/commit/eed8e2bed2d0d7dfe51834d6c27714472017cb6e|url-status=live}} It was intended as a replacement to bsnes's Qt-based interface{{Cite web|url=https://bbs.archlinux.org/viewtopic.php?id=98044|title=SSNES - The SNES emulator that sucks less. / Community Contributions / Arch Linux Forums|website=bbs.archlinux.org|language=en|access-date=2017-08-02|archive-date=2014-09-13|archive-url=https://web.archive.org/web/20140913081048/https://bbs.archlinux.org/viewtopic.php?id=98044|url-status=live}} but it grew to support more emulation "cores". On April 21, 2012, SSNES was officially renamed{{Cite web|url=https://github.com/libretro/RetroArch/commit/9ab51ad23ad0b9c4a2b93b86c69b25aa0c66d9e2|title=SSNES · libretro/RetroArch@9ab51ad2|website=GitHub|language=en|access-date=2017-08-16|archive-date=2021-12-10|archive-url=https://web.archive.org/web/20211210182441/https://github.com/libretro/RetroArch/commit/9ab51ad23ad0b9c4a2b93b86c69b25aa0c66d9e2|url-status=live}} 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.{{Cite web|url=https://www.libretro.com/index.php/retroarch-v1-0-0-0-release-information/|title=RetroArch v1.0.0.0 release information – Libretro|website=www.libretro.com|date=11 January 2014 |language=en-US|access-date=2017-08-02|archive-date=2014-01-15|archive-url=https://web.archive.org/web/20140115225850/https://www.libretro.com/index.php/retroarch-v1-0-0-0-release-information/|url-status=live}}
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.{{Cite web|url=https://www.libretro.com/index.php/day-1-vulkan-support/|title=Day 1 Vulkan support – Libretro|website=www.libretro.com|date=16 February 2016 |language=en-US|access-date=2017-08-02|archive-date=2016-02-19|archive-url=https://web.archive.org/web/20160219135221/https://www.libretro.com/index.php/day-1-vulkan-support/|url-status=live}}
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.{{Cite web|url=https://www.libretro.com/index.php/we-are-now-on-patreon/|title=We are now on Patreon! – Libretro|website=www.libretro.com|date=27 November 2016 |language=en-US|access-date=2017-08-02|archive-date=2017-08-03|archive-url=https://web.archive.org/web/20170803054349/https://www.libretro.com/index.php/we-are-now-on-patreon/|url-status=live}}
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.{{Cite web|url=http://www.eurogamer.net/articles/2017-06-21-sega-releases-classic-games-on-mobile-for-free-but-at-what-cost|title=Sega releases classic games on mobile, for free, but at what cost?|last=Matulef|first=Jeffrey|date=2017-06-21|website=Eurogamer|language=en-UK|access-date=2017-08-03|archive-date=2019-04-23|archive-url=https://web.archive.org/web/20190423145908/https://www.eurogamer.net/articles/2017-06-21-sega-releases-classic-games-on-mobile-for-free-but-at-what-cost|url-status=live}}{{Cite web|url=http://www.eurogamer.net/articles/2017-06-26-sega-defends-sega-forever-launch-after-fan-outcry|title=Sega defends Sega Forever launch after fan outcry|last=Robinson|first=Martin|date=2017-06-26|website=Eurogamer|language=en-UK|access-date=2017-08-03|archive-date=2017-06-26|archive-url=https://web.archive.org/web/20170626123058/http://www.eurogamer.net/articles/2017-06-26-sega-defends-sega-forever-launch-after-fan-outcry|url-status=live}}
In April 2018, an input lag compensation feature called "Run-Ahead" was added.{{cite web|url=https://arstechnica.com/gaming/2018/04/better-than-reality-new-emulation-tech-lags-less-than-original-consoles/|title=Better than reality: New emulation tech lags less than original consoles|date=19 April 2018|publisher=|access-date=4 May 2018|archive-date=19 April 2018|archive-url=https://web.archive.org/web/20180419163214/https://arstechnica.com/gaming/2018/04/better-than-reality-new-emulation-tech-lags-less-than-original-consoles/|url-status=live}}
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.{{cite web | url = https://arstechnica.com/gaming/2019/07/retroarch-the-worlds-largest-emulation-front-end-coming-to-steam-july-30/ | title = RetroArch will be Steam's biggest emulation launch yet, coming July 30 | first = Sam | last = Machkovech | date = July 13, 2019 | accessdate = July 13, 2019 | work = Ars Technica | archive-date = July 13, 2019 | archive-url = https://web.archive.org/web/20190713134247/https://arstechnica.com/gaming/2019/07/retroarch-the-worlds-largest-emulation-front-end-coming-to-steam-july-30/ | url-status = live }}
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.{{cite web |url=https://www.libretro.com/index.php/hacker-vandalised-our-buildbot-and-github-organization/ |title=Hacker vandalised our buildbot and Github organization |last=De Matteis |first=Daniel |date=August 16, 2020 |website=libretro.com |access-date=August 20, 2020 |archive-date=August 16, 2020 |archive-url=https://web.archive.org/web/20200816100612/https://www.libretro.com/index.php/hacker-vandalised-our-buildbot-and-github-organization/ |url-status=live }}
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.{{Cite web|last=Campbell|first=Ian Carlos|date=2020-11-30|title=Enterprising developers are emulating PS2 games on the Xbox Series S and X|url=https://www.theverge.com/2020/11/30/21734149/ps2-emulation-xbox-series-x-s-retroarch-support|access-date=2020-12-11|website=The Verge|language=en|archive-date=2020-11-30|archive-url=https://web.archive.org/web/20201130230253/https://www.theverge.com/2020/11/30/21734149/ps2-emulation-xbox-series-x-s-retroarch-support|url-status=live}}
On September 14, 2021, RetroArch was released on Steam.{{Cite web|url=https://store.steampowered.com/app/1118310/RetroArch/|title=RetroArch on Steam|access-date=2021-09-14|archive-date=2019-07-13|archive-url=https://web.archive.org/web/20190713134108/https://store.steampowered.com/app/1118310/RetroArch/|url-status=live}}
On May 15, 2024, RetroArch was officially released on iOS, iPadOS, tvOS and visionOS through the App Store.{{cite news |last1=Davis |first1=Wes |title=RetroArch brings its free multisystem emulation to the iOS App Store |url=https://www.theverge.com/2024/5/15/24157472/retroarch-emulator-ios-app-store-iphone-nintendo-sega-playstation-atari |access-date=May 15, 2024 |work=The Verge |date=May 15, 2024 |language=en}}
Features
{{prose|section|date=September 2022}}
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;{{Cite web | url=https://github.com/libretro/libretro.github.com/raw/master/documents/ratecontrol.pdf | title=Dynamic Rate Control for Retro Game Emulators | website=github.com}}
- 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;{{Cite web|url=http://retroarch.com/index.php?page=netplay|title=RetroArch|website=retroarch.com|language=en|access-date=2017-08-02|archive-date=2017-06-06|archive-url=https://web.archive.org/web/20170606124329/http://retroarch.com/index.php?page=netplay|url-status=live}}
- 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;{{cite web|url=https://docs.libretro.com/guides/roms-playlists-thumbnails/#retroarch-playlist-scanner|title=ROMs, Playlists, and Thumbnails - Libretro Docs|website=docs.libretro.com|access-date=2017-12-26|archive-date=2017-12-26|archive-url=https://web.archive.org/web/20171226130317/https://docs.libretro.com/guides/roms-playlists-thumbnails/#retroarch-playlist-scanner|url-status=live}}
- Libretro database of cores, games, cheats, etc.;{{cite web|url=https://github.com/libretro/libretro-database|title=libretro/libretro-database|website=GitHub|date=19 October 2021|access-date=31 October 2017|archive-date=10 June 2018|archive-url=https://web.archive.org/web/20180610235949/https://github.com/libretro/libretro-database|url-status=live}}
- 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;{{cite web|url=https://retroachievements.org/|title=RetroAchievements.org|website=RetroAchievements|access-date=2019-12-10|archive-date=2012-11-21|archive-url=https://web.archive.org/web/20121121150009/https://retroachievements.org/|url-status=live}}
- AI service – Uses machine translation external services to translate game text on screen.{{Cite web|last=Matteis|first=Daniel De|title=RetroArch 1.7.8 – AI Service – How To Set It Up – Libretro|url=https://www.libretro.com/index.php/retroarch-1-7-8-ai-service-how-to-set-it-up/|access-date=2021-04-28|language=en-US|archive-date=2019-08-25|archive-url=https://web.archive.org/web/20190825201808/https://www.libretro.com/index.php/retroarch-1-7-8-ai-service-how-to-set-it-up/|url-status=live}}
Supported systems
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:
Reception
RetroArch has been praised for the number of systems and games it can play under a single interface.{{Cite news|url=https://www.howtogeek.com/260274/how-to-set-up-retroarch-the-ultimate-all-in-one-retro-games-emulator/|title=How to Set Up RetroArch, The Ultimate All-In-One Retro Games Emulator|access-date=2017-08-03|language=en-US|archive-date=2017-08-03|archive-url=https://web.archive.org/web/20170803050058/https://www.howtogeek.com/260274/how-to-set-up-retroarch-the-ultimate-all-in-one-retro-games-emulator/|url-status=live}}{{Cite news|url=http://lifehacker.com/how-to-set-up-an-all-in-one-retro-game-emulator-with-re-1745863517|title=How to Set Up an All-In-One Retro Game Emulator with RetroArch|last=Klosowski|first=Thorin|work=Lifehacker|access-date=2017-08-03|language=en-US|archive-date=2017-08-03|archive-url=https://web.archive.org/web/20170803085626/http://lifehacker.com/how-to-set-up-an-all-in-one-retro-game-emulator-with-re-1745863517|url-status=live}}{{Cite news|url=https://www.digitaltrends.com/gaming/best-emulators/|title=The NES Classic is sold out, but these emulators do the same thing for free|date=2017-03-31|work=Digital Trends|access-date=2017-08-03|language=en-US|archive-date=2017-08-03|archive-url=https://web.archive.org/web/20170803090753/https://www.digitaltrends.com/gaming/best-emulators/|url-status=dead}}{{Cite news|url=https://lifehacker.com/5988944/retroarch-emulates-nearly-every-classic-gaming-console-on-android|title=RetroArch Emulates Nearly Every Classic Gaming Console on Android|last=Dachis|first=Adam|work=Lifehacker|access-date=2017-12-26|language=en-US|archive-date=2017-12-26|archive-url=https://web.archive.org/web/20171226130314/https://lifehacker.com/5988944/retroarch-emulates-nearly-every-classic-gaming-console-on-android|url-status=live}}
It has been criticized for how difficult it is to configure, due to the extensive number of options available to the user, and at the same time has been praised for the more advanced features it possesses.{{Cite news|url=https://www.howtogeek.com/265057/eight-advanced-retroarch-features-that-make-retro-gaming-great-again/|title=Eight Advanced RetroArch Features that Make Retro Gaming Great Again|access-date=2017-08-03|language=en-US|archive-date=2017-08-03|archive-url=https://web.archive.org/web/20170803045958/https://www.howtogeek.com/265057/eight-advanced-retroarch-features-that-make-retro-gaming-great-again/|url-status=live}}
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.{{Cite news|url=https://www.makeuseof.com/tag/retroarch-emulates-nes-playstation-gameboy-coloradvance-and-a-whole-lot-more-android/|title=RetroArch Emulates NES, PlayStation, Gameboy Color/Advance and a Whole Lot More [Android]|work=MakeUseOf|access-date=2017-12-26|language=en-US|archive-date=2017-12-26|archive-url=https://web.archive.org/web/20171226074303/https://www.makeuseof.com/tag/retroarch-emulates-nes-playstation-gameboy-coloradvance-and-a-whole-lot-more-android/|url-status=live}}
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".
See also
{{Portal|Video games|Free and open-source software}}
References
{{reflist}}
{{notelist}}
External links
{{Commons category}}
- {{Official website}}
{{Nintendo emulators}}
Category:Android emulation software
Category:Arcade video game emulators
Category:Free and open-source Android software
Category:Free emulation software
Category:Game Boy Advance emulators
Category:Nintendo DS emulators
Category:Nintendo Entertainment System emulators
Category:PlayStation emulators
Category:Sega Genesis emulators
Category:Sega Master System emulators