For years, Retroarch has been the indomitable platform of choice for discerning emulation connoisseurs on PC. If you’ve downloaded Retroarch and don’t know your core from your content or just want to know which cores are best for running your favorite console games, read this Retroarch for Android guide for the instructions.
Note: as usual, you should consider the somewhat hazy legalities surrounding game emulation before proceeding. The following guide doesn’t offer advice on getting your hands on ROMs and ISOs.
The first thing you need to do, of course, is install Retroarch from the Play Store. Once you’ve done that, open Retroarch, and you’ll be presented with the main menu, which may mean absolutely nothing to you if you’re unfamiliar with Retroarch.
First, let’s get some cores downloaded to your device. These are console emulators which have been adapted to work as plugins through Retroarch and can be downloaded directly through the app. Just go to “Load Core -> Download Core” and select what you want from the list.
Note that as soon as you tap a core in the list, it will download to your device. (The only way to then uninstall a core is to go to the Retroarch app settings and “Clear Data.”)
Which cores are best for which console? Below are our core picks for the most popular consoles, based on the broadest compatibility and best performance with the most games. There will be certain games that don’t quite conform to this list, but for most people, we believe that it’s optimal.
Note: cores for more demanding consoles with 3D graphics and so on (N64, PS1, Sega Saturn) will be more straining on your device. They should work fine on relatively recent devices, but older/low-end Android devices may struggle.
Best Cores in Retroarch for Android
- Game Boy Advance – mGBA
- Game Boy/Game Boy Color – Gambatte
- Nintendo (NES) – Nestopia
- Nintendo 64 – Mupen64Plus
- PlayStation – PCSX-ReARMed
- Sega Genesis/Game Gear – Genesis Plus GX (PicoDrive from Sega 32X games)
- Sega Saturn – Yabause (very strenuous performance-wise)
- Super Nintendo (SNES) – Snes9X
After you have your cores all set up, to get Retroarch to detect your games, you’ll need to get the ROMs and ISOs for your games onto your Android device. (We stress that these should be copies of games you already own.)
Once you have the games on your device, you can load them one by one by going to “Load Content,” then navigating to them from there. Alternatively, you can set up proper playlists.
To do this, tap the Playlists icon (middle option at the bottom of your Retroarch screen), then “Scan Directory.”
Select the directory where you keep your ROMs, then select “Scan This Directory.” The ROMs for each console will now be neatly contained in separate folders in the “Playlists menu.” You can select and run your games from here.
Configure Controls for Each Core
This bit can be confusing. If you’re just using the touchscreen, you don’t need to do much, as each core has its own customizable on-screen touch display to control games.
If you’re using a controller, however, you may want to do some tweaking. (If you want an idea of how to connect console controllers via Bluetooth, check out our guide on how to connect a PS4 controller to your Android device.)
To make changes to controls and so on in each individual core, you first need to load that core using “Load Core” and load a game using “Load Content” (or from your playlist).
Next, in the Retroarch main menu, you should see an option called “Quick Menu.” Tap it, then tap “Controls,” and scroll down to configure controls for that game.
Here’s the thing: you can then save those controls to apply to all games on that core (Save Core Remap File) or just to that individual game (Save Game Remap File). Select the Save option that suits your needs – then you can get back to your game.
Use a Nice Frontend
Retroarch for Android actually has some nice UI touches – for example, grabbing box art and covers for games in your collection – but if you want a more flashy way of browsing your games collection, you should try using a frontend, which conveniently organizes your entire ROM collection.
DIG is probably the best emulation frontend for Android, scanning your entire phone, then displaying all your games with some great presentation options. You still run your games through Retroarch but browse and explore them through DIG, which looks much nicer, organizes your games by genre, year, etc., and gives you nice historical synopses on your games.
For a full guide on how to set yourself up with the DIG frontend, read our DIG tutorial.
Keeping Things Up to Date
There’s something important you need to consider when using Retroarch. On the one hand, you should keep Retroarch up to date through the Play Store, but that will only update the app itself and not any of the cores, assets, thumbnail lists etc., within the app.
Every now and then you should manually update your installed cores to make sure you’re running the latest version. This will inevitably improve stability, performance and myriad other factors. In fact, if you run into trouble running a game, one of the first things you should do is update the cores.
To do this, go to the Retroarch main menu, scroll down and tap Online Updater, then tap Update Installed Cores and Update Core Info Files.
While you’re there, you should also semi-regularly tap “Update GLSL Shaders” to make sure you’re running the best versions of the shaders (more on those below). Also check out the Playlist Thumbnails Updater, which will get you nice thumbnail pictures for your games if you don’t have them already.
Shaders are filters that can be applied over various cores and individual games. They can drastically change the look of a game, for example, by filtering the textures to look smoother and less pixelated or by adding a CRT screen or NTSC filter over a game to replicate the kind of experience you have had playing it back in the 90s.
To use shaders, open a core along with a game, go to the menu -> Quick Menu -> Shaders, then tap the “Video Shaders” slider to access the Shader options.
Tap “Load Shader Preset -> shaders_glsl” to access all the shaders you can use in Retroarch. There are tons to choose from, so just go ahead and experiment with the ones you like. (CRT Easymode is a good one to recreate that 90s screen look.)
If you want to tweak a given shader, after selecting it, go to “Shader Parameters” in the Shaders menu to tweak its scanline strength, mask dots, and so on.
PS1/PS2 Emulation and BIOS
For the most part, you don’t need to worry about BIOS when running emulators and games because the relevant files are included in the emulators. BIOS files are pretty much the first thing an emulator looks for when running with a different BIOS file required depending on the global region of the game you’re playing.
With PS1 and PS2 games, however, you’ll need to find the relevant BIOS files yourself (you can find them online) and put them in the “system” folder of Retroarch on your Android device.
You can find out more details about PS1 emulation on Retroarch in our guide. It’s for the desktop version, but the same general rules apply. When it comes to BIOS, the ones you’ll need are the following:
- scph5500 (NTSC – Japan)
- scph1001 (NTSC – US)
- scph5502 – (PAL – Europe)
- scph5552 (PAL – Europe)
From the Quick Menu for a given core, you have all kinds of features. If you’re running a game, you can go to the Quick Menu to “Save State” and “Load State” (a godsend if you’re playing saveless NES games).
If you don’t have a core loaded, you can go to the “Settings menu -> Input -> Input Hotkey Binds” to set quick buttons for things like Save State, Rewind, and, crucially, “Menu toggle,” which takes you to the Retroarch menu. (On a PS4 controller, I like to set this as the PS button.)
Among the many other interesting features in the Settings menu is “Achievements,” which links Retroarch with retroachievements.org, unlocking achievements for thousands of retro games!
RetroArch and emulation are both complex things – you’re essentially mimicking entire hardware using only software, so inevitably things may go wrong during this process. Here are some of the ways to fix Retroarch when it’s not working properly on Android.
1. Games not running
The most common reason for a game not running on RetroArch is that you’re using the wrong video driver. Your two options in RetroArch are Vulkan and openGL, and it really varies between cores with regard to which is best to use.
To switch your video driver: in RetroArch go to “Settings -> Drivers,” then under Video, switch your drive between “vulkan” and “gl.”
2. RetroArch not finding games
If you use the “load folder” option to look for ROMs or games on your system, then it’s possible RetroArch won’t find them. This could be because the games don’t quite use the same file format that RetroArch is scanning for.
The good news is that you should still be able to run these games – you just need to load them manually.
Tap “Playlists (the icon at the bottom centre of RetroArch) -> Import Content,” then instead of tapping Scan Directory or Scan File, tap “Manual Scan.”
Here you can select the directory to scan, which system or core to associate scanned content with, as well as the file extensions to scan for. (You may want to check the file extension of the ROMs you’ve been struggling to scan and enter it here.)
Once you’re ready, scroll to the bottom and tap Start Scan.
3. General bugginess
If RetroArch is crashing, bugging out by not showing on-screen controls, and other minor frustrations, you may want to delete the RetroArch config file to refresh the app.
To do this: using a file manager app, navigate to the RetroArch directory on your phone (internal storage -> Retroarch -> config, by default). Find the “Retroarch-1234-56789.cfg” file (the numbers will be random) and delete the file.
Restart the app, and it should hopefully run smoother.
As you’ve probably noticed by now, Retroarch is feature-rich, making it a particularly deep and fun rabbit hole to go down. We have a bunch of fixes for the desktop version of Retroarch not working, some of which can be applied to the Android version. If you want to dabble in the dark side, see our list of the best Android hacking apps.