# RetroArch — Cross-Platform Frontend for the Libretro Emulation API > Unified emulation frontend that runs 100+ console and computer cores through the libretro API, with shaders, netplay, achievements, and a polished controller-driven UI. ## Install Save in your project root: # RetroArch — Cross-Platform Frontend for the Libretro Emulation API ## Quick Use ```bash # Linux (Flatpak) flatpak install flathub org.libretro.RetroArch flatpak run org.libretro.RetroArch # First launch: Main Menu > Online Updater > Core Downloader to install emulator cores ``` ## Introduction RetroArch is the reference frontend for the libretro API, a plugin interface that decouples emulator cores from their UI. Instead of installing separate emulators for each console, RetroArch provides a single interface for over 100 systems spanning Atari 2600 through PlayStation 2. It runs on Windows, Linux, macOS, Android, iOS, and dozens of embedded platforms. ## What RetroArch Does - Loads libretro cores for systems from NES and Game Boy to PS2, PSP, and arcade machines - Applies GPU shader pipelines that replicate CRT scanlines, LCD grids, and other display effects - Supports netplay for peer-to-peer online multiplayer across many cores - Integrates with RetroAchievements for unlocking community-made achievements - Records gameplay to video and supports run-ahead to reduce input latency ## Architecture Overview RetroArch is built around the libretro API: each emulator core is compiled as a shared library exposing standardized functions for video, audio, and input. The frontend handles rendering (via Vulkan, GL, D3D, or Metal), audio mixing, input mapping, and overlay management. This separation means a new core can be dropped in without modifying the frontend, and the frontend's features (shaders, netplay, rewind) work across all cores automatically. ## Self-Hosting & Configuration - Install via Flatpak, Snap, PPA, or download from retroarch.com for any platform - Download cores through the built-in Online Updater (no manual compilation needed) - Point content directories to your ROM or disc image folders - Configure input in Settings > Input to map controllers per-core or globally - Apply CRT or LCD shaders from the included shader pack for authentic display output ## Key Features - 100+ libretro cores covering consoles, handhelds, computers, and arcade systems - Shader pipeline with hundreds of community-made presets for display effects - Rewind and run-ahead features for frame-perfect gameplay and reduced latency - RetroAchievements integration with thousands of community achievement sets - Cross-platform save state and configuration sync via cloud services ## Comparison with Similar Tools - **EmuDeck** — an installer/configurator that sets up RetroArch and standalone emulators on Steam Deck - **PPSSPP** — standalone PSP emulator with more PSP-specific features than the RetroArch PSP core - **OpenEmu** — macOS-only emulation frontend with a curated UX but fewer cores and platforms - **Lakka** — a Linux distribution that boots directly into RetroArch for dedicated emulation setups ## FAQ **Q: Does RetroArch include games or ROMs?** A: No. RetroArch only provides the frontend and emulator cores. You supply your own legally obtained game files. **Q: How do I install new emulator cores?** A: Go to Main Menu > Online Updater > Core Downloader and select the core you want. It downloads and installs automatically. **Q: Can I play online with friends?** A: Yes, RetroArch includes built-in netplay using rollback or lockstep synchronization for many cores. **Q: Does it work on Steam Deck?** A: Yes. RetroArch is available as a Flatpak and integrates well with Steam Deck controls and EmuDeck. ## Sources - https://github.com/libretro/RetroArch - https://www.retroarch.com/ --- Source: https://tokrepo.com/en/workflows/asset-d6d9fecf Author: AI Open Source