# RetroArch

RetroArch es un programa con implementación de la API de libretro, diseñado como un front-end para ésta. Es gratuito, de código abierto, multiplataforma y disponible en virtud de la GNU GPLv3.
Está pensado como un front-end para emuladores, motores de juego, videojuegos y otras aplicaciones (denominadas "cores"), diseñados para ser rápidos, ligeros, portátiles y sin dependencias.
RetroArch ejecuta programas convertidos en librerías dinámicas llamadas libretro cores, utilizando varias interfaces de usuario como la interfaz de línea de comandos, algunas interfaces de usuario gráficas (GUI) optimizadas para gamepads (el más famoso se llama XMB, un clon del XMB de Sony), varias entradas, audio y video, además de otras funciones sofisticadas como control dinámico de velocidad (acelerar la velocidad el juego), filtros de audio, shaders, multi-pass, netplay, rebobinado de juegos, cheats, etc.
RetroArch ha sido portado a muchas plataformas. Se puede ejecutar en varios sistemas operativos para PC (Windows, OS X, GNU/Linux), consolas de videojuegos como (PlayStation 3, Xbox 360, Wii, Wii U, etc.), consolas portátiles (como PlayStation Vita, Nintendo 3DS, etc.), en teléfonos inteligentes (Android, iOS, Blackberry, etc.), ordenadores de una sola placa (Raspberry Pi, ODROID, etc.) e incluso en navegadores web mediante el compilador Emscripten.

## Historia

Anteriormente conocido como SSNES, inicialmente basado en la creación del programador byuu, libretro, cuyo predecesor es libsnes, que comenzó su desarrollo en 2010 cuando Hans-Kristian "themaister" Arntzen realizó el primer cambio en GitHub. Fue pensado como un reemplazo para la interfaz de bsnes, y, además, creció para apoyar la emulación a través de "núcleos", pequeños programas diseñados para ser portables. El 21 de abril de 2012, SSNES oficialmente cambió su nombre a RetroArch para reflejar este cambio en su dirección como emulador.
La versión de RetroArch 1.0.0.0 se lanzó el 11 de enero de 2014 para 7 plataformas distintas.
El 16 de febrero de 2016, RetroArch se convirtió en una de las primeras aplicaciones en implementar compatibilidad con la API de gráficos Vulkan, haciéndolo el mismo día de la publicación oficial de la API.
El 27 de noviembre de 2016, el Equipo Libretro anunció que, junto con Lakka (sistema operativo de RetroArch basado en LibreELEC), RetroArch estaría en la plataforma de micromecenazgo de Patreon para permitir brindar recompensas a los desarrolladores que solucionasen errores de software específicos y cubrir el coste de los servidores de búsqueda de matchmaking .
En diciembre de 2016, GoGames, una compañía contratada por la desarrolladora y editora de videojuegos Sega, se acercó a los desarrolladores de RetroArch con la intención de usar su software en su proyecto SEGA Forever, pero finalmente la cooperación no se realizó debido a desacuerdos en la licencia.
En abril de 2018 se agregó la eliminación de retraso de entrada.

## Características

Sus características importantes incluyen:
* Soporte avanzado de shaders de GPU: un conducto de shader de pipeline de múltiples pasadas permite el uso eficiente de algoritmos de escala de imagen, emulación de CRT complejo, dispositivos de video NTSC y otros efectos;
* Dynamic Rate Control para sincronizar video y audio mientras se suavizan las imperfecciones de tiempo;
* FFmpeg grabación - Soporte incorporado para la grabación de video lossless usando la librería libavcodec de FFmpeg;
* Imageviewer - Soporte de visualización de imágenes. Extensiones compatibles: jpg, jpeg, png, bmp, psd, tga, gif, hdr, pic, ppm, pgm;
* Una capa de abstracción de Gamepad llamada Retropad;
* Configuración automática de Gamepad - No requiere configuración por parte del usuario después de conectar un gamepad;
* Peer-to-peer netplay que usa una técnica rollback similar a GGPO;
* Complementos de audio DSP como un ecualizador, reverberación y otros efectos;
* Funciones avanzadas de almacenamiento: carga automática del estado de guardado, deshabilitación de sobreescritura de SRAM, etc;
* Rebobinación del juego fotograma a fotograma con solo presionar un botón;
* Superposiciones de botones para dispositivos con pantalla táctil como teléfonos inteligentes;
* Thumbnails de las boxarts de los juegos;
* Opciones de retraso de audio;
* Construye automáticamente listas de reproducción categorizadas escaneando directorios de juegos;
* Múltiples interfaces que incluyen: CLI, (optimizado para gamepads), GLUI / MaterialUI (optimizado para dispositivos táctiles), RGUI y XMB.
* Libretro base de datos de núcleos, juegos, cheats, etc;
* Soporte para las API OpenGL y Vulkan;
* Desbloquea logros en tus juegos. RetroArch se integra con el servicio RetroAchievements para desbloquear trofeos y distintivos como en las consolas web modernas;
* Funciones de juego en red. Se puede participar como anfitrión o unirse a una sesión de otras personas. Se puede usar el modo espectador para ver a terceros jugar;
* Constantemente se agregan nuevos programas a la biblioteca de aplicaciones de RetroArch. Con el Actualizador de Núcleos incorporado en RetroArch, pueden descargar nuevos programas tan pronto como estén disponibles.

