RetroArch Tutorial

By Alejandro Rodriguez. Last revised December 20, 2018.


About RetroArch for Android

RetroArch's home screen RetroArch's home screen

RetroArch is a multi-system emulator that supports pretty much every video game system. Atari Lynx, Neo Geo Pocket Color, WonderSwan, Game Boy Color, Game Boy Advance, NES, SNES, Virtual Boy, PC Engine/TurboGrafx-16 CD, PC-FX, Game Gear, Genesis/Mega Drive, Sega CD/Mega CD, Sega Master System, PlayStation 1, Saturn, PSP, and more! It's an open source emulator available for every operating system, and is genuinely 100% free. This tutorial is for the Android version.

The fact that RetroArch covers every video game system gives Android users a huge advantage. The available single-system emulators only cover the usual assortment of popular systems. There may be some instances where you'll have no choice but to use RetroArch.

RetroArch is particularly ideal for Android tablets and Play Store supported Chromebooks. Single-system emulators don't fare well on large screens, but RetroArch does.

The drawback with RetroArch is that it wants to do everything and cook you dinner! It's loaded with an overwhelming amount of features and customization. The result is a poor user experience. RetroArch is confusing for beginners. However, that's exactly the reason why I created this tutorial. Hopefully, I can make RetroArch easy for everyone :)

You can find RetroArch for download in the Google Play Store.

First-time setup (important!)

Downloading cores in the online updater

RetroArch doesn't come packaged with its 'cores' (its video game emulators). The authors of RetroArch are mindful of the limited space we have on our Android devices. Maybe you just want to use RetroArch for SNES emulation? Well then, only download the SNES cores.

You access the core updater screen by going to Online Updater > Core Updater, as shown to the right. Then select the systems you want.

That's all there is to it! Once you download a core it becomes available immediately. So if you download an SNES core then you can immediately proceed to playing your SNES ROMs.

If you're finding the list of cores confusing, continue reading below.

Understanding the cores

Browsing through RetroArch's massive cores list, you're going to see cores listed like this:

  • Game Boy Advance (Beetle GBA)
  • Game Boy Advance (gpSP)
  • Game Boy Advance (Meteor)
  • Game Boy Advance (mGBA)
  • Game Boy Advance (VBA Next)
  • Game Boy Advance (VBA-M)

So what does all that mean? I don't know how involved you are with video game emulation, but enthusiasts take emulation very seriously. RetroArch wants to satisfy everyone's OCD for perfection by offering a variety of cores for specific emulators. As a beginner, I'm sure this list will mean nothing to you. Just pick whichever one you want. Any core will run good enough for you.

The only cores that might matter to you are the ones listed like this:

  • SNES / Super Famicon (bsnes Accuracy)
  • SNES / Super Famicon (bsnes Balanced)
  • SNES / Super Famicon (bsnes Performance)

'Accuracy' is for higher end Android devices that can handle a CPU demanding core. 'Performance' is for lower end Android devices. 'Balanced' is in the middle of the two.

Deleting a core

RetroArch's interface makes it easy to accidentally download an unwanted core. The following directions are how you can delete a core. It's oddly several steps and not a convenient process.

  1. On the home tab Home button, go to Load Core and select the core you want to delete.
  2. At the very top, you should see the header updated with the core you chose. On the home tab Home button, scroll down and select Information.
  3. On the Information screen, select Core Information.
  4. On the Core Information screen, scroll all the way down and you'll find an option for Delete core. Select it to delete the core.

Required BIOS files

The following video game systems require these BIOS files in order for games to work. You don't need every single region. For example, if you only intend to play US games, you only need the US region BIOS.

  • PlayStation 1
    • scph5500.bin - required for Japan-region games.
    • scph5501.bin - required for North America/US-region games.
    • scph5502.bin - required for Europe-region games.
  • Sega CD/Mega CD
    • bios_CD_J.bin - required for Japan-region games.
    • bios_CD_U.bin - required for North America/US-region games.
    • bios_CD_E.bin - required for Europe-region games.
  • PC Engine CD/TurboGrafx16-CD
    • syscard3.pce - general BIOS required for all regions.
  • Sega Saturn
    • mpr-17933.bin - required for North America/US-region and Europe-region games.
    • sega_101.bin - required for Japan-region games.
  • Arcade (MAME)
    • - required for NeoGeo games.
