Difference between revisions of "RetroArch"
(Created page with "= About = RetroArch is a front end for various emulators ported over to the libRetro library. Each core is a specific emulator, for a specific set of hardware. While not...") |
|||
Line 1: | Line 1: | ||
− | + | {{Note| Imported from Wikipedia. Doing cleanup as we don't utilize some of their extensions..yet.}} | |
− | RetroArch is | + | {{Infobox software |
+ | | name = RetroArch | ||
+ | | logo = retroarch-plain-logo.xcf | ||
+ | | developer = The Libretro Team | ||
+ | | released = {{start date and age|2010|05|26}} | ||
+ | | latest release version = 1.7.5 | ||
+ | | latest release date = {{Start date and age|2018|10|02}} | ||
+ | | repo = {{URL|https://github.com/libretro/RetroArch}} | ||
+ | | programming_language = [[C (programming language)|C]], [[C++]] | ||
+ | | operating system = [[GNU/Linux]], [[Android (operating system)|Android]], [[iOS]], [[FreeBSD]], [[macOS]], [[Nintendo Switch]], [[Windows NT 3.51]] and later | ||
+ | | platform = [[IA-32|IA-32 (x86)]], [[x86-64|x86-64 (x64)]], [[ARMv7]], [[AArch64]], [[PowerPC]], [[MIPS architecture|MIPS]], [[Cell (microprocessor)|Cell]] | ||
+ | | language = [[English language|English]], [[Chinese language|Chinese]], [[German language|German]], [[French language|French]], [[Italian language|Italian]], [[Japanese language|Japanese]], [[Korean language|Korean]], [[Dutch language|Dutch]], [[Polish language|Polish]], [[Portuguese language|Portuguese]], [[Russian language|Russian]], [[Vietnamese language|Vietnamese]] | ||
+ | | genre = [[Video game console emulator]] | ||
+ | | license = [[GNU General Public License|GPLv3]] | ||
+ | | website = {{URL | http://www.retroarch.com/}} | ||
+ | }} | ||
+ | '''RetroArch''' is the reference implementation of the [[libretro]] [[Application programming interface|API]].<ref>{{cite web|url=https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h|title=libretro/RetroArch|website=GitHub}}</ref><ref>{{cite web|url=https://github.com/libretro/libretro-samples|title=libretro/libretro-samples|website=GitHub}}</ref> It is free, [[open-source software|open-source]], [[cross-platform]] software, licensed under the [[GNU GPLv3]]. | ||
− | == | + | It is described as a [[Front-end (computing)|front-end]] for [[emulator]]s, [[game engine]]s, [[video game]]s, [[Digital media player|media players]] and other applications, designed to be fast, lightweight, portable and without dependencies.<ref>{{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}}</ref> |
− | + | ||
+ | RetroArch runs programs converted into dynamic libraries called libretro cores, using several [[user interface]]s such as command-line interface, a few [[graphical user interface]]s (GUI) optimized for [[gamepad]]s (the most famous one being called XMB, a clone of Sony's [[XrossMediaBar|XMB]]), several input, audio and video drivers, plus other sophisticated features like dynamic rate control, audio filters, multi-pass [[shader]]s, [[netplay]], gameplay rewinding, cheats etc. | ||
+ | |||
+ | RetroArch has been ported to many platforms.<ref>{{Cite web|url=http://www.retroarch.com/index.php?page=platforms|title=RetroArch|website=www.retroarch.com|language=en|access-date=2017-08-02}}</ref><ref>{{Cite web|url=http://www.lakka.tv/doc/Hardware-support/|title=Lakka documentation - Hardware support|website=www.lakka.tv|language=en|access-date=2017-08-02}}</ref> It can run on several PC operating systems ([[Microsoft Windows|Windows]], [[OS X]], [[GNU/Linux]]), home consoles ([[PlayStation 3]], [[Xbox 360]], [[Wii U]], etc.), handheld consoles ([[PlayStation Vita]],<ref>{{Cite web|url=http://wololo.net/2015/09/20/the-retroarch-ps-vita-port-we-wont-talk-about/|title=The retroarch PS Vita port we won't talk about|date=2015-09-20|website=Wololo.net|access-date=2017-08-02}}</ref> [[New Nintendo 3DS|Nintendo 3DS]], etc.), on smartphones ([[Android (operating system)|Android]], [[iOS]],<ref>{{Cite news|url=http://www.redmondpie.com/download-retroarch-emulator-ipa-on-ios-10-no-jailbreak-required/|title=Download RetroArch Emulator IPA On iOS 10 [No Jailbreak Required]|work=Redmond Pie|date=2017-07-17|access-date=2017-08-05|language=en-US}}</ref> etc.), embedded systems ([[Raspberry Pi]], [[ODROID]], etc.) and even on web browsers<ref>{{Cite web|url=https://buildbot.libretro.com/web/|title=RetroArch Web Player|website=buildbot.libretro.com|language=en|access-date=2017-08-02}}</ref> by using the [[Emscripten]] compiler. | ||
+ | |||
+ | == History == | ||
+ | Formerly known as SSNES, initially based on pseudonymous programmer [[higan (emulator)|byuu]]'s ''libretro'' predecessor ''libsnes'',<ref>{{Cite web|url=https://github.com/libretro/snes9x2010/wiki/Libsnes|title=Libsnes - libretro/snes9x2010 Wiki|publisher=GitHub}}</ref> it began its development in 2010 with Hans-Kristian "themaister" Arntzen committing the first change on [[GitHub]].<ref>{{Cite web|url=https://github.com/libretro/RetroArch/commit/eed8e2bed2d0d7dfe51834d6c27714472017cb6e|title=SSNES · libretro/RetroArch@eed8e2b|website=GitHub|language=en|access-date=2017-08-02}}</ref> It was intended as a replacement to [[Higan (emulator)|bsnes]]'s [[Qt (software)|Qt]]-based interface<ref>{{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}}</ref> but it grew to support more emulation "cores". On April 21, 2012, SSNES was officially renamed<ref>{{Cite web|url=https://github.com/libretro/RetroArch/commit/9ab51ad23ad0b9c4a2b93b86c69b25aa0c66d9e2|title=SSNES · libretro/RetroArch@9ab51ad2|website=GitHub|language=en|access-date=2017-08-16}}</ref> 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 7 distinct platforms.<ref>{{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|language=en-US|access-date=2017-08-02}}</ref> | ||
+ | |||
+ | On February 16, 2016, RetroArch became one of the first ever applications to implement support for the [[Vulkan (API)|Vulkan]] graphics API, having done so on the same day of the API's official release day.<ref>{{Cite web|url=https://www.libretro.com/index.php/day-1-vulkan-support/|title=Day 1 Vulkan support – Libretro|website=www.libretro.com|language=en-US|access-date=2017-08-02}}</ref> | ||
+ | |||
+ | On November 27, 2016, the Libretro Team announced that, alongside [http://www.lakka.tv Lakka] ([[OpenELEC|LibreELEC]]-based RetroArch [[operating system]]), RetroArch would be on the [[Patreon]] crowdfunding platform to allow providing bounties for developers who fix specific [[software bug]]s and to cover the costs for [[Matchmaking (video games)|matchmaking]] servers.<ref>{{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|language=en-US|access-date=2017-08-02}}</ref> | ||
+ | |||
+ | On 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.<ref>{{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}}</ref><ref>{{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}}</ref> | ||
+ | |||
+ | In April 2018 Input Lag Compensation was added.<ref name=":3">{{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|publisher=}}</ref> | ||
+ | |||
+ | == Features == | ||
+ | Its major features include: | ||
+ | * Advanced GPU [[shader]] support - A multi-pass post-processing shader [[Pipeline (computing)|pipeline]] allows efficient use of [[image scaling]] algorithms, emulation of complex [[CRT display|CRT]], [[NTSC]] video artifacts and other effects; | ||
+ | * [https://github.com/libretro/libretro.github.com/raw/master/documents/ratecontrol.pdf 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-configuration needed from the user after plugging a gamepad in; | ||
+ | * [[Peer-to-peer]] [[netplay]] that uses a [[rollback]] technique similar to [[GGPO]];<ref>{{Cite web|url=http://retroarch.com/index.php?page=netplay|title=RetroArch|website=retroarch.com|language=en|access-date=2017-08-02}}</ref> | ||
+ | * Audio [[Digital signal processor|DSP]] plugins like an [[Equalization (audio)|equalizer]], reverb and other effects; | ||
+ | * Advanced savestate features - Automatic savestate loading, disabling SRAM overwritting, etc.; | ||
+ | * Frame-by-frame gameplay rewinding at the press of a button; | ||
+ | * Button overlays for [[touchscreen]] devices like smartphones; | ||
+ | * [[Thumbnail]]s of game [[Video game packaging|boxarts]]; | ||
+ | * Low input and audio lag options; | ||
+ | * Automatically build categorized playlists by scanning directories for games/ROMs; | ||
+ | * Multiple interfaces including: [[Command-line interface|CLI]], XMB (optimized for [[gamepad]]s), GLUI/MaterialUI (optimized for touch devices) and RGUI (available everywhere); | ||
+ | * [[ROM image|Game ROM]] scanner - Automatically constructs [[playlist]]s by comparing the [[Hash function|hashsums]] of a [[Directory (computing)|directory]]'s files against databases of hashsums of known good game copies.<ref>{{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}}</ref> | ||
+ | * Libretro [[database]] of cores, games, cheats, etc.<ref>{{cite web|url=https://github.com/libretro/libretro-database|title=libretro/libretro-database|website=GitHub}}</ref> | ||
+ | * [[OpenGL]] and [[Vulkan API]] support. | ||
+ | |||
+ | == 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: | ||
+ | {| class="wikitable" | ||
+ | !System | ||
+ | !Based on | ||
+ | |- | ||
+ | |[[3DO Interactive Multiplayer|3DO]] | ||
+ | |4DO | ||
+ | |- | ||
+ | |[[Arcade game|Arcade]] | ||
+ | |[[MAME]] | ||
+ | |||
+ | [[MESS]] | ||
+ | |||
+ | FinalBurnAlpha | ||
+ | |- | ||
+ | |[[Atari 2600]] | ||
+ | |[[Stella (emulator)|Stella]] | ||
+ | |- | ||
+ | |[[Atari 5200]] | ||
+ | |Atari800 | ||
+ | |- | ||
+ | |[[Atari 7800]] | ||
+ | |ProSystem | ||
+ | |- | ||
+ | |[[Atari Jaguar]] | ||
+ | |Virtual Jaguar | ||
+ | |- | ||
+ | |[[Atari Lynx]] | ||
+ | |[[Mednafen]] | ||
+ | |||
+ | Handy | ||
+ | |- | ||
+ | |[[Atari Falcon]] | ||
+ | |Hatari | ||
+ | |- | ||
+ | |[[Bomberman]] | ||
+ | |Mr. Boom | ||
+ | |- | ||
+ | |[[Cave Story]] | ||
+ | |NXEngine | ||
+ | |- | ||
+ | |[[CHIP-8]] | ||
+ | |Emux | ||
+ | |- | ||
+ | |[[ColecoVision]] | ||
+ | |blueMSX | ||
+ | |- | ||
+ | |[[Commodore 64]] | ||
+ | |VICE | ||
+ | |- | ||
+ | |[[Doom (1993 video game)|Doom]] | ||
+ | |PrBoom | ||
+ | |- | ||
+ | |[[Dreamcast]] | ||
+ | |Redream | ||
+ | |||
+ | Reicast | ||
+ | |- | ||
+ | |[[Famicom Disk System]] | ||
+ | |[[Nestopia]] | ||
+ | |||
+ | [[Higan (emulator)|higan]] | ||
+ | |- | ||
+ | |[[FFmpeg]] | ||
+ | |FFmpeg | ||
+ | |- | ||
+ | |[[Game Boy]] / [[Game Boy Color|Color]] | ||
+ | |Emux | ||
+ | |||
+ | Gambatte | ||
+ | |||
+ | SameBoy | ||
+ | |||
+ | TGB Dual | ||
+ | |||
+ | [[Higan (emulator)|higan]] | ||
+ | |- | ||
+ | |[[Game Boy Advance]] | ||
+ | |[[Mednafen]] | ||
+ | |||
+ | gpSP | ||
+ | |||
+ | Meteor | ||
+ | |||
+ | mGBA | ||
+ | |||
+ | [[VisualBoyAdvance]] | ||
+ | |- | ||
+ | |[[GameCube]] | ||
+ | |[[Dolphin (emulator)|Dolphin]] | ||
+ | |- | ||
+ | |[[Game Gear]] | ||
+ | |[[Genesis Plus|Genesis Plus GX]] | ||
+ | |- | ||
+ | |[[MSX]] | ||
+ | |fMSX | ||
+ | |||
+ | blueMSX | ||
+ | |- | ||
+ | |[[NeoGeo Pocket|Neo Geo Pocket]] / [[Neo Geo Pocket Color|Color]] | ||
+ | |Mednafen | ||
+ | |- | ||
+ | |[[NEC PC-98]] | ||
+ | |Neko Project II | ||
+ | |- | ||
+ | |[[Nintendo 64]] | ||
+ | |[[Mupen64Plus]] | ||
+ | |- | ||
+ | |[[Nintendo Entertainment System]] | ||
+ | |[[Higan (emulator)|higan]] | ||
+ | |||
+ | [[FCEUX|Emux]] | ||
+ | |||
+ | FCEUmm | ||
+ | |||
+ | [[Nestopia]] UE | ||
+ | |||
+ | QuickNES | ||
+ | |- | ||
+ | |[[Nintendo DS]] | ||
+ | |DeSmuME | ||
+ | |- | ||
+ | |[[Nintendo 3DS]] | ||
+ | |[[Citra (emulator)|Citra]] | ||
+ | |- | ||
+ | |[[Odyssey²]] | ||
+ | |[[O2EM]] | ||
+ | |- | ||
+ | |[[PC-FX]] | ||
+ | |[[Mednafen]] | ||
+ | |- | ||
+ | |[[32X]] | ||
+ | |Picodrive | ||
+ | |- | ||
+ | |[[Sega CD|Mega CD/Sega CD]] | ||
+ | |[[Genesis Plus|Genesis Plus GX]] | ||
+ | |- | ||
+ | |[[Sega Genesis|Mega Drive/Genesis]] | ||
+ | |[[Genesis Plus|Genesis Plus GX]] | ||
+ | |- | ||
+ | |[[Master System]] | ||
+ | |PicoDrive | ||
+ | |||
+ | [[Genesis Plus|Genesis Plus GX]] | ||
+ | |- | ||
+ | |[[PlayStation Portable]] | ||
+ | |[[PPSSPP]] | ||
+ | |- | ||
+ | |[[PlayStation (console)|PlayStation]] | ||
+ | |[[Mednafen]] | ||
+ | |||
+ | PCSX ReARMed | ||
+ | |- | ||
+ | |[[Pokémon Mini]] | ||
+ | |PokeMini | ||
+ | |- | ||
+ | |[[Quake (video game)|Quake 1]] | ||
+ | |TyrQuake | ||
+ | |- | ||
+ | |[[Sega Saturn]] | ||
+ | |uoYabause | ||
+ | [[Mednafen]] | ||
+ | |- | ||
+ | |[[Super Nintendo Entertainment System|Super NES]] | ||
+ | |[[Bsnes]] | ||
+ | |||
+ | [[Higan (emulator)|higan]] | ||
+ | |||
+ | [[Snes9x]] | ||
+ | |- | ||
+ | |[[Tomb Raider (1996 video game)|Tomb Raider]] | ||
+ | |OpenLara | ||
+ | |- | ||
+ | |[[TurboGrafx-16]] / [[SuperGrafx]] | ||
+ | |[[Mednafen]] | ||
+ | |- | ||
+ | |[[TurboGrafx-CD]] | ||
+ | |[[Mednafen]] | ||
+ | |- | ||
+ | |[[Vectrex]] | ||
+ | |VecXGL | ||
+ | |- | ||
+ | |[[Virtual Boy]] | ||
+ | |[[Mednafen]] | ||
+ | |- | ||
+ | |[[WonderSwan]] | ||
+ | |[[Mednafen]] | ||
+ | |- | ||
+ | |[[ZX Spectrum]] | ||
+ | |Fuse | ||
+ | |- | ||
+ | |[[ZX81]] | ||
+ | |EightyOne | ||
+ | |} |
Revision as of 21:05, 5 January 2019
Note: | Imported from Wikipedia. Doing cleanup as we don't utilize some of their extensions..yet. |
Developer(s) | The Libretro Team |
---|---|
Initial release | 26, 2010 |
Stable release |
1.7.5
/ 2, 2018 |
Repository |
github |
Written in | C, C++ |
Operating system | GNU/Linux, Android, iOS, FreeBSD, macOS, Nintendo Switch, Windows NT 3.51 and later |
Platform | IA-32 (x86), x86-64 (x64), ARMv7, AArch64, PowerPC, MIPS, Cell |
Available in | English, Chinese, German, French, Italian, Japanese, Korean, Dutch, Polish, Portuguese, Russian, Vietnamese |
Type | Video game console emulator |
License | GPLv3 |
Website |
www |
RetroArch is the reference implementation of the libretro API.<ref>"libretro/RetroArch". GitHub.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref><ref>"libretro/libretro-samples". GitHub.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> It is free, open-source, cross-platform software, licensed under the GNU GPLv3.
It is described as a front-end for emulators, game engines, video games, media players and other applications, designed to be fast, lightweight, portable and without dependencies.<ref>"Home – Libretro". www.libretro.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
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.<ref>"RetroArch". www.retroarch.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref><ref>"Lakka documentation - Hardware support". www.lakka.tv (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> It can run on several PC operating systems (Windows, OS X, GNU/Linux), home consoles (PlayStation 3, Xbox 360, Wii U, etc.), handheld consoles (PlayStation Vita,<ref>"The retroarch PS Vita port we won't talk about". Wololo.net. 2015-09-20. Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> Nintendo 3DS, etc.), on smartphones (Android, iOS,<ref>"Download RetroArch Emulator IPA On iOS 10 [No Jailbreak Required]". Redmond Pie (in English). 2017-07-17. Retrieved 2017-08-05.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> etc.), embedded systems (Raspberry Pi, ODROID, etc.) and even on web browsers<ref>"RetroArch Web Player". buildbot.libretro.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> by using the Emscripten compiler.
History
Formerly known as SSNES, initially based on pseudonymous programmer byuu's libretro predecessor libsnes,<ref>"Libsnes - libretro/snes9x2010 Wiki". GitHub.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> it began its development in 2010 with Hans-Kristian "themaister" Arntzen committing the first change on GitHub.<ref>"SSNES · libretro/RetroArch@eed8e2b". GitHub (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> It was intended as a replacement to bsnes's Qt-based interface<ref>"SSNES - The SNES emulator that sucks less. / Community Contributions / Arch Linux Forums". bbs.archlinux.org (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> but it grew to support more emulation "cores". On April 21, 2012, SSNES was officially renamed<ref>"SSNES · libretro/RetroArch@9ab51ad2". GitHub (in English). Retrieved 2017-08-16.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref> 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 7 distinct platforms.<ref>"RetroArch v1.0.0.0 release information – Libretro". www.libretro.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
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.<ref>"Day 1 Vulkan support – Libretro". www.libretro.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
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.<ref>"We are now on Patreon! – Libretro". www.libretro.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
On 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.<ref>Matulef, Jeffrey (2017-06-21). "Sega releases classic games on mobile, for free, but at what cost?". Eurogamer (in English). Retrieved 2017-08-03.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref><ref>Robinson, Martin (2017-06-26). "Sega defends Sega Forever launch after fan outcry". Eurogamer (in English). Retrieved 2017-08-03.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
In April 2018 Input Lag Compensation was added.<ref name=":3">"Better than reality: New emulation tech lags less than original consoles".<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
Features
Its major features include:
- Advanced GPU shader support - A multi-pass post-processing shader pipeline allows efficient use 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-configuration needed from the user after plugging a gamepad in;
- Peer-to-peer netplay that uses a rollback technique similar to GGPO;<ref>"RetroArch". retroarch.com (in English). Retrieved 2017-08-02.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
- Audio DSP plugins like an equalizer, reverb and other effects;
- Advanced savestate features - Automatic savestate loading, disabling SRAM overwritting, etc.;
- Frame-by-frame gameplay rewinding at the press of a button;
- Button overlays for touchscreen devices like smartphones;
- Thumbnails of game boxarts;
- 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) and RGUI (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.<ref>"ROMs, Playlists, and Thumbnails - Libretro Docs". docs.libretro.com.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
- Libretro database of cores, games, cheats, etc.<ref>"libretro/libretro-database". GitHub.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles></ref>
- OpenGL and Vulkan API support.
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: