HomeEmulationRetroArch Emulator: A Comprehensive Guide for Gamers Emulation RetroArch Emulator: A Comprehensive Guide for Gamers The RetroArch emulator is an open-source graphical frontend for emulators, game engines, video games, media players, and other apps that allows users to run classic games on a wide range of computers and consoles. It’s well known for its unified settings and sleek user interface, which streamlines the gaming experience by providing one main centralized platform. The convenience of RetroArch lies in its ability to eliminate the need to switch between different emulators and apps, making it a one stop shop popular choice for avid retro gamers. Developed as the reference implementation of the libretro API, RetroArch is designed to be fast, lightweight, portable, and free from dependencies. The application runs programs converted into dynamic libraries, also known as libretro cores, which enables compatibility with various gaming systems. RetroArch showed up many times on our list for the best emulators for PC for tons of different gaming systems. RetroArch even supports running original game discs which can be played through your computer’s CD drive, adding to its appeal among users who wish to relive that classic gaming experience. Contents hide 1. What Is The RetroArch Emulator? 1.1. Open-Source and Cross-Platform 1.2. Frontend and Cores 2. Supported Platforms 2.1. Windows, Mac, and Linux 2.2. Nintendo, PlayStation, and Xbox 2.3. Android and iOS 2.4. Raspberry Pi 2.5. All Supported Platforms 3. Setting Up Retroarch 3.1. Configuration and Customization 3.2. Core and Game Setup 3.3. Controller Mapping 4. Managing Game Content 4.1. Adding Games to Your Library 4.2. Organizing Your ROM Collection 4.3. Updating Cores and Extensions 5. Emulator Features and Tools 5.1. Save States and Rewinding 5.2. Shaders and Graphics Settings 5.3. Netplay and Online Multiplayer 6. Advanced Usage 6.1. Using BIOS Files and Plugins 6.2. Setting Up Arcade Emulation 7. All Available Cores 8. Final Thoughts What Is The RetroArch Emulator? Open-Source and Cross-Platform RetroArch is a free and open-source emulator that supports a multitude of platforms, including Windows, macOS, Linux, Android, iOS, and many more. Its open-source nature encourages community involvement and collaboration to enhance its features and performance. The emulator’s cross-platform compatibility enables users to enjoy classic games on various different devices. Frontend and Cores As a frontend for emulators, game engines, and media players, RetroArch simplifies user interactions through a polished and unified graphical interface. The emulator relies on libretro cores – dynamic libraries developed for the libretro API – to provide compatibility with a wide range of games and systems. Each core represents a specific system or a game engine, allowing RetroArch to run various retro games by loading the appropriate core. The use of cores makes RetroArch a versatile choice when it comes to emulating multiple systems without the need to manage separate emulator programs. Users can easily switch between different cores to play games from a diverse range of gaming consoles. In addition to supporting original game discs (CDs), the emulator’s ability to manage multiple cores simplifies the entire process for users and offers a streamlined experience for retro gaming enthusiasts. Supported Platforms Windows, Mac, and Linux RetroArch is a versatile emulator that supports a wide range of platforms, including Windows, Mac, and Linux operating systems. Its cross-platform compatibility allows users to enjoy classic games and applications on their personal computers with ease. Nintendo, PlayStation, and Xbox In addition to support for traditional computer platforms, RetroArch is also compatible with various gaming consoles such as Nintendo, PlayStation, and Xbox. By using the emulator, users can experience their favorite games from these popular consoles on their devices without the need for owning the original hardware. Android and iOS RetroArch can also be enjoyed on mobile devices running Android and iOS. The emulator’s interface is optimized for these platforms, allowing users to easily play classic games on their smartphones or tablets on the go. Raspberry Pi Lastly, RetroArch is also available for the Raspberry Pi platform, enabling hobbyists and enthusiasts to create their own custom gaming systems using this powerful and lightweight platform. Raspberry Pi owners can transform their boards into versatile gaming emulators, playing a variety of classic games across different consoles with RetroArch. In summary, RetroArch provides a flexible and cross-platform solution for enthusiasts who want to revisit and play classic games on a wide range of devices, from personal computers and gaming consoles to mobile devices and the Raspberry Pi platform. All Supported Platforms Windows 11 / 10 / 8.1 / 8 / 7 (available standalone, but also available on Steam and Itch.io)Windows Vista / XPWindows 2000 / ME / 98SEWindows 98 / 95HaikuRaspberry PiAndroidLinuxiOS / Apple TVApple macOS (ARM/x64) – High Sierra (10.13+)Apple macOS (x64) – Lion (10.7+)Xbox Series / Xbox OnePS Vita, PSP, PS2, PS3, PS4Nintendo SwitchWii UWiiGamecube3DS / 2DSSteamWeb BrowsersRetroMini RS90Miyoo (Pocket Go, PowKiddy Q90 / V90 and New BittBoy)RetroFWOpenDingux (GCW Zero/RG350M / RG280V / and more)Setting Up Retroarch Configuration and Customization To set up RetroArch, first download the latest release for your platform (Windows, macOS, Linux, smartphones, tablets, etc.). Once downloaded, either run the installer or extract the archive to a folder. After launching RetroArch, you will be greeted with the main menu. If you wish, you can now dive into the settings to start customizing the emulator: Settings: Set up various configurations such as video, audio, input, saved states, and more.User Interface: Modify the appearance and theme of RetroArch’s menu system.On-Screen Display: Tweak and enable on-screen notifications for in-game events, as well as the on-screen keyboard for typing.Core and Game Setup RetroArch utilizes cores to emulate different gaming systems. Each core corresponds to a specific system, and you will need to download and load the appropriate core to play each game. To download cores: Navigate to Main Menu > Load Core > Download a Core.Browse the core list and select the core compatible with the desired gaming system, for example the Citra 3DS core.Wait for the download to complete, and the core will be installed.To load a core, go to Main Menu > Load Core, pick your installed core, and you are ready to run games. To load a game, follow these steps: Place the game ROMs or ISOs in a designated folder on your device.In RetroArch, go to Main Menu > Load Content.Browse to the folder containing your game files, select the game, and you’re ready to go!Controller Mapping RetroArch provides some really solid custom controller support, including gamepad support for PC, smartphones, and tablets. To map your controller: Connect your gamepad to your device.Head to Settings > Input.Select Port 1 Controls (or the respective port if you have multiple controllers).Choose Bind All to automatically map the buttons or User 1 Bind Default All to revert to the default mapping.If required, bind individual buttons by selecting the corresponding action and pressing the desired button on your gamepad.Managing Game Content Adding Games to Your Library To add games to your RetroArch library, you’ll need to have ROM files of the games you want to play. Speaking of which, here is a list of the best sites for ROMs. RetroArch supports standard ROM files as well as compressed .zip or .7z files – a nice touch that can help save storage space on your device. Once you have your ROM files ready, follow these steps: Open RetroArch and navigate to the Import Content tab.Select Scan Directory and browse to the folder containing your ROM files.Choose the directory with your ROMs and press Scan This Directory. RetroArch will automatically detect and add the games to your library.It’s important to note that some systems may require BIOS files in addition to ROM files. Remember to obtain your ROM files and BIOS files legally and only do so for games that you physically own. Organizing Your ROM Collection The last thing you want is a confusing cluttered mess of ROMs. You can organize your ROMs by system or genre, creating separate folders for each category. Additionally, you can also easily use the built in scanning and sorting features that come with RetroArch to improve your library’s ROM organization: Enable Sort Library Alphabetically to arrange your games in alphabetical order.Use Group Content by System for a more consolidated view of your collections by each gaming console.Updating Cores and Extensions As mentioned previously, RetroArch uses cores to emulate various gaming systems. It is essential to keep these cores updated for the best compatibility and performance. Follow these steps to update your cores within RetroArch: Go to the Online Updater menu.Select Update Cores to download and install the latest core versions.Extensions, such as thumbnails and game metadata, enhance your library’s appearance and overall experience. Regularly updating these is also essential. Follow these steps to update extensions within RetroArch: Go to the Online Updater menu.Choose Update Thumbnails, Update Databases, or Update Overlays as needed for your desired extensions.Emulator Features and Tools Save States and Rewinding RetroArch has the ability to use save states and rewinding capabilities. Save states enable gamers to save and load their progress at any moment during gameplay. This allows for greater convenience compared to traditional in-game save systems. RetroArch’s rewinding feature grants players the ability to undo actions by rewinding gameplay, allowing them to correct mistakes and try again. Shaders and Graphics Settings RetroArch supports various shaders and graphics settings, beefing up and enhancing the visual appearance of classic retro games. Shaders are graphical filters that can replicate the look and feel of old-school CRT screens or even improve the graphics of retro games with modern enhancements. A few notable shaders and graphics settings include: CRT shaders: Lets players mimic the scanlines and curvature of classic CRT screensUpscaling: Allows you to improve the resolution of low-res games for high-definition displaysFilters: With this, you can modify colors, contrast, and other visual aspects of the gameNetplay and Online Multiplayer RetroArch incorporates netplay functionality, allowing players to engage in online multiplayer classic gaming with friends. Netplay works by synchronizing the input and game state between connected devices, making it possible to enjoy retro video games with online multiplayer similarly to modern gaming platforms. Advanced Usage Using BIOS Files and Plugins RetroArch offers extensive support for various systems, which can often require BIOS files and plugins to function correctly. These files can be vital when attempting to emulate certain gaming consoles, such as the PlayStation and Sega Saturn. To use BIOS files, ensure that you have the correct files for the specific system you want to emulate. Once obtained, place them in the system folder of your RetroArch installation. Plugins, on the other hand, can enhance RetroArch’s performance or add extra functionality. Some popular N64 based plugins are the GLideN64 graphics plugin for graphical enhancements, the NRage input plugin for input improvements, and other plugins for audio fixes. To install plugins, download the appropriate files and place them in the cores folder of your RetroArch installation. Remember to enable the plugin within RetroArch settings before launching your game to ensure that it’s all setup and ready to go. Setting Up Arcade Emulation Arcade emulation is one really cool possibility with RetroArch. It enables you to relive classic arcade games in all their glory. To set up arcade emulation: Choose a core: RetroArch offers various cores compatible with arcade systems, such as MAME or Final Burn Alpha. After installing RetroArch on your arcade setup, download the desired core from the Load Core menu.Obtain ROMs: Ensure that you have the necessary ROM files for the games you wish to play. Place them in a folder within your RetroArch directory, usually called something like Roms or Arcade.Create a playlist: In RetroArch’s main menu, select Import Content > Scan Directory. Select the folder containing your arcade ROMs and let RetroArch create a playlist with the games.Launch your game: Select a game from the playlist, then choose the appropriate core to run it, and enjoy on your arcade machine!All Available Cores 2048GameA port of the popular puzzle game 2048 to libretro3D Engine–This is a test core; it demonstrates how to create a hardware-rendered core in a libretro context4DO3DO–a5200Atari 5200–ArduousArduboyA emulator for Arduboy, a handheld game console with open source software, based on the Arduino hardware platformAtari800Atari 5200–Beetle bsnesNintendo SNES/SFC–Beetle CygneBandai WonderSwan/Color–Beetle GBAGame Boy Advance–Beetle LynxAtari Lynx–Beetle NeoPopNeo Geo Pocket/Color–Beetle PC-FXNEC PC-FX–Beetle PCENEC PC Engine/SuperGrafx/CD–Beetle PSXSony PlayStation–Beetle PSX HWSony PlayStationA fork of Mednafen’s PSX providing GPU-accelerated renderers for OpenGL and VulkanBeetle SaturnSega Saturn–Beetle SuperGrafxNEC PC Engine/SuperGrafx–Beetle SupafaustNintendo SNES/SFC–Beetle VBNintendo Virtual Boy–BKBK-0010/BK-0011(M)/Terak 8510-aA port of the PDP11 emulator to libretro. This core emulates the PDP-11/03 platform.BlastEmSega Genesis (Mega Drive)–blueMSXMSX/SVI/ColecoVision/SG-1000–bnesNintendo NES/Famicom–boom 3Game engineA port of the Doom 3 engine to libretro. There is a separate core for it’s expansion pack ‘Resurrection of Evil’.boom 3 xpGame engine(See boom 3 note)bsnesNintendo SNES/SFC–bsnes 2014 AccuracyNintendo SNES/SFC–bsnes 2014 BalancedNintendo SNES/SFC–bsnes 2014 PerformanceNintendo SNES/SFC–bsnes C++98 (v085)Nintendo SNES/SFC–bsnes-hd betaNintendo SNES/SFC–bsnes-mercury AccuracyNintendo SNES/SFC–bsnes-mercury BalancedNintendo SNES/SFC–bsnes-mercury PerformanceNintendo SNES/SFC–CannonballGame engineA port of the Cannonball, enhanced OutRun engine to libretroCaprice32Amstrad CPC–CDi 2015Philips CDi–ChaiLoveGame engineA free, open-source framework used to make 2D games in ChaiScriptCitraNintendo 3DS–Citra 2018Nintendo 3DS–Citra CanaryNintendo 3DS–CraftGame–CrocoDSAmstrad CPC–CruzesGame–DaphneArcade–DeSmuMENintendo DS–DeSmuME 2015Nintendo DS–DinothawrGame engineA push-the-block-in-a-straight-line puzzle game in the spirit of Kickle CubicleDirectXboxXbox–DolphinNintendo GameCube/Wii–DOSBoxDOS–DOSBox-coreDOSProvides some improvements over the DOSBox-SVN trunk, including native MIDI support, cycle-accurate OPL3 (YMF262) emulation, MT-32 emulation and experimental 3dfx Voodoo supportDOSBox-PureDOSA port of DOSBox with a goal of simplicty and ease of use and gameplay. This core includes a streamlined workflow for launching games directly from ZIP archives with automated mapping of controls to gamepads and a native onscreen keyboard.DOSBox-SVNDOSThis core is based on DOSBox-SVN trunk and allows on-the-fly configuration and different sync methodsDuckStationSony PlayStation–Dungeon Crawl Stone SoupGameA preliminary port of the Dungeon Crawl Stone Soup strategy gameEasyRPGRPG Maker 2000/2003–ECWolfGame engineA port of the Wolfenstein 3D engine to libretroEighyOneSinclair ZX 81–Emux CHIP-8CHIP-8–Emux GBGame Boy/Color–Emux NESNintendo NES/Famicom–Emux SMSSega Master System–EmuSCVSuper Cassette Vision–Ep128emuEnterprise 128–FAKE-08Pico-8A port of the FAKE-08 open-source reimplementation of the PICO-8 fantasy console to libretroFB AlphaArcade/Console/various(See FB Neo note)FB Alpha 2012Arcade/Console/various(See FB Neo note)FB Alpha 2012 CPS-1CPS-1–FB Alpha 2012 CPS-2CPS-2–FB Alpha 2012 CPS-3CPS-3–FB Alpha 2012 Neo GeoNeo Geo–FB NeoArcade/Console/variousFull list of supported systems: https://github.com/finalburnneo/FBNeo/wikiFCEUmmNintendo NES/Famicom–FFmpegMedia playerA port of FFmpeg library which allows playback of a variety of audio and video formatsfixGBGame Boy/Color–fixNESNintendo NES/Famicom–FlycastSega Dreamcast/NAOMI–Flycast GLES2Sega Dreamcast/NAOMI–fMSXMSX/MSX2/MSX2+–FreeChaFFairchild ChannelF–FreeInvMattel Intellivision–FreeJ2MEJ2MEa port of Java 2 Micro Edition emulatorFrodoCommodore C64–FS-UAECommodore Amiga–FuseSinclair ZX Spectrum–GambatteGame Boy/Color–Game Music EmuMusic playerA port of Game Music Emu which allows playback of a wide variety of video game music formatsGearboyGame Boy/Color–GearcolecoColeco ColecoVision–GearsystemSega MS/GG/SG-1000–Genesis Plus GXSega MS/GG/MD/CD–gpSPGame Boy Advance–GongGameA clone of Pong written for libretroGWHandheld ElectronicA simulator of various Game and Watch-style handheld electronic gamesHandyAtari Lynx–HatariAtari ST/STE/TT/Falcon–HBMAMEArcade/Console/variousHBMAME (HomeBrew MAME) is a derivative of MAME, and contains various hacks and homebrewshigan AccuracyNintendo SNES/SFC/Game Boy/Color–ImageviewerImageviewerA basic core for viewing still images in a libretro frontendIshiirukaNintendo GameCube/Wii–JAXECHIP-8/S-CHIP/XO-CHIP–Jump ‘n BumpGame engineA reimplementation of the engine of Jump ‘n Bump, a open-source MS-DOS multiplayer video game by Brainchild DesignKronosSega Saturn/ST-VA port of the Kronos, which is itself a fork of Yabause emulatorLowRes NXGame engineA port of the LowRes NX fantasy console to libretroLutroGame engineAn experimental Lua game framework for libretro, based on a subset of the LOVE APIMAME (Current)Arcade/Console/variousBased on MAME development branch. Full list of supported systems: http://adb.arcadeitalia.net/mame.phpMAME 2000Arcade/Console/various(See MAME note)MAME 2003Arcade/Console/various(See MAME note)MAME 2003 MidwayArcade/Console/various(See MAME note)MAME 2003-PlusArcade/Console/various(See MAME note)MAME 2009Arcade/Console/various(See MAME note)MAME 2010Arcade/Console/various(See MAME note)MAME 2015Arcade/Console/various(See MAME note)MAME 2016Arcade/Console/various(See MAME note)melonDSNintendo DS–MesenNintendo NES/Famicom–Mesen-SNintendo SNES/SFC/Game Boy/Color–MESS 2015Multi (various)(See MAME note)MeteorGame Boy Advance–mGBAGame Boy Advance–MinivmacMac IIMacII variant of minivmac emulatormpvMedia playerAn port of MPV media player to libretroMr.BoomGameA clone of the classic Bomberman seriesMuPalm OSAn emulator for the Palm m515 OS ported to libretroMupen64Plus-NextNintendo 64–Mupen64Plus-Next GLES2Nintendo 64–Mupen64Plus-Next GLES3Nintendo 64–Neko Project IINEC PC-98–Neko Project II KaiNEC PC-98–NeoCDNeo Geo CD–Nestopia UENintendo NES/Famicom–nSide BalancedNintendo SNES/SFC/Game Boy/Color–NumeroTI-83A TI-83 Emulator for LibretroNXEngineGame engineAn open-source reimplementation of the Cave Story / Doukutsu engineO2EMMagnavox Odyssey2/Phillips Videopac+–OberonOberon RISC machineAn emulator for the Oberon RISC machine, ported to libretroOpenLaraGame engineA port of the OpenLara free/open re-implementation of the engine used by the original Tomb Raider seriesOpenTyrianGameA port of the OpenTyrian clone of the classic Tyrian shmup, ported to libretroOpera3DO–ParaLLEl N64Nintendo 64–PascalPongGameA free and basic clone of the classic Pong game, written for libretroPCemIBM PC–LRPS2Sony PlayStation 2–PCSX ReARMedSony PlayStation–PicoDriveSega MS/GG/MD/CD/32X–Play!Sony PlayStation 2–Pocket CDGKaraoke playerA karaoke music player, ported to libretroPokeMiniNintendo Pokemon Mini–PotatorWatara Supervision–PPSSPPPlayStation Portable–PrBoomGame engineA port of the PrBoom source port of iD’s classic Doom engineProSystemAtari 7800–PUAECommodore Amiga–PUAE 2021Commodore Amiga–PuzzleScriptGame engineA port of PuzzleScript, open source HTML5 puzzle game enginePX68kSharp X68000–QUASI88NEC PC-8000/PC-8800 series–QuickNESNintendo NES/Famicom–RACENeo Geo Pocket/Color–RedbookMusic playerA libretro core for playing back Redbook-formatted audio, such as commercial audio CDsREminiscenceGame engineA port of the REminiscence engine, a reimplementation of the engine used by Delphine Software’s FlashbackRetro8Game engineA port of the Retro8 open-source reimplementation of the PICO-8 fantasy console to libretroRustationSony PlayStation–SameBoyGame Boy/Color–SameDuckMega Duck (Cougar Boy)An adaptation of SameBoy to play Mega Duck gamesSAME CDIPhilips CDiSAME CDi is a S(ingle) A(rcade) M(achine) E(mulator) for libretro, forked from MAME, which only includes the Philips CD-i driverScummVMGame engineA fork of the ScummVM adventure game engine ported to libretroSimCoupeSAM Coupe–SMS Plus GXSega MS/GG–Snes9xNintendo SNES/SFC–Snes9x 2002Nintendo SNES/SFC–Snes9x 2005Nintendo SNES/SFC–Snes9x 2005 PlusNintendo SNES/SFC–Snes9x 2010Nintendo SNES/SFC–SquirrelJMEJava MEA port of the SquirrelJME Java ME 8 Virtual Machine emulator to libretroStellaAtari 2600–Stella 2014Atari 2600–Super Bros WarGame engineA fork of Super Mario War, a fan-made multiplayer Super Mario Bros. style deathmatch gameSwanStationSony PlayStationSwanStation is a fork of the Duckstation emulatorTempGBAGame Boy Advance–TGB DualGame Boy/Color–TheodoreThomson MO/TO–TIC-80Game engineA port of the free and open source fantasy computer TIC-80 to libretroThe Powder ToyGameA port of the Powdertoy physics sandbox/simulation engine to libretroTyrQuakeGame engineA port of the tyrquake engineUAE4ARMCommodore Amiga–UME 2015Arcade/Console/various(See MAME note)UzemUzeboxA port of Uzem, the official emulator for the UzeboxVaporSpecGame engineA virtual game platform with capabilities similar to 80s game consolesVBA-MGame Boy AdvanceVisualBoy Advance-M is a active fork of VisualBoy Advance emulatorVBA NextGame Boy Advance–vecxVectrex–VeMUlatorSEGA Visual Memory UnitA port of VeMUlator, a SEGA Dreamcast VMU emulator originally developed for AndroidVICE x64Commodore C64–VICE x64scCommodore C64–VICE x128Commodore C128–VICE xcbm2Commodore CBM-II 6×0/7×0–VICE xcbm5x0Commodore CBM-II 5×0–VICE xpetCommodore PET–VICE xplus4Commodore Plus/4–VICE xscpu64Commodore C64 SuperCPU–VICE xvicCommodore VIC-20–Virtual JaguarAtari Jaguar–VirtualXTDOSRunns PC/XT class software. Mainly intended for PC booters from the 80’s.vitaQuake 2Game engineA port of the VitaQuake 2 source port of iD’s Quake 2 engine to libretro. There is a separate core for each of the Quake 2 mission packs, ‘Rogue’, ‘Zaero’ and ‘Xatrix’.vitaQuake 2 (Rogue)Game engine(See vitaQuake 2 note)vitaQuake 2 (Xatrix)Game engine(See vitaQuake 2 note)vitaQuake 2 (Zaero)Game engine(See vitaQuake 2 note)vitaQuake 3Game engineA port of the VitaQuake 3 source port of iD’s ioquake3 engine to libretrovitaVoyagerGame engineA port of the Lilium Voyager engine, which runs the Star Trek: Voyager – Elite Force game and is itself based on the ioquake3WASM-4Game engineWASM-4 is a open source low-level fantasy game console for building small games with WebAssemblyX MillenniumSharp X1–XRickGame engineA port of the XRick, an open-source clone of the Rick Dangerous engineYabaSanshiroSega SaturnA port of the YabaSanshiro, which is itself a fork of Yabause emulatorYabauseSega Saturn–Final Thoughts RetroArch is a very powerful frontend for emulating classic games. It’s very versatile and can be used on a plethora of different devices. With all of the customizations and features available, the options are nearly endless. Check out this complete guide for setting up RetroArch N64. You may also enjoy this article on the OpenEmu emulator frontend for Mac. Jonathan Zarra A lover of gaming and all things Nintendo, Jonathan has 20+ years of retro gaming expertise. Not only has he been playing games his whole life, but he has dedicated his life to it as well - founding multiple video game related companies. When not working on a new project, you can find him playing the Switch, tinkering around with emulation, and building out his retro game collection. Share This Previous ArticleOpenEmu: A Guide to Using the Mac Only Emulator App Next ArticleMupen64Plus Emulator: The Ultimate Guide May 25, 2023