RetroArch
RetroArch — бесплатный кроссплатформенный интерфейс с открытым исходным кодом для эмуляторов, игровых движков, видеоигр, медиапроигрывателей и других устройств. Это эталонная реализация libretro API[2].
RetroArch запускает программы, преобразованные в динамические библиотеки, называемые ядрами libretro, используя несколько пользовательских интерфейсов, таких как интерфейс командной строки, несколько графических интерфейсов пользователя (GUI), оптимизированных для геймпадов (самый известный из них называется XMB, клон Sony XMB), нескольких драйверов ввода, аудио и видео, а также другие сложные функции, такие как динамическое управление скоростью, звуковые фильтры, многопроходные шейдеры, многопользовательская игра, перемотка игрового процесса, читы и т. д.
RetroArch был выпущен для многих платформ[3]. Он работает на нескольких операционных системах (Windows, macOS, Linux), игровых приставках (PlayStation 3, Xbox 360, Wii U и т. п.), портативных игровых консолях (PlayStation Vita, Nintendo 3DS и др.), смартфонах (Android, iOS и др.), одноплатных компьютерах (Raspberry Pi и др.) и даже в веб-браузерах[4] с помощью компилятора Emscripten.
История
[править | править код]Проект, ранее известный как SSNES, первоначально основанный на псевдониме программиста Near's libretro, предшественника libsnes[5], начал своё развитие в 2010 с Хансом-Кристианом ''themaister" Арнтценом, опубликовавшим первое изменение на GitHub[6]. Изначально проект задумывался, как замена интерфейса bsnes на основе Qt[7], но позже он стал поддерживать больше эмуляционных ядер. 21 апреля 2012 года SSNES был официально переименован в RetroArch[8]
Версия RetroArch 1.0.0.0 была выпущена 11 января 2014 года и в то время была доступна на семи разных платформах[9].
16 февраля 2016 года RetroArch стало одним из немногих приложений, реализовавших поддержку Vulkan API в день выхода API[10].
27 ноября 2016 года команда Libretro объявила, что наряду с Lakka (операционная система RetroArch на основе LibreELEC), RetroArch будет находиться на краудфандинговой платформе Patreon, чтобы вознаграждать разработчиков, которые исправляют определенные ошибки в программном обеспечении, и покрывать расходы на серверы подбора игроков[11].
В декабре 2016 года GoGames – компания, нанятая разработчиком и издателем видеоигр Sega – обратилась к разработчикам RetroArch с намерением использовать их программное обеспечение в их проекте SEGA Forever, но в конечном итоге сотрудничество не увенчалось успехом из-за лицензионных разногласий.
В августе 2020 года кто-то, выдававший себя за доверенного члена команды, получил доступ к серверу buildbot и учетной записи GitHub для организации Libretro, что привело к вандализму и очисткам сервера[12].
В ноябре 2020 года RetroArch при помощи ядра PCSX2 Libretro смогла реализовать эмуляцию PlayStation 2 на Xbox Series X/S, чего на тот момент времени не могла сделать даже собственная PlayStation 5 от Sony.
Особенности
[править | править код]Его основные функции включают в себя:
- Расширенная поддержка шейдеров GPU — Многопроходный конвейер шейдеров постобработки, позволяющий эффективно использовать алгоритмы масштабирования изображения, эмуляцию сложных ЭЛП, NTSC видео артефактов и других эффектов;
- Динамический контроль скорости для синхронизации видео и аудио, сглаживания несовершенства синхронизации;
- FFmpeg запись — встроенная функция поддержки записи видео без потерь с использованием FFmpeg libavcodec;
- Уровень абстракции геймпада, называемый Retropad:
- Автоматическая настройка геймпада — после подключения геймпада от пользователя не требуется никаких действий;
- Peer-to-peer многопользовательская игра, в которой используется Rollback метод, аналогичный GGPO[14];
- Аудио DSP плагины, такие как эквалайзер, реверберация и т. д.
- Расширенные функции сохранений — автоматическая загрузка сохранения, отключение перезаписи SRAM и т. д.;
- Покадровая перемотка геймплея;
- Сенсорные кнопки для устройств с сенсорным экраном, таких как смартфоны;
- Миниатюрные изображения обложек видеоигр;
- Настройка низкой задержки входа и звука;
- Автоматическое создание плейлистов по категориям, при сканировании каталогов на наличие игр/ROMов;
- Такие интерфейсы, как: CLI, XMB (оптимизированы для геймпадов), GLUI/MaterialUI (оптимизированы для сенсорного экрана), RGUI и Ozone (доступны везде);
- Сканер игровых ROMов — автоматически создает плейлисты, сравнивая хеш-функции файлов каталога с базами данных хеш-функций известных исправных копий игр[15];
- База данных Libretro ядер, игр, читов и т. д[16];
- Поддержка OpenGL и Vulkan API;
- Run-Ahead — скрывает задержку ввода эмулируемых систем, используя как сохранения, так и ускоренную перемотку вперед;
- Достижения — интеграция с сервисом RetroAchievements для разблокировки внутриигровых достижений и трофеев;
- Функция ИИ — использует внешние службы машинного перевода для перевода текста в играх.
Эмулируемые системы
[править | править код]RetroArch работает с любым ядром Libretro. RetroArch доступен на многих платформах, но доступность конкретного ядра зависит от платформы.
Ниже приведена (неполная) таблица систем, доступных на RetroArch, и на каких эмуляторах основываются ядра:
| Система | Эмулятор | Лицензия |
|---|---|---|
| Amstrad - CPC | Caprice32 | GPLv2 |
| CrocoDS | MIT | |
| Amstrad - GX4000 | Caprice32 | GPLv2 |
| Apple II | AppleWin | GPLv2 |
| Аркада | DICE | GPLv3 |
| FB Alpha 2012 | Некоммерческая | |
| FB Alpha 2012 CPS-1 | Некоммерческая | |
| FB Alpha 2012 CPS-2 | Некоммерческая | |
| FB Alpha 2012 CPS-3 | Некоммерческая | |
| FB Alpha 2012 Neo Geo | Некоммерческая | |
| FinalBurn Neo | Некоммерческая | |
| MAME | GPLv2+ | |
| MAME 2000 | MAME | |
| MAME 2003 | MAME | |
| MAME 2003 Midway | MAME | |
| MAME 2003-Plus | MAME некоммерческая | |
| MAME 2010 | MAME | |
| Atari - 2600 | Stella | GPLv2 |
| Stella 2014 | GPLv2 | |
| Stella 2023 | GPLv2 | |
| Atari - 400 | Atari800 | GPLv2 |
| Atari - 800 | Atari800 | GPLv2 |
| Atari - 600XL | Atari800 | GPLv2 |
| Atari - 800XL | Atari800 | GPLv2 |
| Atari - 130XE | Atari800 | GPLv2 |
| Atari - 5200 | a5200 | GPLv2 |
| Atari800 | GPLv2 | |
| Atari - 7800 | ProSystem | GPLv2 |
| Atari - Jaguar | Virtual Jaguar | GPLv3 |
| Atari - Lynx | Beetle Lynx | Zlib, GPLv2 |
| Handy | Zlib | |
| Holani | GPLv3 | |
| Atari - ST | Hatari | GPLv2 |
| Atari - STE | Hatari | GPLv2 |
| Atari - TT | Hatari | GPLv2 |
| Atari - Falcon | Hatari | GPLv2 |
| Bandai - Tamagotchi P1 | TamaLIBretro | GPL-2.0 |
| Bandai - WonderSwan | Beetle Wonderswan | GPLv2 |
| Bandai - WonderSwan Color | Beetle Wonderswan | GPLv2 |
| Coleco - ColecoVision | blueMSX | GPLv2 |
| Gearcoleco | GPLv3 | |
| JollyCV | BSD-3-Clause, MIT | |
| CreatiVision | JollyCV | BSD-3-Clause, MIT |
| My Vision | JollyCV | BSD-3-Clause, MIT |
| Commodore - Amiga | PUAE | GPLv2 |
| PUAE 2021 | GPLv2 | |
| Commodore - C128 | VICE x128 | GPLv2 |
| Commodore - C64 | VICE x64 | GPLv2 |
| VICE x64sc | GPLv2 | |
| Commodore - C64 SuperCPU | VICE xscpu64 | GPLv2 |
| Commodore - CBM-II 5x0 | VICE xcbm5x0 | GPLv2 |
| Commodore - CBM-II 6x0 | VICE xcbm2 | GPLv2 |
| Commodore - CBM-II 7x0 | VICE xcbm2 | GPLv2 |
| Commodore - PET | VICE xpet | GPLv2 |
| Commodore - PLUS/4 | VICE xplus4 | GPLv2 |
| Commodore - VIC-20 | VICE xvic | GPLv2 |
| DOS | DOSBox-core | GPLv2 |
| DOSBox-Pure | GPLv2 | |
| DOSBox-SVN | GPLv2 | |
| Электроника - БК-0010 | M | BSD |
| Электроника - БК-0011 | M | BSD |
| Enterprise - 64 | ep128emu | GPLv2 |
| Enterprise - 128 | ep128emu | GPLv2 |
| Fairchild - Channel F | FreeChaF | GPLv3 |
| GCE - Vectrex | vecx | GPLv3 |
| Портативные игровые системы | GW | Zlib |
| Mac II | minivmac | GPLv2 |
| Magnavox - Odyssey 2 | O2EM | Artistic License |
| Philips - Videopac+ | O2EM | Artistic License |
| Mattel - Intellivision | FreeIntv | GPLv3 |
| Mega Duck | SameDuck | MIT |
| Cougar Boy | SameDuck | MIT |
| Microsoft - MSX | blueMSX | GPLv2 |
| fMSX | Некоммерческая | |
| NEC - PC Engine | Beetle PCE | GPLv2 |
| Beetle PCE FAST | GPLv2 | |
| Geargrafx | GPLv3 | |
| NEC - PC Engine CD | Beetle PCE | GPLv2 |
| Beetle PCE FAST | GPLv2 | |
| Geargrafx | GPLv3 | |
| NEC - PC Engine SuperGrafx | Beetle PCE | GPLv2 |
| Beetle SuperGrafx | GPLv2 | |
| Geargrafx | GPLv3 | |
| NEC - PC-8000 | QUASI88 | BSD 3-Clause, MAME некоммерческая |
| NEC - PC-8800 series | QUASI88 | BSD 3-Clause, MAME некоммерческая |
| NEC - PC-98 | Neko Project II | MIT |
| Neko Project II Kai | MIT | |
| NEC - PC-FX | Beetle PC-FX | GPLv2 |
| Nintendo - 3DS | Azahar | GPLv2+ |
| Citra | GPLv2+ | |
| Citra 2018 | GPLv2+ | |
| Nintendo - DS | DeSmuME | GPLv2 |
| DeSmuME 2015 | GPLv2 | |
| melonDS | GPLv3 | |
| melonDS DS | GPLv3+ | |
| NooDS | GPLv3 | |
| SkyEmu | MIT | |
| Nintendo - Game Boy | DoubleCherryGB | GPLv2 |
| Gambatte | GPLv2 | |
| Gearboy | GPLv3 | |
| Mesen-S | GPLv3 | |
| SameBoy | MIT | |
| SkyEmu | MIT | |
| TGB Dual | GPLv2 | |
| Nintendo - Game Boy Color | DoubleCherryGB | GPLv2 |
| Gambatte | GPLv2 | |
| Gearboy | GPLv3 | |
| Mesen-S | GPLv3 | |
| SameBoy | MIT | |
| TGB Dual | GPLv2 | |
| Nintendo - Game Boy Advance | gpSP | GPLv2 |
| mGBA | MPLv2.0 | |
| SkyEmu | MIT | |
| VBA Next | GPLv2 | |
| VBA-M | GPLv2 | |
| Nintendo - GameCube | Dolphin | GPLv2+ |
| Nintendo - Wii | Dolphin | GPLv2+ |
| Nintendo - NES / Famicom | FCEUmm | GPLv2 |
| Mesen | GPLv3 | |
| Nestopia | GPLv2 | |
| QuickNES | LGPLv2.1+ | |
| Nintendo - Nintendo 64 | Mupen64Plus-Next | GPLv2 |
| ParaLLEl N64 | GPLv2 | |
| Nintendo - Pokémon Mini | PokeMini | GPLv3 |
| Nintendo - SNES / SFC | Beetle Supafaust | GPLv2+ |
| bsnes | GPLv3 | |
| bsnes 2014 Accuracy | GPLv3 | |
| bsnes 2014 Balanced | GPLv3 | |
| bsnes 2014 Performance | GPLv3 | |
| bsnes-hd beta | GPLv3 | |
| bsnes-jg | GPLv3 | |
| bsnes-mercury Accuracy | GPLv3 | |
| bsnes-mercury Balanced | GPLv3 | |
| bsnes-mercury Performance | GPLv3 | |
| Mesen-S | GPLv3 | |
| Snes9x | Некоммерческая | |
| Snes9x 2002 | Некоммерческая | |
| Snes9x 2005 | Некоммерческая | |
| Snes9x 2005 Plus | Некоммерческая | |
| Snes9x 2010 | Некоммерческая | |
| Nintendo - Virtual Boy | Beetle VB | GPLv2 |
| Palm OS | Mu | CC BY-NC 3.0 US (Некоммерческая) |
| Philips - CDi | CDi 2015 | GPLv2+ |
| SAME CDi | GPLv2+ | |
| Philips - P2000T | M2000 | GPLv3 |
| Sega - Dreamcast | Flycast | GPLv2 |
| Sega - Naomi | Flycast | GPLv2 |
| Sega - Master System | Gearsystem | GPLv3 |
| Genesis Plus GX | Некоммерческая | |
| Genesis Plus GX Wide | Некоммерческая | |
| PicoDrive | MAME | |
| SMS Plus GX | GPLv2 | |
| Sega - Game Gear | Gearsystem | GPLv3 |
| Genesis Plus GX | Некоммерческая | |
| Genesis Plus GX Wide | Некоммерческая | |
| PicoDrive | MAME | |
| SMS Plus GX | GPLv2 | |
| Sega - Mega Drive | BlastEm | GPLv3 |
| ClownMDEmu | AGPLv3 | |
| Genesis Plus GX | Некоммерческая | |
| Genesis Plus GX Wide | Некоммерческая | |
| PicoDrive | MAME | |
| Sega - Mega-CD | ClownMDEmu | AGPLv3 |
| Genesis Plus GX | Некоммерческая | |
| Genesis Plus GX Wide | Некоммерческая | |
| PicoDrive | MAME | |
| Sega - 32X | PicoDrive | MAME |
| Sega - SG-1000 | blueMSX | GPLv2 |
| Gearsystem | GPLv3 | |
| Sega - Saturn | Beetle Saturn | GPLv2 |
| Kronos | GPLv2 | |
| YabaSanshiro | GPLv2 | |
| Yabause | GPLv2 | |
| Sega - ST-V | Kronos | GPLv2 |
| Sharp - X1 | X Millennium | BSD |
| Sharp - X68000 | PX68k | Кастомизированная некоммерческая |
| Sinclair - ZX81 | EightyOne | GPLv3 |
| Sinclair - ZX Spectrum | Fuse | GPLv3 |
| SNK - Neo Geo AES/MVS | Geolith | BSD-3-Clause, MIT |
| SNK - Neo Geo CD | NeoCD | LGPLv3 |
| SNK - Neo Geo Pocket | Beetle NeoPop | GPLv2 |
| RACE | GPLv2 | |
| SNK - Neo Geo Pocket Color | Beetle NeoPop | GPLv2 |
| RACE | GPLv2 | |
| Sony - PlayStation | Beetle PSX | GPLv2 |
| Beetle PSX HW | GPLv2 | |
| PCSX ReARMed | GPLv2 | |
| SwanStation | GPLv3 | |
| Sony - PlayStation 2 | LRPS2 | GPL |
| Sony - PlayStation Portable | PPSSPP | GPLv2 |
| SVI | blueMSX | GPLv2 |
| Texas Instruments TI-83 | Numero | GPLv2 |
| The 3DO Company - 3DO | Opera | LGPL / Некоммерческая |
| Thomson - MO | Theodore | GPLv3 |
| Thomson - TO | Theodore | GPLv3 |
| Uzebox | Uzem | MIT |
| Watara - Supervision | Potator | Общественное достояние |
Ниже приведен (неполный) список вещей, которые не вписываются в приведенный выше список, например, отдельные игры, библиотеки или языки программирования.
| Arduboy | Arduos |
| Bomberman | Mr. Boom |
| Cave Story | NXEngine |
| ChaiScript | ChaiLove |
| CHIP-8 | JAXE |
| Dinothawr | Dinothawr |
| Doom | PrBoom |
| Doom 3 | boom3 |
| FFmpeg | FFmpeg |
| Flashback | REminiscene |
| Gong | Gong |
| Java ME | SquirrelJME |
| Jump 'n Bump | Jump 'n Bump |
| LowRes NX | LowRes NX |
| Lua Engine | Lutro |
| Minecraft | Craft |
| OutRun | Cannonball |
| PICO-8 | Retro8 |
| PocketCDG | PocketCDG |
| Quake | TyrQuake |
| Quake II | vitaQuake 2 |
| Rick Dangerous | XRick |
| RPG Maker 2000/2003 | EasyRPG |
| ScummVM | ScummVM |
| The Powder Toy | The Powder Toy |
| TIC-80 | TIC-80 |
| Tomb Raider | OpenLara |
| VaporSpec | VaporSpec |
| VeMUlator | VeMUlator |
| WASM-4 | WASM-4 |
| Wolfenstein 3D | ECWolf |
Оценки
[править | править код]- RetroArch хвалят за количество систем, которыми он может управлять через единый интерфейс[17][18].
- Его критиковали за сложность настройки из-за большого количества опций, доступных пользователю, но в то же время хвалили за достаточно продвинутую функциональность.
- RetroArch на Android хвалили за то, что сенсорные кнопки можно настраивать, за расширяемость поддерживаемых им ядер libretro, за поддержку различных периферийных устройств, таких как контроллеры USB и Bluetooth, к тому же приложение бесплатное и не имеет рекламы.
- Кайл Орланд, пишущий для Ars Technica, сказал, что режим RetroArch «Run-Ahead» является «возможно, самым большим улучшением, которое когда-либо видело сообщество ретро-игр»[19].
См. также
[править | править код]Примечания
[править | править код]- ↑ Release 1.22.2 — 2025.
- ↑ libretro/RetroArch (англ.). Дата обращения: 27 мая 2022. Архивировано 21 марта 2022 года.
- ↑ Platforms — RetroArch (англ.). Дата обращения: 27 мая 2022. Архивировано 28 октября 2015 года.
- ↑ RetroArch Web Player (англ.). Дата обращения: 27 мая 2022. Архивировано 25 мая 2022 года.
- ↑ Libsnes (англ.). Дата обращения: 27 мая 2022. Архивировано 18 октября 2020 года.
- ↑ SSNES - libretro/RetroArch (англ.). Дата обращения: 27 мая 2022. Архивировано 10 декабря 2021 года.
- ↑ SSNES - The SNES emulator that sucks less. (англ.). Дата обращения: 27 мая 2022. Архивировано 13 сентября 2014 года.
- ↑ SSNES => RetroArch. (англ.). Дата обращения: 27 мая 2022. Архивировано 10 декабря 2021 года.
- ↑ RetroArch v1.0.0.0 release information (англ.). Дата обращения: 27 мая 2022. Архивировано 15 января 2014 года.
- ↑ Day 1 Vulkan support (англ.). Дата обращения: 27 мая 2022. Архивировано 19 февраля 2016 года.
- ↑ We are now on Patreon! (англ.). Дата обращения: 27 мая 2022. Архивировано 3 августа 2017 года.
- ↑ Hacker vandalised our buildbot and Github organization (англ.). Дата обращения: 27 мая 2022. Архивировано 16 августа 2020 года.
- ↑ RetroArch finally released on Steam! (англ.). Дата обращения: 27 мая 2022. Архивировано 27 мая 2022 года.
- ↑ Netplay - RetroArch (англ.). Дата обращения: 28 мая 2022. Архивировано 30 мая 2022 года.
- ↑ RetroArch Playlist Scanner (англ.). Дата обращения: 28 мая 2022. Архивировано 26 декабря 2017 года.
- ↑ libretro/libretro-database (англ.). Дата обращения: 28 мая 2022. Архивировано 10 июня 2018 года.
- ↑ Как настроить RetroArch, универсальный эмулятор ретро-игр.
- ↑ Как пользоваться RetroArch — эмулятором Dendy, Sega Mega Drive и других старых консолей.
- ↑ Better than reality: New emulation tech lags less than original consoles (англ.). Дата обращения: 29 мая 2022. Архивировано 19 апреля 2018 года.