RetroArch

From Wikipedia, the free encyclopedia
(Redirected from RetroAchievements)
Jump to navigation Jump to search

RetroArch
DeveloperLibretro
Initial releaseMay 26, 2010; 16 years ago (2010-05-26)
Repositorygithub.com/libretro/RetroArch
Written in{{#statements:P277|from=Q39052330}}
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemHaiku, 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
    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
    License{{#statements:P275|from=Q39052330}}
    Websitewww.retroarch.com, 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,[1][2] designed to be fast, lightweight, portable and without dependencies.[3] 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.[4][5] As of 1 April 2024, versions for PlayStation 4 and PlayStation 3 are not out yet, but are available unofficially.[6]

    History

    [edit | edit source]

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

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

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

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

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

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

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

    On September 14, 2021, RetroArch was released on Steam.[20]

    On May 15, 2024, RetroArch has returned after three years officially on iOS, iPadOS, tvOS and visionOS through the App Store.[21]

    Features

    [edit | edit source]

    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;[22]
    • 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;[23]
    • 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;[24]
    • Libretro database of cores, games, cheats, etc.;[25]
    • 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;[26]
    • AI service – Uses machine translation external services to translate game text on screen.[27]

    Supported systems

    [edit | edit source]

    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:

    System Computer system/video game console emulator Platform
    3DO 4DO, Opera PC, iOS, Android
    Amiga PUAE
    UAE4ARM
    PC, iOS, Android
    Amstrad CPC Caprice32
    CrocoDS
    PC, iOS, Android
    Arcade MAME
    MESS
    FinalBurn Neo
    FinalBurn Alpha
    PC, iOS, Android
    Atari 2600 Stella PC, iOS, Android
    Atari 5200 a5200
    Atari800
    PC, iOS, Android
    Atari 7800 ProSystem PC, iOS, Android
    Atari 8-bit computers Atari800 PC, iOS, Android
    Atari Falcon/Atari ST Hatari PC
    Atari Jaguar Virtual Jaguar PC
    Atari Lynx Mednafen
    Handy
    PC, iOS, Android
    BBC Micro Acorn PC, iOS, Android
    ColecoVision blueMSX
    Gearcoleco
    PC, iOS, Android
    Commodore 64 VICE
    Frodo
    PC, iOS, Android
    Commodore 128 VICE PC, iOS, Android
    Commodore CBM-II VICE PC, iOS, Android
    Commodore PET VICE PC, iOS, Android
    Commodore Plus/4 VICE PC, iOS, Android
    Commodore VIC-20 VICE PC, iOS, Android
    DOS DOSBox
    DOSBox-Pure
    DOSBox-SVN
    PC, iOS, Android
    Electronika BK-0010/BK-0011 M PC
    Fairchild Channel F FreeChaF PC, iOS, Android
    Handheld electronic game GW PC, iOS, Android
    Intellivision FreeIntv PC, iOS, Android
    Mac II minivmac PC
    Mega Duck SameDuck PC
    MSX fMSX
    blueMSX
    PC, iOS, Android
    NEC PC Engine / CD Mednafen PC, iOS, Android
    NEC TurboGrafx-16 / SuperGrafx Mednafen PC, iOS, Android
    NEC PC-8000 / PC-8800 QUASI88 PC
    NEC PC-98 Neko Project II Kai
    Neko Project II
    PC, iOS, Android
    NEC PC-FX Mednafen PC, iOS, Android
    NEC TurboGrafx-CD Mednafen PC
    Neo Geo Pocket / Color Mednafen
    RACE
    PC, iOS, Android
    Nintendo 3DS Citra
    Citra 2018
    PC
    Nintendo 64 Mupen64Plus
    Mupen64Plus-Next
    ParaLLEl N64
    PC, iOS, Android
    Nintendo DS DeSmuME
    DeSmuME 2015
    melonDS
    PC, iOS, Android
    Nintendo Entertainment System higan
    Emux
    FCEUmm
    Nestopia UE
    QuickNES
    Mesen
    PC, iOS, Android
    Nintendo Famicom Disk System FCEUmm
    Mesen
    Nestopia
    higan
    QuickNES
    PC, iOS, Android
    Nintendo Game Boy / Color Emux
    Gambatte
    SameBoy
    TGB Dual
    higan
    Mesen-S
    PC, iOS, Android
    Nintendo Game Boy Advance Mednafen
    gpSP
    Meteor
    mGBA
    VisualBoyAdvance
    PC, iOS, Android
    Nintendo GameCube Dolphin PC
    Nintendo Wii Dolphin PC
    Nintendo Pokémon Mini PokeMini PC, iOS, Android
    Odyssey² O2EM PC
    Palm OS Mu PC, iOS, Android
    Philips CD-i SAME CDi
    Cdi 2015
    PC
    PlayStation Mednafen
    PCSX ReARMed
    DuckStation
    SwanStation
    PC, iOS, Android
    PlayStation 2 Play!
    PCSX2
    PC
    PlayStation Portable PPSSPP PC, iOS, Android
    Super Nintendo Entertainment System higan
    Mednafen
    bsnes
    Snes9x
    Mesen-S
    PC, iOS, Android
    Sega 32X PicoDrive PC, iOS, Android
    Sega Dreamcast Redream
    Flycast (formerly Reicast)
    PC
    Sega Game Gear Genesis Plus GX
    PicoDrive
    SMS Plus GX
    Gearsystem
    PC, iOS, Android
    Sega Master System PicoDrive
    Genesis Plus GX
    SMS Plus GX
    Gearsystem
    PC, iOS, Android
    Sega Genesis/Mega Drive Genesis Plus GX
    BlastEm
    PicoDrive
    PC, iOS, Android
    Sega CD/Mega CD Genesis Plus GX
    PicoDrive
    PC, iOS, Android
    Sega Saturn uoYabause
    Mednafen
    YabaSanshiro
    Kronos
    PC, iOS, Android
    Sega ST-V Kronos PC
    Sega VMU VeMUlator PC
    SG-1000 blueMSX
    Gearsystem
    PC, iOS, Android
    Sharp X1 X Millennium PC
    Spectravideo blueMSX PC, iOS, Android
    Super Cassette Vision Libretro-EmuSCV[28][a] PC
    Thomson computers Theodore PC, iOS, Android
    Uzebox Uzem PC
    Vectrex Vecx PC, iOS, Android
    Virtual Boy Mednafen PC, iOS, Android
    Watara Supervision Potator PC, iOS, Android
    WonderSwan Mednafen, Beetle Cygne PC, iOS, Android
    X68000 PX68k PC, iOS, Android
    ZX81 EightyOne PC
    ZX Spectrum Fuse PC, iOS, Android

    Reception

    [edit | edit source]

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

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    29. ^ https://www.maaax.com/emuscv/bin/last/
    30. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    31. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    33. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    34. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    1. ^ Binaries on the Author Website.[29]
    [edit | edit source]
    • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).