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.
So 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 on.
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.”)
So 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
- 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 it 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, then 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, and then you can get back to your game.
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.
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. As you’ve probably noticed by now, Retroarch is feature-rich, making it a particularly deep and fun rabbit hole to go down.
If you have recommendations for cores that we haven’t mentioned above, do let us know in the comments.
This article was first published in Apr 2018 and was updated in July 2019.