BIOS files in RetroArch's system folder BIOS files in RetroArch's system folder

These BIOS files are CASE SENSITIVE. Depending on which website you downloaded them from, they may be named differently. Make sure every BIOS is named exactly as you see it above. Speaking of where to download BIOS files, you can grab all of them from my emulators page.

Extract the BIOS file(s) from their ZIP file. Place all of the BIOS files in RetroArch's “system” folder in one of two ways:

  1. If you have your Android device plugged into your computer, simply copy over the BIOS files to the RetroArch's “system” folder. The RetroArch folder will be there in the initial list of folders when you first open your phone.
  2. If you downloaded the BIOS files using your device's Internet browser, they'll all be in the “Downloads” folder. You'll need a file manager app to move them to RetroArch's folder. It doesn't matter which one you use. Your Android device probably has a file manager app pre-installed. If it doesn't, try Astro File Manager.
    • File manager apps are normally user-friendly. You might have an advanced one that'll start you at the true root of your device. In that case, find RetroArch's folder by going to storage > emulated > 0 > RetroArch.

The BIOS file directory

As I pointed out above, RetroArch currently defaults to the “system” folder for the placement of your BIOS files. Previous versions of RetroArch defaulted to the root folder. This can cause some confusion. If you're having trouble with placement of the BIOS, know you can find out what the default directory is set to for BIOS files and you can change it. Here's how:

  1. Press the sprocket Settings and scroll down to select Directory - as shown here .
  2. At the top, you'll see “System/BIOS”. This tells you the current default path for BIOS files. You may want to rotate your Android device so you can see the full path. Or you can gently press and hold it for the full path to slide into view.
  3. If you want to change the path to the BIOS files, press it to select the new location.

Where to place ROMs?

RetroArch doesn't care where your ROMs are. You can organize them however you want. What I recommend doing is (using a file manager app) create a new folder called “ROMs”. Then inside there create folders for “SNES”, “Genesis”, etc.

Loading a game

RetroArch offers two different ways to load games. You can either (1) have RetroArch scan for ROMs to build an easily accessible list for you, or (2) load a game manually in the traditional manner.

