RetroArch — бесплатный кроссплатформенный интерфейс с открытым исходным кодом для эмуляторов, игровых движков, видеоигр, медиапроигрывателей и других устройств. Это эталонная реализация libretro API.
RetroArch запускает программы, преобразованные в динамические библиотеки, называемые ядрами libretro, используя несколько пользовательских интерфейсов, таких как интерфейс командной строки, несколько графических интерфейсов пользователя (GUI), оптимизированных для геймпадов (самый известный из них называется XMB, клон Sony XMB), нескольких драйверов ввода, аудио и видео, а также другие сложные функции, такие как динамическое управление скоростью, звуковые фильтры, многопроходные шейдеры, многопользовательская игра, перемотка игрового процесса, читы и т. д.
RetroArch был выпущен для многих платформ. Он работает на нескольких операционных системах (Windows, macOS, Linux), игровых приставках (PlayStation 3, Xbox 360, Wii U и т. п.), портативных игровых консолях (PlayStation Vita, Nintendo 3DS и др.), смартфонах (Android, iOS и др.), одноплатных компьютерах (Raspberry Pi и др.) и даже в веб-браузерах с помощью компилятора Emscripten.
История Проект, ранее известный как SSNES, первоначально основанный на псевдониме программиста Near's libretro, предшественника libsnes, начал своё развитие в 2010 с Хансом-Кристианом ''themaister" Арнтценом, опубликовавшим первое изменение на GitHub. Изначально проект задумывался, как замена интерфейса bsnes на основе Qt, но позже он стал поддерживать больше эмуляционных ядер. 21 апреля 2012 года SSNES был официально переименован в RetroArch
Версия RetroArch 1.0.0.0 была выпущена 11 января 2014 года и в то время была доступна на семи разных платформах.
16 февраля 2016 года RetroArch стало одним из немногих приложений, реализовавших поддержку Vulkan API в день выхода API.
27 ноября 2016 года команда Libretro объявила, что наряду с Lakka (операционная система RetroArch на основе LibreELEC), RetroArch будет находиться на краудфандинговой платформе Patreon, чтобы вознаграждать разработчиков, которые исправляют определенные ошибки в программном обеспечении, и покрывать расходы на серверы подбора игроков.
В декабре 2016 года GoGames – компания, нанятая разработчиком и издателем видеоигр Sega – обратилась к разработчикам RetroArch с намерением использовать их программное обеспечение в их проекте SEGA Forever, но в конечном итоге сотрудничество не увенчалось успехом из-за лицензионных разногласий.
В августе 2020 года кто-то, выдававший себя за доверенного члена команды, получил доступ к серверу buildbot и учетной записи GitHub для организации Libretro, что привело к вандализму и очисткам сервера.
В ноябре 2020 года RetroArch при помощи ядра PCSX2 Libretro смогла реализовать эмуляцию PlayStation 2 на Xbox Series X/S, чего на тот момент времени не могла сделать даже собственная PlayStation 5 от Sony.
14 сентября 2021 года RetroArch вышел в Steam.
Особенности Его основные функции включают в себя: Расширенная поддержка шейдеров GPU — Многопроходный конвейер шейдеров постобработки, позволяющий эффективно использовать алгоритмы масштабирования изображения, эмуляцию сложных ЭЛП, NTSC видео артефактов и других эффектов; Динамический контроль скорости для синхронизации видео и аудио, сглаживания несовершенства синхронизации; FFmpeg запись — встроенная функция поддержки записи видео без потерь с использованием FFmpeg libavcodec; Уровень абстракции геймпада, называемый Retropad: Автоматическая настройка геймпада — после подключения геймпада от пользователя не требуется никаких действий; Peer-to-peer многопользовательская игра, в которой используется Rollback метод, аналогичный GGPO; Аудио DSP плагины, такие как эквалайзер, реверберация и т. д. Расширенные функции сохранений — автоматическая загрузка сохранения, отключение перезаписи SRAM и т. д.; Покадровая перемотка геймплея; Сенсорные кнопки для устройств с сенсорным экраном, таких как смартфоны; Миниатюрные изображения обложек видеоигр; Настройка низкой задержки входа и звука; Автоматическое создание плейлистов по категориям, при сканировании каталогов на наличие игр/ROMов; Такие интерфейсы, как: CLI, XMB (оптимизированы для геймпадов), GLUI/MaterialUI (оптимизированы для сенсорного экрана), RGUI и Ozone (доступны везде); Сканер игровых ROMов — автоматически создает плейлисты, сравнивая хеш-функции файлов каталога с базами данных хеш-функций известных исправных копий игр; База данных Libretro ядер, игр, читов и т. д; Поддержка OpenGL и Vulkan API; Run-Ahead — скрывает задержку ввода эмулируемых систем, используя как сохранения, так и ускоренную перемотку вперед; Достижения — интеграция с сервисом RetroAchievements для разблокировки внутриигровых достижений и трофеев; Функция ИИ — использует внешние службы машинного перевода для перевода текста в играх.
Эмулируемые системы RetroArch работает с любым ядром Libretro. RetroArch доступен на многих платформах, но доступность конкретного ядра зависит от платформы.
Ниже приведена (неполная) таблица систем, доступных на RetroArch, и на каких эмуляторах основываются ядра: СистемаЭмуляторЛицензияAmstrad - CPCCaprice32GPLv2CrocoDSMITAmstrad - GX4000Caprice32GPLv2Apple IIAppleWinGPLv2АркадаDICEGPLv3FB Alpha 2012НекоммерческаяFB Alpha 2012 CPS-1НекоммерческаяFB Alpha 2012 CPS-2НекоммерческаяFB Alpha 2012 CPS-3НекоммерческаяFB Alpha 2012 Neo GeoНекоммерческаяFinalBurn NeoНекоммерческаяMAMEGPLv2+MAME 2000MAMEMAME 2003MAMEMAME 2003 MidwayMAMEMAME 2003-PlusMAME некоммерческаяMAME 2010MAMEAtari - 2600StellaGPLv2Stella 2014GPLv2Stella 2023GPLv2Atari - 400Atari800GPLv2Atari - 800Atari800GPLv2Atari - 600XLAtari800GPLv2Atari - 800XLAtari800GPLv2Atari - 130XEAtari800GPLv2Atari - 5200a5200GPLv2Atari800GPLv2Atari - 7800ProSystemGPLv2Atari - JaguarVirtual JaguarGPLv3Atari - LynxBeetle LynxZlib, GPLv2HandyZlibHolaniGPLv3Atari - STHatariGPLv2Atari - STEHatariGPLv2Atari - TTHatariGPLv2Atari - FalconHatariGPLv2Bandai - Tamagotchi P1TamaLIBretroGPL-2.0Bandai - WonderSwanBeetle WonderswanGPLv2Bandai - WonderSwan ColorBeetle WonderswanGPLv2Coleco - ColecoVisionblueMSXGPLv2GearcolecoGPLv3JollyCVBSD-3-Clause, MITCreatiVisionJollyCVBSD-3-Clause, MITMy VisionJollyCVBSD-3-Clause, MITCommodore - AmigaPUAEGPLv2PUAE 2021GPLv2Commodore - C128VICE x128GPLv2Commodore - C64VICE x64GPLv2VICE x64scGPLv2Commodore - C64 SuperCPUVICE xscpu64GPLv2Commodore - CBM-II 5x0VICE xcbm5x0GPLv2Commodore - CBM-II 6x0VICE xcbm2GPLv2Commodore - CBM-II 7x0VICE xcbm2GPLv2Commodore - PETVICE xpetGPLv2Commodore - PLUS/4VICE xplus4GPLv2Commodore - VIC-20VICE xvicGPLv2DOSDOSBox-coreGPLv2DOSBox-PureGPLv2DOSBox-SVNGPLv2Электроника - БК-0010MBSDЭлектроника - БК-0011MBSDEnterprise - 64ep128emuGPLv2Enterprise - 128ep128emuGPLv2Fairchild - Channel FFreeChaFGPLv3GCE - VectrexvecxGPLv3Портативные игровые системыGWZlibMac IIminivmacGPLv2Magnavox - Odyssey 2O2EMArtistic LicensePhilips - Videopac+O2EMArtistic LicenseMattel - IntellivisionFreeIntvGPLv3Mega DuckSameDuckMITCougar BoySameDuckMITMicrosoft - MSXblueMSXGPLv2fMSXНекоммерческаяNEC - PC EngineBeetle PCEGPLv2Beetle PCE FASTGPLv2GeargrafxGPLv3NEC - PC Engine CDBeetle PCEGPLv2Beetle PCE FASTGPLv2GeargrafxGPLv3NEC - PC Engine SuperGrafxBeetle PCEGPLv2Beetle SuperGrafxGPLv2GeargrafxGPLv3NEC - PC-8000QUASI88BSD 3-Clause, MAME некоммерческаяNEC - PC-8800 seriesQUASI88BSD 3-Clause, MAME некоммерческаяNEC - PC-98Neko Project IIMITNeko Project II KaiMITNEC - PC-FXBeetle PC-FXGPLv2Nintendo - 3DSAzaharGPLv2+CitraGPLv2+Citra 2018GPLv2+Nintendo - DSDeSmuMEGPLv2DeSmuME 2015GPLv2melonDSGPLv3melonDS DSGPLv3+NooDSGPLv3SkyEmuMITNintendo - Game BoyDoubleCherryGBGPLv2GambatteGPLv2GearboyGPLv3Mesen-SGPLv3SameBoyMITSkyEmuMITTGB DualGPLv2Nintendo - Game Boy ColorDoubleCherryGBGPLv2GambatteGPLv2GearboyGPLv3Mesen-SGPLv3SameBoyMITTGB DualGPLv2Nintendo - Game Boy AdvancegpSPGPLv2mGBAMPLv2.0SkyEmuMITVBA NextGPLv2VBA-MGPLv2Nintendo - GameCubeDolphinGPLv2+Nintendo - WiiDolphinGPLv2+Nintendo - NES / FamicomFCEUmmGPLv2MesenGPLv3NestopiaGPLv2QuickNESLGPLv2.1+Nintendo - Nintendo 64Mupen64Plus-NextGPLv2ParaLLEl N64GPLv2Nintendo - Pokémon MiniPokeMiniGPLv3Nintendo - SNES / SFCBeetle SupafaustGPLv2+bsnesGPLv3bsnes 2014 AccuracyGPLv3bsnes 2014 BalancedGPLv3bsnes 2014 PerformanceGPLv3bsnes-hd betaGPLv3bsnes-jgGPLv3bsnes-mercury AccuracyGPLv3bsnes-mercury BalancedGPLv3bsnes-mercury PerformanceGPLv3Mesen-SGPLv3Snes9xНекоммерческаяSnes9x 2002НекоммерческаяSnes9x 2005НекоммерческаяSnes9x 2005 PlusНекоммерческаяSnes9x 2010НекоммерческаяNintendo - Virtual BoyBeetle VBGPLv2Palm OSMuCC BY-NC 3.0 US (Некоммерческая)Philips - CDiCDi 2015GPLv2+SAME CDiGPLv2+Philips - P2000TM2000GPLv3Sega - DreamcastFlycastGPLv2Sega - NaomiFlycastGPLv2Sega - Master SystemGearsystemGPLv3Genesis Plus GXНекоммерческаяGenesis Plus GX WideНекоммерческаяPicoDriveMAMESMS Plus GXGPLv2Sega - Game GearGearsystemGPLv3Genesis Plus GXНекоммерческаяGenesis Plus GX WideНекоммерческаяPicoDriveMAMESMS Plus GXGPLv2Sega - Mega DriveBlastEmGPLv3ClownMDEmuAGPLv3Genesis Plus GXНекоммерческаяGenesis Plus GX WideНекоммерческаяPicoDriveMAMESega - Mega-CDClownMDEmuAGPLv3Genesis Plus GXНекоммерческаяGenesis Plus GX WideНекоммерческаяPicoDriveMAMESega - 32XPicoDriveMAMESega - SG-1000blueMSXGPLv2GearsystemGPLv3Sega - SaturnBeetle SaturnGPLv2KronosGPLv2YabaSanshiroGPLv2YabauseGPLv2Sega - ST-VKronosGPLv2Sharp - X1X MillenniumBSDSharp - X68000PX68kКастомизированная некоммерческаяSinclair - ZX81EightyOneGPLv3Sinclair - ZX SpectrumFuseGPLv3SNK - Neo Geo AES/MVSGeolithBSD-3-Clause, MITSNK - Neo Geo CDNeoCDLGPLv3SNK - Neo Geo PocketBeetle NeoPopGPLv2RACEGPLv2SNK - Neo Geo Pocket ColorBeetle NeoPopGPLv2RACEGPLv2Sony - PlayStationBeetle PSXGPLv2Beetle PSX HWGPLv2PCSX ReARMedGPLv2SwanStationGPLv3Sony - PlayStation 2LRPS2GPLSony - PlayStation PortablePPSSPPGPLv2SVIblueMSXGPLv2Texas Instruments TI-83NumeroGPLv2The 3DO Company - 3DOOperaLGPL / НекоммерческаяThomson - MOTheodoreGPLv3Thomson - TOTheodoreGPLv3UzeboxUzemMITWatara - SupervisionPotatorОбщественное достояние Ниже приведен (неполный) список вещей, которые не вписываются в приведенный выше список, например, отдельные игры, библиотеки или языки программирования.
ArduboyArduosBombermanMr. BoomCave StoryNXEngineChaiScriptChaiLoveCHIP-8JAXEDinothawrDinothawrDoomPrBoomDoom 3boom3
boom 3 xpFFmpegFFmpegFlashbackREminisceneGongGongJava MESquirrelJMEJump 'n BumpJump 'n BumpLowRes NXLowRes NXLua EngineLutroMinecraftCraftOutRunCannonballPICO-8Retro8PocketCDGPocketCDGQuakeTyrQuakeQuake IIvitaQuake 2Rick DangerousXRickRPG Maker 2000/2003EasyRPGScummVMScummVMThe Powder ToyThe Powder ToyTIC-80TIC-80Tomb RaiderOpenLaraVaporSpecVaporSpecVeMUlatorVeMUlatorWASM-4WASM-4Wolfenstein 3DECWolf
Оценки
RetroArch хвалят за количество систем, которыми он может управлять через единый интерфейс. Его критиковали за сложность настройки из-за большого количества опций, доступных пользователю, но в то же время хвалили за достаточно продвинутую функциональность. RetroArch на Android хвалили за то, что сенсорные кнопки можно настраивать, за расширяемость поддерживаемых им ядер libretro, за поддержку различных периферийных устройств, таких как контроллеры USB и Bluetooth, к тому же приложение бесплатное и не имеет рекламы. Кайл Орланд, пишущий для Ars Technica, сказал, что режим RetroArch «Run-Ahead» является «возможно, самым большим улучшением, которое когда-либо видело сообщество ретро-игр».
См. также
Список открытого программного обеспечения Список эмуляторов игровых приставок
Примечания