Difference between revisions of "RetroArch"

From Mod My Classic Wiki
Jump to: navigation, search
(Supported systems)
 
(9 intermediate revisions by the same user not shown)
Line 17: Line 17:
 
| website = {{URL | http://www.retroarch.com/}}
 
| 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]].
+
'''RetroArch''' is the reference implementation of the [[libretro]] [[Application programming interface|API]]. 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>
+
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.
  
 
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 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.
+
RetroArch has been ported to many platforms. 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]], [[New Nintendo 3DS|Nintendo 3DS]], etc.), on smartphones ([[Android (operating system)|Android]], [[iOS]], etc.), embedded systems ([[Raspberry Pi]], [[ODROID]], etc.) and even on web browsers by using the [[Emscripten]] compiler.
  
 
== History ==
 
== 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.
+
Formerly known as SSNES, initially based on pseudonymous programmer [[higan (emulator)|byuu]]'s ''libretro'' 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 [[Higan (emulator)|bsnes]]'s [[Qt (software)|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 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>
+
RetroArch's version 1.0.0.0 was released on January 11, 2014 and at the time was available on 7 distinct platforms.
  
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 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.
  
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 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.
  
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>
+
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.
  
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>
+
In April 2018 Input Lag Compensation was added.
  
 
== Features ==
 
== Features ==
Line 45: Line 45:
 
* Gamepad [[abstraction layer]] called Retropad;
 
* Gamepad [[abstraction layer]] called Retropad;
 
* [[Gamepad]] auto-configuration - Zero-configuration needed from the user after plugging a gamepad in;
 
* [[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>
+
* [[Peer-to-peer]] [[netplay]] that uses a [[rollback]] technique similar to [[GGPO]];
 
* Audio [[Digital signal processor|DSP]] plugins like an [[Equalization (audio)|equalizer]], reverb and other effects;
 
* 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.;
 
* Advanced savestate features - Automatic savestate loading, disabling SRAM overwritting, etc.;
Line 54: Line 54:
 
* Automatically build categorized playlists by scanning directories for games/ROMs;
 
* 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);
 
* 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>
+
* [[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.
* Libretro [[database]] of cores, games, cheats, etc.<ref>{{cite web|url=https://github.com/libretro/libretro-database|title=libretro/libretro-database|website=GitHub}}</ref>
+
* Libretro [[database]] of cores, games, cheats, etc.
 
* [[OpenGL]] and [[Vulkan API]] support.
 
* [[OpenGL]] and [[Vulkan API]] support.
  
Line 114: Line 114:
 
|PrBoom
 
|PrBoom
 
|-
 
|-
|[[Dreamcast]]
+
|[[Sega Dreamcast|Dreamcast]]
 
|Redream
 
|Redream
  
Line 127: Line 127:
 
|FFmpeg
 
|FFmpeg
 
|-
 
|-
|[[Game Boy]] / [[Game Boy Color|Color]]
+
|[[Gameboy|Game Boy]] / [[Gameboy Color|Color]]
 
|Emux
 
|Emux
  
Line 138: Line 138:
 
[[Higan (emulator)|higan]]
 
[[Higan (emulator)|higan]]
 
|-
 
|-
|[[Game Boy Advance]]
+
|[[Gameboy Advance|Game Boy Advance]]
 
|[[Mednafen]]
 
|[[Mednafen]]
  
Line 149: Line 149:
 
[[VisualBoyAdvance]]
 
[[VisualBoyAdvance]]
 
|-
 
|-
|[[GameCube]]
+
|[[Gamecube|GameCube]]
 
|[[Dolphin (emulator)|Dolphin]]
 
|[[Dolphin (emulator)|Dolphin]]
 
|-
 
|-
|[[Game Gear]]
+
|[[Sega Gamegear|Game Gear]]
 
|[[Genesis Plus|Genesis Plus GX]]
 
|[[Genesis Plus|Genesis Plus GX]]
 
|-
 
|-
Line 192: Line 192:
 
|[[Mednafen]]
 
|[[Mednafen]]
 
|-
 
|-
|[[32X]]
+
|[[Sega Genesis#Sega 32X|32X]]
 
|Picodrive
 
|Picodrive
 
|-
 
|-
|[[Sega CD|Mega CD/Sega CD]]
+
|[[Sega Genesis#Sega CD|Mega CD/Sega CD]]
 
|[[Genesis Plus|Genesis Plus GX]]
 
|[[Genesis Plus|Genesis Plus GX]]
 
|-
 
|-
Line 201: Line 201:
 
|[[Genesis Plus|Genesis Plus GX]]
 
|[[Genesis Plus|Genesis Plus GX]]
 
|-
 
|-
|[[Master System]]
+
|[[Sega Master System|Master System]]
 
|PicoDrive
 
|PicoDrive
  
Line 209: Line 209:
 
|[[PPSSPP]]
 
|[[PPSSPP]]
 
|-
 
|-
|[[PlayStation (console)|PlayStation]]
+
|[[PlayStation|PlayStation]]
 
|[[Mednafen]]
 
|[[Mednafen]]
  
Line 255: Line 255:
 
|EightyOne
 
|EightyOne
 
|}
 
|}
 +
 +
[[Category:Emulators]]

Latest revision as of 05:37, 16 January 2019

Note Note: Imported from Wikipedia. Doing cleanup as we don't utilize some of their extensions..yet.
RetroArch
Retroarch-plain-logo.xcf
Developer(s) The Libretro Team
Initial release  26, 2010; 13 years ago (2010-05-26)
Stable release
1.7.5 /  2, 2018; 5 years ago (2018-10-02)
Repository github.com/libretro/RetroArch
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.com

RetroArch is the reference implementation of the libretro API. 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.

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. 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, Nintendo 3DS, etc.), on smartphones (Android, iOS, etc.), embedded systems (Raspberry Pi, ODROID, etc.) and even on web browsers by using the Emscripten compiler.

History[edit]

Formerly known as SSNES, initially based on pseudonymous programmer byuu's libretro 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 7 distinct platforms.

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 (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.

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.

In April 2018 Input Lag Compensation was added.

Features[edit]

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;
  • 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.
  • Libretro database of cores, games, cheats, etc.
  • OpenGL and Vulkan API support.

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:

System Based on
3DO 4DO
Arcade MAME

MESS

FinalBurnAlpha

Atari 2600 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 PrBoom
Dreamcast Redream

Reicast

Famicom Disk System Nestopia

higan

FFmpeg FFmpeg
Game Boy / Color Emux

Gambatte

SameBoy

TGB Dual

higan

Game Boy Advance Mednafen

gpSP

Meteor

mGBA

VisualBoyAdvance

GameCube Dolphin
Game Gear Genesis Plus GX
MSX fMSX

blueMSX

Neo Geo Pocket / Color Mednafen
NEC PC-98 Neko Project II
Nintendo 64 Mupen64Plus
Nintendo Entertainment System higan

Emux

FCEUmm

Nestopia UE

QuickNES

Nintendo DS DeSmuME
Nintendo 3DS Citra
Odyssey² O2EM
PC-FX Mednafen
32X Picodrive
Mega CD/Sega CD Genesis Plus GX
Mega Drive/Genesis Genesis Plus GX
Master System PicoDrive

Genesis Plus GX

PlayStation Portable PPSSPP
PlayStation Mednafen

PCSX ReARMed

Pokémon Mini PokeMini
Quake 1 TyrQuake
Sega Saturn uoYabause

Mednafen

Super NES Bsnes

higan

Snes9x

Tomb Raider OpenLara
TurboGrafx-16 / SuperGrafx Mednafen
TurboGrafx-CD Mednafen
Vectrex VecXGL
Virtual Boy Mednafen
WonderSwan Mednafen
ZX Spectrum Fuse
ZX81 EightyOne