RetroArch is best understood as a unified frontend, not a single emulator. It provides the menus, input system, video options, saves, playlists, shaders, and other common features, while separately installed libretro cores run games for particular systems. A working setup therefore needs three things: a compatible core, legally obtained game content, and any required BIOS or system files.
This guide covers the current stable release, RetroArch 1.22.2, with instructions for choosing the right edition, configuring directories, installing cores, launching games, importing a collection, handling thumbnails and playlists, using the command line, and diagnosing arcade-specific problems.
Choose the right RetroArch edition first
Download RetroArch from the official platforms page. The current stable version is 1.22.2. The site also offers Nightly builds, which contain daily GitHub changes and can be less stable.
For the complete feature set, use the full desktop release where available. Store editions can omit functionality or provide fewer downloadable cores.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
#1 Best Overall
- 【Supported Operating System】The Game Controller is specifically designed for playing classic old school retro snes games on computer or laptop. Compatible with Windows 98 / ME / Vista / 2000/2003 / XP / 7 / 8 / 8.1 / 10/11, Mac OS X/ OS X 10.0 and beyond, Raspberry Pi, Raspberry PI 2 model B,Model A, Raspberry Pi 1 Model B+, Raspberry Pi 2,Raspberry Pi OS, Raspberry Pi 3 Model B+, Raspberry Pi 3, Raspberry Pi Zero.
- 【Simple USB Plug and Play】If your program or application accepts USB controller input, this classic game controller do not need install drivers or patches. 1.5 meter external cable(approx. 5 ft. Long). Notice: Please download the game emulator first before start the games, and then you must manually set the buttons and directionals within the emulator you're using, and the controller not automatically assigns buttons/directional axes. If on the Steam platform, you need to first enable Steam's "Universal Controller Configuration Support" and then restart Steam. After entering the game, you also need to manually bind key positions in the game
- 【High Sensitivity without Delay】Super sensitive buttons for precision control: 6 fire buttons, a 'Start' button and a 'Select' button, motion control cross. Play your favorite old school games with classic retro feel. Fits perfectly in the hand and also perfect for two player action.Note: Not applicable to Switch/PS games. Not Compatible with TV/ TV Box, third Mini Games Box and Tesla Model 3
- 【Supported Game Emulators】The game controller works with most emulators. Download any emulator you wish to download and use from Google and do the same with ROMS. Notice:Third party controller, not original controller. But it works phenomenal with the Raspberry Pi game emulation and so on
- 【Product Service】If you have any problem during use, send message to us and we will help you to solve the problem soon
- Windows: the official page provides 64-bit and 32-bit installers, plus portable downloads, for Windows 11, 10, 8.1, 8, and 7. The installer is simplest for most users; the portable download is useful when you want to keep RetroArch and its data in a self-contained folder.
- Steam: this edition has no Core Updater, no thumbnail scraping, and only a selected set of cores downloadable through Steam. Do not assume it behaves like the standalone desktop version.
- Android: the official download page marks the Google Play versions as outdated and recommends the official APK or an alternative app store instead.
- Linux and macOS: use the package or download appropriate to your distribution or operating system, bearing in mind that package-maintained installations may handle cores and directories differently.
For a Windows Nightly installation, the documented files are RetroArch.7z and RetroArch-20XX-XX-XX-setup.exe. The official Windows installation guide explains the available installation paths.
Install RetroArch and make a sensible folder layout
Install or extract RetroArch, then create separate locations for your games, saves, states, BIOS files, and cores. Keeping these categories separate makes backups and troubleshooting much easier. For example:
RetroArch/ RetroArch installation and configuration
RetroArch/system/ BIOS and other system files
RetroArch/roms/ Your legally obtained game files
RetroArch/saves/ Battery saves
RetroArch/states/ Save states
RetroArch/cores/ Libretro cores, when managed manually
The exact default locations vary by edition and platform. Do not assume that a ROM folder is also the correct BIOS folder. The documentation recommends a dedicated system directory under the RetroArch configuration directory.
Find and change RetroArch directories
In RetroArch, open Settings → Directories. Select the directory you want to change, then use the File Browser to navigate to the desired folder. The important entries are:
Recommended Free Tools
- System/BIOS: BIOS and other platform system files.
- Savefile: battery-backed in-game saves.
- Savestate: quick save-state files.
- File Browser or Browser Directory: the starting location for Main Menu → Load Content.
- Cores: installed libretro cores.
The label for the browser directory differs between documentation and builds: the general directory guide calls it File Browser, while the Windows guide uses Browser Directory.
To identify the active configuration file, use Main Menu → Configuration File → Save Current Configuration. RetroArch displays the saved path in an on-screen notification. The relevant configuration variables are libretro_directory for cores and system_directory for BIOS/system files.
On Linux and macOS, RetroArch checks these configuration locations in this order:
$XDG_CONFIG_HOME/retroarch/retroarch.cfg
~/.config/retroarch/retroarch.cfg
~/.retroarch.cfg
/etc/retroarch.cfg
On Windows, it checks retroarch.cfg beside retroarch.exe, then %APPDATA%retroarch.cfg. The directory configuration guide covers platform-specific details.
Install a libretro core
A core is the component that actually emulates a system. For example, a Nintendo Entertainment System game needs an NES-compatible core; RetroArch itself cannot run the game without one.
Using Core Downloader
- Open Online Updater → Select Core Downloader.
- Choose the core for the original system of your game.
- Wait for the download to complete.
If Core Downloader is missing, enable it at Settings → User Interface → Menu Item Visibility → Show Core Downloader.
Core names and versions appear in the lower-left area of the Ozone, XMB, and RGUI interfaces. In GLUI, they appear in the notification bar.
Rank #2
- Hall Effect Joystick Update.
- Compatible with Switch/Switch 2, Windows, Apple, Android, Steam Deck, and Raspberry Pi.
- Compatible with iPhone, iPad, macOS and Apple TV now. (Officially Supported)
- Full-featured retro controller- clickable joysticks, rumble vibration, motion controls, wireless Bluetooth, rechargeable battery, home and screenshot Buttons and a USB-C connector
- Perfect classic d-pad.
Ubuntu PPA exception
An Ubuntu PPA installation disables the interface’s Core Downloader. Install cores through the package manager instead. For example:
sudo apt-get install libretro-nestopia
You can also begin with:
sudo apt-get install libretro-
Then use shell completion to select the complete package name. PPA-managed cores may be installed in a location that is not writable by RetroArch. Merely changing the core directory does not fix that unless the new location is writable and contains the cores you intend to use.
Prepare your game files and BIOS files
RetroArch does not supply copyrighted games. Use only content you are legally entitled to use. Place the files somewhere RetroArch can access. Organizing ROMs into system-named subfolders is optional, although it is useful for large collections.
Some cores require BIOS or other system files before they can boot content. PlayStation and PSP cores are common examples. Put those files in the configured System/BIOS directory, not automatically in the ROM directory, and follow the documentation for the specific core because filenames and required versions are core-dependent.
Android may restrict access to parts of device storage. If RetroArch cannot browse to a folder there, the problem may be an operating-system permission or storage-access limitation rather than a bad ROM.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsLaunch your first game manually
Manual launching is the fastest way to verify that a core, game file, and directory configuration work before building playlists.
- Open Main Menu → Load Core.
- Select the installed core appropriate for the game’s original platform.
- Open Main Menu → Load Content.
- Browse to the game file.
- Choose Current Core, or select another compatible core when prompted.
If several cores accept the same file extension, choose the core designed for the game’s original platform. A matching extension alone does not prove that a core is the correct choice.
Once content is running, press F1 on desktop installations to open the Quick Menu by default. To exit content cleanly, choose Close Content. This closes the game and its core and returns to the Main Menu. Pressing Esc twice quits RetroArch on PC, but can close the program before configuration changes are saved.
Every game you launch is added to the History playlist, even if you never scan your full collection.
Understand ZIP files, disc images, and archives
“ROMs must never be zipped” is not a reliable rule. RetroArch can handle ZIP files in two different ways:
- Browse archive: opens the archive so you can select a file inside it.
- Load archive: passes the archive to the core as an image or archive.
ZIP files are common in cartridge and arcade workflows. Disc-based content, including CD images and similar formats, generally should not be zipped according to the current playlist guidance. Keep multi-file disc layouts together and use the format expected by the selected core.
Rank #3
- Compatible with Windows and Android.
- 1000Hz Polling Rate (for 2.4G and wired connection)
- Hall Effect joysticks and Hall triggers. Wear-resistant metal joystick rings.
- Extra R4/L4 bumpers. Custom button mapping without using software. Turbo function.
- Refined bumpers and D-pad. Light but tactile.
Import a collection into playlists
Playlists make a large library easier to browse, but automatic scanning is deliberately strict. Before scanning, update RetroArch’s recognition data:
- Open Online Updater → Update Core Info Files.
- Choose Online Updater → Update Databases.
- Restart RetroArch if these files were just updated.
Then open Playlists → Import Content. Depending on the build and menu settings, Import Content may appear directly on the Main Menu. You can change its location at Settings → User Interface → Menu Item Visibility → Show ‘Import Content’.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Select the normal automatic scan and choose a parent folder. The scan is recursive, so subfolders are included. Large collections can take several minutes.
Why a playable game may not appear
The default scan is strict: the file’s CRC checksum or disc serial must match an entry in the libretro database. A game can launch perfectly yet fail to appear because its filename, dump, checksum, disc serial, or database entry does not match.
A compatible core should already be installed for normal scanning. You can enable Scan Without Core Match when appropriate, but that changes the recognition requirement; it does not make an unrecognized file a verified database match.
For unmatched files, use a loose or custom scan. It can add content that the database does not recognize, but those entries may have no thumbnails and will not appear in the Explore menu. A successful custom scan therefore does not necessarily mean that RetroArch identified the game through its database.
Free tools Windows power users keep installed
One-click scans. No signup required.
Add thumbnails without breaking custom artwork
After a playlist exists, use Online Updater → Playlist Thumbnails Updater, then select the console or system playlist.
Artwork matching depends on the playlist and entry names matching the names used by the thumbnail server. A manually scanned game can run correctly yet receive no artwork. The updater can also overwrite a custom thumbnail when a server thumbnail exists for the same game, so back up custom artwork or avoid updating that playlist if preserving it matters.
The documented workflow no longer provides thumbnail packs as a general option. Use playlist downloads, individual downloads, on-demand downloads, or custom thumbnails instead.
On-demand matching based on ROM filenames is disabled by default. To enable it, open Settings → Playlist → Use filenames for thumbnail matching. In RetroArch 1.17.0 and later, an individual thumbnail can be requested up to three times to try flexible matches; the on-demand browser has the same three-attempt behavior.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchKnow what an .lpl playlist contains
RetroArch 1.7.5 and later uses JSON playlist files with the .lpl extension. The older six-line format remains backward-compatible but is deprecated, so new playlists should use JSON.
Rank #4
- Wide Compatibility – Compatible with Nintendo Switch (Switch 1 only), Windows PC, Mac OS, Linux, Raspberry Pi, RetroPie, Recalbox and more. Perfect for retro gaming, emulators, and classic game systems. Not compatible with Nintendo Switch 2.
- Advanced 2.4GHz Wireless Connection Stable 2.4GHz RF wireless technology provides a fast and responsive gaming experience with up to 10 meters (32 ft) of range. No lag, no drops — just smooth gameplay.
- Simple Plug & Play Setup: No drivers or software required. Just plug the USB receiver into your device and start playing instantly. Compatible with most programs and emulator platforms that support standard USB game controllers.
- Classic Retro Design with Precision Controls Features a familiar SNES-style layout with super-sensitive buttons for accurate, responsive control. Ideal for NES, SNES, Genesis, GBA, RetroArch, BSNES, OpenEmu, and more.
- Rechargeable Battery with Long Life Built-in 240mAh rechargeable battery provides up to 3 hours of continuous gameplay. Fully charges in about 1 hour. Includes battery level indicator for convenient monitoring.
A simplified JSON entry looks like this:
{
"version": "1.0",
"items": [
{
"path": "C:\retroarch\downloads\alienar.zip",
"label": "Alien Arena",
"core_path": "DETECT",
"core_name": "DETECT",
"crc32": "01ACE2AB|crc",
"db_name": "MAME 2003-Plus.lpl"
}
]
}
Path separators must match the platform: use forward slashes on Linux, macOS, and Android; use backslashes on Windows and DOS. In Windows JSON, each backslash must be escaped as \.
Use RetroArch from a terminal
The basic Unix-style command is:
retroarch -L /path/to/libretro/core.so game.rom
For Flatpak, the documented pattern is:
flatpak run org.libretro.RetroArch/x86_64/stable
-L /home/MYUSERNAME/.var/app/org.libretro.RetroArch/config/retroarch/cores/nestopia_libretro.so
Tetris.nes
For Steam:
steam -applaunch 1118310
-L "/path/to/steamapps/common/RetroArch/cores/nestopia_libretro.so"
"/path/to/Tetris.nes"
Steam has a documented problem passing command-line arguments containing spaces. Avoid spaces in content filenames when launching this way.
The macOS executable inside the application bundle is:
/Applications/RetroArch.app/Contents/MacOS/RetroArch
Useful diagnostic and configuration options include:
retroarch --verbose
retroarch --config customconfig.cfg
retroarch --config baseconfig.cfg --appendconfig specialconfig.cfg
retroarch --help
retroarch --features
--verbose enables detailed logging and is essential information when reporting a bug. --config selects a configuration file, while --appendconfig adds a second configuration on top of a base configuration. If you launch RetroArch without content, add --menu; otherwise it may close immediately after startup.
Arcade games require a different approach
Arcade emulation is not simply a matter of trying random cores until one works. Arcade cores require core-specific ROM sets. Failure can mean that:
- the ROM set is incomplete;
- the set targets a different core or version;
- a required BIOS or parent file is missing;
- the platform does not offer the compatible core you need.
Individual arcade archives often depend on parent, BIOS, or other set files. A complete Full Non-Merged set is the simplest format for beginners because each archive contains the files needed for one game.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →For an arcade playlist, the recommended workflow is a custom scan with a DAT file rather than the ordinary automatic content-database scan. Treat scanner and rebuilder options carefully: Fix and Remove Matched Sourcefiles can rename or remove ROM files. Make a backup before using them.
A practical troubleshooting order
- Confirm the edition. If you are using Steam or an outdated Android store build, missing Core Downloader or thumbnail features may be expected.
- Confirm the core. Check the core name and version in the interface and choose one designed for the original platform.
- Test one file manually. Load the core first, then load one game. This separates launching problems from playlist problems.
- Check directories. Verify the configured File Browser, core, Savefile, Savestate, and System/BIOS paths under Settings → Directories.
- Check BIOS requirements. If the core requires system files, confirm that they are in the configured system directory and match the core’s requirements.
- Separate scanning from playback. If manual launching works but scanning fails, update Core Info Files and databases, then try a custom scan or Scan Without Core Match.
- For missing thumbnails, check playlist and entry naming, enable filename matching if appropriate, and remember that custom scans may not map to server artwork.
- For arcade failures, verify the set’s target core, parent and BIOS dependencies, and DAT compatibility before changing settings.
- For command-line failures, try
--verbose, confirm the executable and core paths, and remove spaces from Steam-launched content filenames.
The official guides for starting content, importing content, playlists and thumbnails, command-line use, and arcade setup provide the relevant platform- and core-specific details.
What a successful basic setup looks like
For a straightforward setup, install the full desktop edition, configure dedicated folders, install one appropriate core, place your legally obtained content in an accessible directory, and launch one game manually. Only after that works should you update databases, scan a collection, and download thumbnails. This order avoids mistaking playlist recognition or artwork matching for an emulation problem.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