ROMs can remain in zip files, but ISOs needs to be extracted from their archives. ROM sites deliver ISOs in either ZIP, RAR, or 7Z format.

  • On a PC: Windows can extract ZIP files by default. To extract a RAR or 7Z file you can use 7-Zip (it's free).
  • On an Android device: To extract a ZIP, RAR, or 7Z file you can use ZArchiver.

And don't forget that PlayStation 1, Saturn, Sega CD/Mega CD, and PC Engine CD/TurboGrafx16-CD games require the BIOS.

Scanning for games

This step is optional. What this process does is build a list of all your games within RetroArch so you don't have to fuss with selecting multiple folders every time you want to play your games. Here's how to scan for games:

  1. Select the list icon List icon then Scan Directory - as shown here .
  2. Navigate your device for your ROMs folder then select Scan this directory. Depending on the number of games you have, this scanning process could take maybe 1-10 minutes.
  3. When finished, all your games will appear in this list tab List icon. It'll look something like this .
  4. Select on a game you want to play. From there select Run, select the core you want to use, then select Run again - as shown here .

Manually loading games

Manually loading a game

Make sure you downloaded the cores for the systems you want to play games for. And keep in mind that Sega CD/TurboGrafx16-CD games require some extra steps.

  1. In the home tab Home button select Load Content > /Storage/Emulated/0.
  2. Navigate to your ROM and select it.
  3. Select Load Archive, then select the core you want to use. Your game will start. Enjoy!

Q: Games don't fill the screen!

Depending on your Android device, when RetroArch loads a game the screen may not entirely fill the screen. The image is shrunken in the center with too much black space all around it. This has an easy fix.

  1. Press the sprocket Settings and select Video.
  2. Scroll down to Integer Scale and press it to disable it. That's it! If a game is currently running, restart it to see the corrected screen.

Q: The screen feels squished

Depending on your Android device, when RetroArch loads a game the screen might feel squished to you. This has an easy fix.

  1. Press the sprocket Settings and select Video.
  2. Scroll down to Aspect Ratio and press it to bring up a list of options. By default, RetroArch is set to “1:1 PAR (4:3 DAR)”. Try maybe “16:9”; press it and load a game to see if the image stretches better. Play around with different aspect ratios to find the desired result. Don't forget that every time you choose a different aspect ratio, you need to load a new game or restart your current game to see the change.

Loading Sega CD & TurboGrafx16-CD games

Websites that distribute Sega CD/Mega CD games & PC Engine CD/TurboGrafx16-CD games deliver them in one of two formats:


ISO/MP3 games require special preparation in order to work with RetroArch (and all other multi-system emulators). All the MP3s need to be converted to WAV, and the CUE sheet needs to be edited for the MP3-to-WAV change. My Mednafen tutorial covers this process in detail. It's the same exact process for both Sega CD/Mega CD & PC Engine CD/TurboGrafx16-CD games - with one little string attached. Some games such as Shining Force CD require the audio tracks in the CUE sheet to be called BINARY instead of WAVE or WAV in order for music to work when the game is loaded.

BIN/CUE games require no special preparation. They will work out of the box. Just make sure it's extracted from its ZIP or RAR file.

With a properly prepared ISO, the next steps are easy. All you do is copy over the proper BIOS in RetroArch's root folder. To play your game, load its CUE sheet as if it were a ROM.

Notes about PlayStation 1

Firstly, I want to discourage you from using RetroArch for PlayStation 1 emulation. ePSXe is a far better emulator. Emulation quality is better and it's easy to use. Particularly, ePSXe makes it easy to swap CDs, while RetroArch makes it a hassle. RetroArch isn't bad if you just want to play a couple (single CD) games, and if you absolutely don't want to pay $4 US for ePSXe.

If you want to proceed using RetroArch, here are some PlayStation 1 emulation notes:

  • RetroArch only accepts PlayStation 1 ISOs that are in “BIN/CUE” or “ISO” format. Like below:
    A BIN/CUE and ISO
    If the PlayStation 1 ISO you downloaded came in a weird format such as NRG, IMG, UIF, DAA, CDI, XBX, B51, BWI, etc. - they are not supported.
  • As pointed out in loading a game, ISOs need to be extracted from their archives. Sometimes ROM sites deliver PlayStation 1 ISOs in ECM format. To extract an ECM file watch this video. This process can only be done on Windows.
  • Don't forget that PlayStation 1 games require the BIOS in order to run.

Notes about Saturn

Firstly, I want to discourage you from using RetroArch for Sega Saturn emulation. Yaba Sanshiro's Saturn emulator (a.k.a. ouYabause) is a far better emulator. Emulation quality is excellent and it's easy to use. And at the time I'm writing this, it's actively in development.

If you want to proceed using RetroArch, here are some Saturn emulation notes:

  • RetroArch only accepts Saturn ISOs that are in “BIN/CUE” or “ISO” format. Reference the picture in PlayStation 1 notes to see what those look like.
  • RetroArch and other multi-system emulators added a problem that complicates things further with Saturn emulation. RetroArch has poor ISO compatibility (not to be confused with game-specific compatibility). There is maybe a 50/50 chance that RetroArch will reject your Saturn ISO, giving you an empty black screen. It especially likes to reject fan translated games (so much for playing Shining Force 3). The only way to resolve this is to try downloading the failed Saturn game(s) from other ROM sites, and cross your fingers and hope it'll work with RetroArch. Or you can switch to Yaba Sanshiro's Saturn emulator.
  • Don't forget that Saturn games require the BIOS in order to run.

Notes about N64

Firstly, I recommend using Mupen64Plus over RetroArch for N64 emulation. It's free and far better.

Upon loading an N64 game in RetroArch, you're going to find that the direction pad doesn't work. That's because you need to press the left-most Joystick button to change it to a joystick type of pad. I talk more about this below in “Navigating the screen overlay”.

As I explain in changing the screen overlay, you also have the option of swapping the screen overlay for a specialized N64 overlay.

Navigating the screen overlay

The 'screen overlay' is the virtual gamepad. Here's what each of those icons at the top do:

The screen overlay
  • Joystick The left-most circle icon changes the D-pad to a joystick type of pad. This is helpful for 3D games.
  • Bigger buttons The “A” icon makes the D-pad and main buttons bigger. This is helpful if you feel the buttons are too small.
  • Menu This is the most important icon, which takes you back to RetroArch's menus.
  • Reduce overlay The circling arrow icon arranges the screen overlay for when you're holding your smartphone in portrait. Hence, you can play games as if you're holding a Game Boy Color.
  • Joystick The right-most circle icon adds in a joystick type of pad to the existing set of buttons. This is helpful for 3D games.
  • Hiding the screen overlay The caret icon hides the screen overlay. This is useful when you've connected a Bluetooth gamepad and have no use for the screen overlay.

Changing the screen overlay

Sample of the N64 screen overlay Sample of the N64 screen overlay

The default screen overlay is pretty good for playing most types of classic video games. But remember you're using RetroArch - you can customize everything! It offers a variety of screen overlays for you.

Here's where they are:

Changing the screen overlay
  1. Press the sprocket Settings and select Onscreen display.
  2. Then select Onscreen overlay > Overlay Preset.
  3. You'll arrive at the list of onscreen displays. You have lots of options here! Select the folder for the video game system you want. The “flat” folder also has some nice options. Select the “cfg” file for the new onscreen overlay you want.
  4. Play a game and enjoy your new virtual gamepad!

*If you want to revert back to the default gamepad, go to flat > retropad.cfg.

The quick menu

I mention the quick menu a lot in this tutorial. The quick menu is where all the goodies are during gameplay: changing shaders, using save states, using cheats, etc. Here's how to access it:

  1. First, you need a game to be running.
  2. Press the Menu button button.
  3. Navigate to the home tab Home button (if you're not there already) and select Quick Menu - as shown here .

Shaders (screen filters)

Screen shaders (called 'screen filters' in other emulators) render your screen in a variety of ways to make it look sharper and beautiful. By default, RetroArch uses a basic shader that only blurs the screen a little bit. You can change it to something a lot better! Here's how:

Applying a shader
  1. During gameplay, press Menu button for the quick menu then scroll down to select Shaders.
  2. Select Shader Preset > shaders_glsl.
    • What are GLSL and slang? GLSL are shaders that work on a wide range of platforms including phones and tablets. Slang are shaders compatible with the new Vulkan renderer. They both should work fine on your Android device, so it doesn't really matter which one you choose.
  3. You'll arrive at the shaders folder, which is full of sub folders. Take a little time to explore these folders. When you're ready to try a shader out, select the “glslp” file for it.
  4. Finally, select Apply Changes for the shader to take effect on your game. This is a global change; all games will be using this shader you just selected.

Not sure which shader to pick? Keep reading.

The Shaders

RetroArch offers an overwhelming amount of shaders. I think the count is well over 50. On your smartphone's small screen you won't even notice the subtle differences between most of them. I'm going to make it easy for you and recommend only 2 shaders.

Configuring a Bluetooth gamepad

Configuring a Bluetooth gamepad
  1. First, pair your gamepad with your Android device. I have directions for doing so in my Android Video Game Emulators tutorial.
  2. Press the sprocket Settings and select Input.
  3. Scroll down and select Input User 1 Binds.
  4. Scroll down and proceed to configure every button on your gamepad. Select the button you want to configure. When RetroArch prompts you for the new button, select the button on your gamepad you want it set to. This screen is easier to read if you rotate your smartphone.

Lastly, when a game is running, press the Hiding the screen overlay icon to hide the screen overlay.

CD swapping for multiple-CD games

Setting up support for games with multiple CDs

This is a weird, confusing process. To automatically load the next disc of a game, you will need a .m3u file. To make one, simply create a text file and name it after your game. Within the text file, write the names of the .cue sheets for your game discs as such:

  • Game (Disc 1).cue
  • Game (Disc 2).cue
  • Game (Disc 3).cue

Save the .txt file and then change the file extension to .m3u. Run the .m3u, rather than the .cue of the first disc and the first disc will load. When you get to the end of that disc, the next disc will be automatically loaded. For this method to work, shared memory cards must be used for the games in the playlist.

Creating shared memory cards

Create psx.cfg, and add the line: filesys.fname_sav %s.%X. Here's the full documentation. Emulation bugs, crashes and save states can corrupt your memory card data.

Save states

Save states is a feature that saves the exact spot you are in any game. You can recall your save state at any time. RetroArch allows you to save any amount of different saved states that you want.

When you reach a point in a game that you want to save a state, press Menu button for the quick menu and look for these options:

RetroArch's save state functions
  • Save State - Selecting Save State will save the exact spot that you are currently at in your game.
  • Load State - Selecting Load State will load your saved state.
  • State Slot - This allows you to select different slots so that you can have multiple save states. By default, this is set to slot 0. If you select it, it will increment to slot 1. If you keep selecting it, it will continue to increment (infinitely). There's no way to increment backward. However, if you press and hold it, it will reset back to slot 0.

Are you confused with how the slots work? I'll elaborate. Let's say the Save Slot is set to slot 0. You save a state at the beginning of level 5 in Super Mario Bros. Then you change the save slot to slot 1. Then you save a state at the beginning of level 7. Your save at level 5 is still preserved in slot 0, and you can access it when you change the save slot back to slot 0.

Capturing screenshots

During gameplay, press Menu button for the quick menu then scroll down to select Take Screenshot, which is this button:
Take Screenshot

The screen shot will be captured with the shader; it won't be hard pixels like how most emulators capture screenshots. RetroArch will dump the screen shot as a PNG in its “screenshots” folder. This folder will immediately become visible in the Google Photos app along with your screen shot.

Using cheats

RetroArch has a massive collection of cheats pre-downloaded! Here's how to use them:

Using cheats
  1. Press Menu button for the quick menu then Cheats > Load Cheat File.
  2. You'll arrive at the cheats list. Select the video game system for your game, select your game, then select the cheats you want. Upon press, the cheats toggle on/off.
  3. Lastly, go back to the first cheats screen and select Apply Changes. This last step is important! If you forget it the cheats will not take effect.
  4. Resume your game and enjoy the cheats :)

There's one caveat with using RetroArch's pre-downloaded cheats. Quite a few of them don't work. These cheats are largely untested. You may have to add your own cheats. Read below to learn how.

Also, note that cheats need to be activated every time you start the game. So once you close and re-open the game, you need to go through these steps again to load the CHT file and turn on your preferred cheats.

Adding your own cheats

Adding your own cheats is a slightly involved process. You can't do it through RetroArch's GUI. You need to create a text file and add the cheats using RetroArch's format. There are several ways you can do this. I think this is the easiest and fastest way:

  1. Using a file manager app on your Android device, go to RetroArch > cheats. Grab a CHT file (doesn't matter which one) and share it to your preferred cloud. I recommend Dropbox or Google Drive.
  2. Download the CHT file to your PC. Open it in WordPad (not Notepad).
  3. The file will look something like this:

    cheats = 2

    cheat0_desc = "Unlimited Energy"
    cheat0_code = "FF00F7:0003"
    cheat0_enable = false

    cheat1_desc = "Unlimited Lives"
    cheat1_code = "FF00F8:0003"
    cheat1_enable = false

    The format should be self-explanatory. At the top you put the number of cheats. Each cheat needs to be numbered in order, starting at 0. Most of RetroArch's codes are ProAction Replay. For the sake of these directions, I'm going to add some Game Genie codes. After editing the CHT file in WordPad, my finished CHT file looks like this:

    cheats = 3

    cheat0_desc = "Infinite lives"
    cheat0_code = "AX3A-AA2N"
    cheat0_enable = false

    cheat1_desc = "Invincible line 1"
    cheat1_code = "98FA-298D"
    cheat1_enable = false

    cheat2_desc = "Invincible line 2"
    cheat2_code = "AF75-7BC1"
    cheat2_enable = false

    Save the file. You should (but don't have to) change its filename to be consistent. For example, if the filename has “(Action Replay)”, change it to “(Game Genie)” if you added Game Genie codes.
  4. Transfer the CHT file back to your Android device. Using a file manager app, move it to RetroArch > cheats. You can place the CHT file wherever you want in the cheats folder. It's probably best to place it in the root so that you don't have to browse through hundreds of files to find your custom CHT file.
  5. Following the directions in using cheats, use RetroArch to select your CHT file and turn on your cheats. And don't forget to apply them.

The Dig front-end

Screenshots of Dig Screenshots of Dig

I talked about Dig in my Android emulators tutorial, and it's worth mentioning again here. The Dig emulator front-end is a really handy app! Let's say you already set up all of your emulators and ROMs on your Android device. It might be a bit tedious having to fuss through a collection of emulators and look for the ROM you want to play every single time. Dig optimizes your emulation experience by consolidating all of your games and emulators into a single, fun graphical interface!

Upon opening Dig for the first time, what it does is scan your Android device to collect the emulators you currently have installed and builds a database with all of your ROMs. Then Dig presents you with a graphical interface showing the box art for each one of your ROMs. Selecting a game takes you to a helpful profile with information about it. Pressing 'Play' immediately loads the game in your installed emulator. It's awesome!

Dig is especially helpful with RetroArch since it lacks an intuitive interface. Dig is also valuable for Chromebooks since RetroArch's interface isn't Chromebook friendly.

Q: Help! My game(s) failed to open!

You're going to encounter this sometimes. Games might fail to open or maybe they just give you an empty black screen. Here's some general troubleshooting you can try:

  • If you're trying to play a CD-based game, make sure you have the BIOS setup properly.
  • If the video game system you're using has more than one core, try running your game with those other cores. Check out the Online Updater.
  • If you're good on the two bullets above, that could mean your ROM or ISO is being rejected by RetroArch. It's either corrupt or RetroArch just doesn't like it. Try downloading your game from another website.

Q: Help! Saving isn't working!

Some people are reporting that in-game saving isn't working or save states aren't working. I haven't been able to reproduce these saving issues on my phone, so I'm not sure if this is a RetroArch issue or an issue with your Android device. I don't have a definite fix to offer you, but I can give you some suggestions that may lead you in the right direction for a potential fix.

This issue is separated into two scenarios:

If internal saving isn't working

In 8-bit/16-bit games, internal saving is when you save at a save point in an RPG. And in the PS1/N64 generation, many games offer internal saving. Here's what you can try to (hopefully) resolve internal saving issues:

Troubleshooting Attempt #1: Rule out if this is a game-specific issue. Try different games and see if you're having internal saving problems with them.

Troubleshooting Attempt #2: Rule out if this is a core-specific issue. If the video game system in question has more than one core available, try its other cores to see if the internal saving issue persists.

Troubleshooting Workaround: You can forgo internal saving and just use saves states.

If save states aren't working

I discuss how to use saves states in this guide. Save states allow you to save at any point in any game. Here's what you can try to (hopefully) resolve issues with save states:

Troubleshooting Attempt #1: Rule out if this is a game-specific issue. Try different games and see if you're having issues with save states.

Troubleshooting Attempt #2: Rule out if this is a core-specific issue. If the video game system in question has more than one core available, try its other cores to see if the save state issue persists.

Troubleshooting Attempt #3: Rule out if this is a permissions issue. Using a file manager (such as Astro File Manager), navigate to RetroArch's “states” folder (not be confused with the “saves” folder) and ensure it has read/write permissions.

Troubleshooting Attempt #4: Are you using a micro SD card on your Android device? If you are, try using the internal memory instead.

Q: Help! Save states crash games!

You may encounter that loading a save state causes a game to be broken or crash. Here's what you can try to resolve or workaround this:

Troubleshooting Attempt #1: Rule out if this is a game-specific issue. Try different games and see if you're having crash issues with loading save states.

Troubleshooting Attempt #2: Rule out if this is a core-specific issue. If the video game system in question has more than one core available, try its other cores to see if the save state crashing persists.

Troubleshooting Tip: If this is a CD-based game (an ISO), avoid saving around animated cutscenes. This is a global issue with any emulator, not just RetroArch, to cause saving issues when you save right before or during a cutscene.

Troubleshooting Workaround: If the game offers in-game saving, try using that instead.

Finding games

In my links page, I have some good links to sites where you can download ROMs and ISOs. If you want to try to find more sites than what's in my collection of links, just Google around. For example, if you want to download Final Fantasy VII just Google “download final fantasy vii psx”.