RetroArch é um software de frontend gratuito, de código aberto e multiplataforma para emuladores, motores de jogos, jogos eletrônicos e outras aplicações. É a implementação de referência da API Libretro, projetado para ser rápido, leve, portátil e sem dependências externas. É licenciado sob a GNU GPLv3 e registrado como marca comercial nos Estados Unidos e na União Europeia.
O RetroArch executa programas convertidos em bibliotecas dinâmicas denominadas libretro cores, utilizando diversas interfaces de usuário — desde linha de comando até interfaces gráficas otimizadas para gamepads — além de drivers de entrada, áudio e vídeo, e recursos avançados como controle dinâmico de taxa, filtros de áudio, shaders multipassagem, netplay, rebobinamento de gameplay e cheats. O sistema foi portado para diversas plataformas, podendo ser executado em computadores pessoais, consoles domésticos e portáteis, smartphones, computadores de placa única e navegadores web.
História
Formalmente conhecido como SSNES (Super SNES), o projeto tem sua origem em torno de 2010, quando o programador Near — autor do emulador de Super Nintendo bsnes — tentava verificar se seu emulador conseguiria rodar de forma aceitável no PlayStation 3. Foi nessa tentativa que Hans-Kristian "Themaister" Arntzen conheceu Daniel De Matteis "Twinaphex", futuros líderes do projeto Libretro. A experiência revelou a Twinaphex o potencial da biblioteca libsnes — criada por Near para desacoplar o código de backend do bsnes das complexidades do desenvolvimento de interfaces — como camada de abstração de emulação portátil entre plataformas.
Com base no libsnes, Themaister realizou o primeiro commit do SSNES no GitHub em 2010, idealizando-o como substituto da interface baseada em Qt do bsnes. O projeto rapidamente passou a suportar núcleos de outros sistemas além do Super Nintendo. A divergência entre Near — cujo perfeccionismo entrava frequentemente em conflito com quem considerava determinadas soluções "boas o suficiente" — e a equipe em formação resultou na substituição do libsnes pelo libretro como API de referência do projeto, sob liderança de Twinaphex. Com o nome SSNES tornado inadequado para um frontend multi-sistema, em 21 de abril de 2012 foi realizado o commit 9ab51ad que substituiu todas as referências ao nome antigo, e o projeto adotou oficialmente o nome RetroArch.
A versão 1.0.0.0 foi lançada em 11 de janeiro de 2014, disponível para sete plataformas: OS X, Android, iOS, PlayStation 3, Xbox 360, Wii e GameCube.
Em 16 de fevereiro de 2016, o RetroArch tornou-se uma das primeiras aplicações a implementar suporte à API gráfica Vulkan, fazendo-o no mesmo dia do lançamento oficial da API.
Em 27 de novembro de 2016, a Libretro Team anunciou que o RetroArch e o Lakka — sistema operacional baseado em LibreELEC — passariam a ter financiamento via Patreon, para recompensar desenvolvedores que corrigissem erros e cobrir custos de servidores de matchmaking. Em dezembro de 2016, a empresa GoGames — contratada pela Sega — aproximou-se dos desenvolvedores com a intenção de usar o software no projeto SEGA Forever, mas a cooperação não se concretizou por divergências de licenciamento.
Em abril de 2018, foi introduzido o recurso de compensação de lag de entrada Run-Ahead, estreado na versão 1.7.2.
Em agosto de 2020, um agente malicioso se passou por membro da equipe e obteve acesso ao servidor buildbot e à conta do GitHub da organização Libretro, causando vandalismo e limpeza de servidores. Em novembro de 2020, o RetroArch em conjunto com um núcleo PCSX2 Libretro permitiu que o Xbox Series X e Series S emulassem o PlayStation 2, algo que o próprio PlayStation 5 da Sony não conseguia fazer naquele momento. Em 2020, o núcleo paraLLel para Nintendo 64 passou a usar a GPU para executar jogos de Nintendo 64 em velocidade plena, com gráficos em resolução aumentada e precisão do renderer de baixo nível Angrylion.
Em 14 de setembro de 2021, o RetroArch foi lançado na Steam gratuitamente, tornando-se o maior lançamento dedicado à emulação na plataforma até então.
Em janeiro de 2022, a versão 1.10.0 trouxe melhorias significativas para Linux: suporte ao GameMode, aprimoramentos no backend Wayland, relay de netplay online e suporte experimental a HDR. Em março de 2022, uma atualização voltada ao Steam Deck introduziu a instalação de núcleos diretamente dentro do RetroArch por meio de uma ponte com a API SteamWorks via ferramenta Mist, eliminando a necessidade de baixar DLCs manualmente pelo navegador, além de integrar o teclado nativo do Steam Deck. o RetroArch foi disponibilizado na Steam para Mac com suporte completo à API gráfica Vulkan via camada de abstração MoltenVK, permitindo que Macs com Apple Silicon (M1 e M2) executassem núcleos exigentes como paraLLel RDP para Nintendo 64 e SwanStation em alta resolução. Em 15 de maio de 2024, o RetroArch retornou oficialmente à App Store após três anos de ausência, disponível para iPhone, iPad, tvOS e visionOS.
RetroArch Open Hardware
Em fevereiro de 2021, a equipe Libretro anunciou o projeto RetroArch Open Hardware, um adaptador de cartuchos de código aberto que permite ao usuário conectar cartuchos físicos a qualquer dispositivo via cabo USB-C, com integração direta ao RetroArch. O protótipo inicial visava cartuchos de Nintendo 64, mapeando o conteúdo do cartucho como volume de armazenamento em massa (EEPROM, Flash, ROM e SRAM como arquivos separados), com velocidade de transferência de aproximadamente 4,5 MB/s. Em janeiro de 2022, a equipe anunciou parceria com um fabricante de hardware para um lançamento comercial modular — mantendo também a rota DIY gratuita —, com produção prevista para meados de 2022 e lançamento ao final do mesmo ano.
Recursos
O RetroArch oferece um conjunto de recursos avançados, muitos dos quais tornaram-se referência na área de emulação:
Suporte avançado a shaders de GPU — pipeline multipassagem para escalonamento de imagem, emulação de monitores CRT e outros efeitos, com suporte aos formatos GLSL e Slang Controle dinâmico de taxa de atualização — sincroniza vídeo e áudio evitando estouro ou subestouro do buffer Gravação de vídeo com FFmpeg — suporte a gravação sem perdas via libavcodec Run-Ahead — recurso introduzido em 2018 que executa múltiplas instâncias de um núcleo simultaneamente para eliminar o lag de entrada intrínseco ao hardware original, podendo atingir latência inferior à do hardware real Jogo em rede Peer-to-peer com rollback similar ao GGPO Camada de abstração para gamepads denominada RetroPad, com configuração automática Rebobinamento de gameplay quadro a quadro Sobreposição de botões para telas touchscreen Scanner de ROMs que constrói listas automaticamente comparando hashes de arquivos com banco de dados de cópias verificadas Múltiplas interfaces: CLI, XMB (para gamepads), GLUI/MaterialUI (para telas touch), RGUI e Ozone (disponível em todas as plataformas) Serviço de tradução por IA com reconhecimento óptico de caracteres (OCR), permitindo tradução em tempo real de jogos Integração com o serviço RetroAchievements para conquistas e distintivos
Kyle Orland, da revista Ars Technica, descreveu o recurso Run-Ahead como provavelmente a maior melhoria já proporcionada à experiência da comunidade de jogos retrô.
Sistemas suportados
O RetroArch pode executar qualquer núcleo Libretro. A disponibilidade de um núcleo específico pode variar por plataforma.
+ Sistema Baseado em 3DO 4DO Arcade MAME · FB Neo Amstrad CPC Caprice32 · CrocoDS Atari 2600 Stella Atari 5200 Atari800 Atari 7800 ProSystem Atari Jaguar Virtual Jaguar Atari Lynx Mednafen · Handy ColecoVision blueMSX Commodore 64 VICE Dreamcast Flycast Famicom Disk System Nestopia · higan Game Boy / Color Gambatte · SameBoy · higan Game Boy Advance mGBA · gpSP · VisualBoyAdvance GameCube Dolphin Game Gear Genesis Plus GX MSX fMSX · blueMSX Neo Geo Pocket / Color Mednafen Nintendo 64 Mupen64Plus · paraLLel NES / Famicom higan · FCEUmm · Nestopia · Mesen Nintendo DS DeSmuME · melonDS Nintendo 3DS Citra 32X PicoDrive Mega Drive / Genesis Genesis Plus GX · PicoDrive Master System Genesis Plus GX · PicoDrive PlayStation Portable PPSSPP PlayStation Mednafen · PCSX ReARMed · DuckStation · SwanStation PlayStation 2 LRPS2 (PCSX2) Sega Saturn Mednafen Super NES / SFC bsnes · higan · Snes9x · Mesen-S TurboGrafx-16 Mednafen Virtual Boy Mednafen Wii Dolphin WonderSwan Mednafen ZX Spectrum Fuse
Projetos derivados
Lakka
Lakka é um sistema operacional de código aberto baseado em Linux, desenvolvido pela equipe Libretro, que transforma qualquer computador ou computador de placa única num console de videogame dedicado à emulação. Construído sobre o sistema LibreELEC, o Lakka utiliza o RetroArch como única interface, eliminando a necessidade de um sistema operacional de uso geral e proporcionando uma experiência otimizada para televisores e controles.
O Lakka é compatível com mais de 40 plataformas de hardware, com suporte prioritário para computadores pessoais genéricos e computadores de placa única como o Raspberry Pi e o ODROID. Para gerenciar a crescente variedade de hardware suportado, a equipe adotou um sistema de tiers — plataformas de maior popularidade recebem atualizações mais frequentes, enquanto hardware descontinuado ou sem mantenedor ativo recebe suporte reduzido. Uma diferença histórica em relação ao RetroArch padrão era o acesso aos drivers de GPU nativos do Linux, que permitiam aceleração gráfica e recompilador dinâmico de 32 bits para Nintendo 64 — vantagens que foram posteriormente incorporadas ao RetroArch convencional.
Financiamento
O desenvolvimento do RetroArch, Libretro e Lakka é financiado em parte por meio da plataforma Patreon, onde a equipe Libretro conta com mais de 1.300 apoiadores mensais. O modelo de financiamento permite que desenvolvedores sejam recompensados por corrigir bugs específicos e cobre os custos de infraestrutura, incluindo os servidores de matchmaking para netplay e o buildbot de distribuição de núcleos.
Caso Hyperkin RetroN 5 (2014)
Em setembro de 2014, Daniel De Matteis denunciou publicamente que o console retro Hyperkin RetroN 5 utilizava código do RetroArch e de múltiplos núcleos Libretro em seu firmware sem a devida atribuição, sem liberação do código modificado e violando cláusulas específicas das licenças envolvidas. Os núcleos identificados no dispositivo incluíam Genesis Plus GX e SNES9x Next — ambos sob licenças que proibiam uso comercial sem permissão prévia —, além de FCEUmm e VBA Next sob GPL v2, e código do RetroArch sob GPL v3. O uso do código GPL v3 em um dispositivo com restrições de hardware que impediam a modificação pelo usuário final configurava violação específica da cláusula anti-Tivoização da GPL v3.
A Hyperkin inicialmente negou as alegações, mas após a divulgação de evidências — incluindo trechos de código Assembly NEON identificáveis como provenientes do RetroArch — admitiu o uso não autorizado e publicou um dump parcial do código-fonte. A equipe Libretro considerou a resposta insuficiente, apontando que o código do frontend proprietário do RetroN 5 — que utilizava código GPL v3 do RetroArch — não foi disponibilizado, e que os núcleos sob licença não comercial continuavam sendo distribuídos com o produto. De Matteis anunciou ter contatado a Free Software Foundation para tratar das violações não resolvidas. O caso permanece sem resolução definitiva documentada.
Bloqueio na Microsoft Store (2023)