## Sistemas emulados

RetroArch puede ejecutar cualquier núcleo de libretro. Si bien RetroArch está disponible para muchas plataformas, la disponibilidad de un núcleo específico varía según la plataforma.
A continuación se muestra una tabla (incompleta) de los sistemas que están disponibles para RetroArch y qué emuladores se utilizan:
| Sistema | Emulador |
| 3DO | Opera |
| Arcade | MAME mess FinalBurnAlpha FinalBurnNeo |
| Atari 2600 | Stella |
| Atari 5200 | Atari800 |
| Atari 7800 | ProSystem |
| Atari Jaguar | Jaguar virtual |
| Atari Lynx | Mednafen Handy |
| Atari Falcon | Hatari |
| Cave Story | NXEngine |
| Bomberman | Mr. Boom |
| CHIP-8 | Emux |
| ColecoVision | blueMSX |
| Commodore 64 | VICE |
| Doom | PrBoom |
| Dreamcast | Flycast |
| Famicom Disk System | Nestopia Higan |
| FFmpeg | FFmpeg |
| Game Boy/Game Boy Color | Emux Gambatte SameBoy TGB Dual Higan |
| Game Boy Advance | Mednafen gpSP Meteor mGBA VisualBoyAdvance |
| GameCube/Wii | Dolphin |
| Game Gear | Genesis Plus GX |
| MSX | fMSX blueMSX |
| Neo Geo Pocket/Neo Geo Pocket Color | Mednafen |
| NEC PC-98 | Neko Proyect II |
| Nintendo 64 | Mupen64Plus |
| Nintendo Entertainment System | higan Emux Jnes FCEUX Nestopia QuickNES |
| Nintendo DS | DeSmuME melonDS |
| Nintendo 3DS | Citra |
| Odyssey² | O2EM |
| PC-FX | Mednafen |
| Sega 32X | PicoDrive |
| Mega CD/Sega CD | Genesis Plus GX |
| Mega Drive | Genesis Plus GX |
| Master System | PicoDrive Genesis Plus GX |
| PlayStation Portable | PPSSPP |
| PlayStation | Mednafen DuckStation PCSX-ReARMed |
| PlayStation 2 | PCSX2 |
| Pokémon Mini | PokeMini |
| Quake 1 | TyrQuake |
| Sega Saturn | Yabause 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 |

## Últimos núcleos

* Dolphin: es un emulador de Wii y Gamecube. Se ha portado a libretro y ya está disponible una versión alfa del núcleo para Windows y Linux. La versión para macOS se lanzará en una fecha posterior.
* Citra: es un emulador de Nintendo 3DS de "trabajo en progreso". Núcleo disponible en Windows y Linux. La versión para macOS se lanzará en una fecha posterior.
* Redream: es un emulador de Sega Dreamcast de "trabajo en progreso". Núcleo disponible en Windows y Linux. La versión para macOS se lanzará en una fecha posterior.
* OpenLara: es uno de los primeros juegos de recreación del motor Tomb Raider. Núcleo disponible en Windows y Linux. Utiliza los archivos de datos originales para funcionar. Una de sus ventajas es la capacidad de generar algunos efectos gráficos muy sofisticados que son agregados al motor del juego anterior sin que resulte en choques estilísticos.
* melonDS: es un emulador de Nintendo DS de "trabajo en progreso". Núcleo disponible en Windows, macOS, Linux, Android e iOS.
* SameBoy: es un emulador de Game Boy / Game Boy Color muy preciso. Núcleo disponible en Windows, macOS, Linux, Android e iOS.
* PX-68K: es un emulador Sharp X68000. Se trata de un ordenador japonés de finales de los 80 y principios de los 90 que Capcom usó como devkits para sus juegos arcade. Fue sede de muchos juegos populares de alta calidad. Núcleo disponible en Windows, macOS, Linux, Android e iOS.

## Recepción

RetroArch ha sido elogiado por la cantidad de sistemas que puede llegar a gestionar bajo una sola interfaz.
Se ha criticado por lo difícil que es de configurar, debido a la gran cantidad de opciones disponibles para el usuario, y al mismo tiempo, ha sido elogiado por característisticas muy avanzadas que posee.
En Android, se ha elogiado el hecho de que las superposiciones se puedan personalizar, por la capacidad de expansión de los núcleos libretro que admite, por su compatibilidad con varios periféricos como controladores USB y Bluetooth, además de que la aplicación es gratuita y no tiene anuncios.
Tyler Loch, que escribió para Ars Technica, dijo que el modo de "Compensación de Lag de entrada" de RetroArch es "posiblemente la mejora más grande en la experiencia que la comunidad de juegos retro todavía ha visto".