For years, Retroarch has been the indomitable platform of choice for discerning emulation connoisseurs on PC. The all-in-one package designed to load up all your favorite consoles and games from one place is available for Android, too, though the intricacies of setting it up are much less talked about.
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 peoplem, 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, hit up 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 now 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.
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. From here, tap Update Installed Cores and Update Core Info Files.
While you’re here, 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), and 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’d have had playing it back in the 90s.
To use shaders, open a core along with a game, then 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 up Retroarch with retroachievements.org, unlocking achievements for thousands of retro games!
This guide should be more than enough to get you started with the wonderful Retroarch for Android. 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.