RetroArch on the Fire TV

retroarch-plain-logo
This RetroArch Fire TV guide began life as a post on my blog about gaming on the lightest weight Fire TV, the 2014 Fire TV Stick, and kind of grew from there.  The popularity of that post is what inspired me to create this site.

RetroArch isn’t in the Amazon app store, so you’re going to have to sideload it.  This means you’ll need to enable sideloading in the Fire TV menu: Settings/Device/Developer Options/Apps from Unknown Sources.

ES File Explorer

Probably the easiest way to sideload apps is the ES File Explorer.  Once you’ve installed ES File Explorer you have lots of options.  My preferred option “Remote Manager.”  Opening remote manager will make your device an FTP anonymous server and you can then do everything from your computer.  This is far and away the fastest option.  From your PC, you can use something like WinSCP as an FTP client, or really whatever you’re comfortable with. Note that if you are using wired Ethernet on a Fire TV device, the IP address will be wrong. ES File Explorer will set up its FTP server on your Bluetooth network. I worked around this by unplugging wired Ethernet and using WiFi temporarily instead.

Download

Download the RetroArch for Android APK from the main source (click to highest version and select Android).  As of the time of this writing, the newest release is RetroArch 1.5.0 (direct link).

Install

Once you’ve copied the APK to a folder on your Fire TV (I copied it to the “downloads” folder), you can open the APK to install it.

Setup

File Locations

The first time you start RetroArch it unpacks everything and creates its basic configuration file, retroarch.cfg.  Close RetroArch (“Quit RetroArch) from the main menu), re-enable Remote Manager in ES File Explorer, and you can edit retroarch.cfg in “/Android/data/com.retroarch/files” (or /storage/emulated/0/Android/data/com.retroarch/files if you’re using another tool).

One of the things I did in my retroarch.cfg is switch some file locations from their normal locations to locations that I could access without root.  You absolutely don’t have to do this, but if you want to tinker, and you don’t have root, it’s a good idea.  Basically I looked for paths:

/data/data/com.retroarch

and changed them to:

/storage/emulated/0/Android/data/com.retroarch

You don’t want to change them all, or you’ll break RetroArch, but a few that you might change include:

  • joypad_autoconfig_dir – if you want to be able to tinker with controller autoconfig settings easily.
  • libretro_directory – if you want to be able to install cores and later delete them
  • playlist_directory – manually edit playlists
  • thumbnails – again, for manual manipulation
  • content_history_path – so you can manually edit
  • input_remapping_directory

Some things, like the autoconfig files, will need to be redownloaded after you relocate their directory.  You can do this in the RetroArch menu.




Controllers

The first thing you’re going to want to do is make sure your controller inputs work.  They *should* automatically work.  In older versions, with the Amazon Fire Game Controller, the A/B and X/Y assignments were backwards, matching the labels on the controller instead of the position on the controller.  This is because RetroArch uses a Nintendo style layout for its standard RetroPad:

Look where B and A are on the NES controller
Note the Y/B/X/A positions on the SNES controller
Gameboy, Gameboy Color, and Gameboy Advance have the same B A configuration as the NES

This made navigation confusing, and required a correction in the retroarch.cfg file (swapping menu_ok_btn and menu_cancel_btn assignments).  This is no longer necessary.  The Back key on the controller maps to “Select,” the Menu key on the controller maps to “Start,” and the Play/Pause button on the original Fire controller pulled up the RetroArch menu from with a game.  On other controllers, L+R+START+SELECT is the default, but, like everything in Retroarch, you can configure it how you want.

In the settings menu, select inputs, User 1 Binds, and Bind All.  This will cycle through all the buttons you can map and you can push the button on your controller to map them.  It goes a little fast, so be ready when you start it.  You might need to do it a second time once you’ve seen all the options.  Finally, you will want to go into the “Hotkeys” menu to set a button for the RetroArch menu, otherwise you won’t be able to get back to RetroArch from your game.

Once you have your controller like you like it, you can actually customize the layout for each core you have installed by loading that core and going back to the input setup.

Overlays

Another thing you’ll want to do is turn off overlays.  Since this APK is intended for all sorts of Android devices, many of which are touch devices, it defaults to turning on overlays for touch based controls.  Just go to setting and overlays and switch that off.

ROMs

I created a standalone directory on my Fire TV Stick for my ROMs.  From the default ES File Explorer FTP session, it’s just called /ROMS, from Fire OS’s perspective it’s located at /storage/emulated/0/ROMS.   On my Fire TV I did this on my SD Card.




Cores

Really Retroarch is a tool for running various different emulator core.  You’ll find that there are a plethora of options, and some are better and some are worse for various reasons.

NES (Famicom/Nintendo Entertainment System)

For NES I’m using Nestopia, which has been around for years.  It seems to be the best option right now.  I still have my original NES.  It’s my second console love after my Atari 2600, so I always am always going straight for the NES emulator.  I mean, Zelda, Mario, Metroid, etc.

Sega Master System, Genesis, etc.

If you want to play 8 or 16 bit Sega games, Genesis Plus GX seems to be the go-to emulator.  I was never a big Sega guy growing up, but this emulator seems to support everything from the original SG-1000 to the Genesis and Game Gear.

Gameboy/Game Boy Color

For GB/GBC I’m using Gambatte, which was far and away the best GB/GBC emulator in the testing I found from about 18 month ago.

SNES (Super Nintendo Entertainment System)

Right now I’m using SNES9x.  There is also a SNES9x Next, but the best data I could find, which was 18 months old, showed it not testing as well for compatibility as SNES9x.  Still doing more research here.

Game Boy Advanced

For GBA I’m using mGBA, which gets high marks for compatibility.

N64 (Nintendo 64)

I’ve installed Mupen64Plus, but the  2014 Fire TV Stick just doesn’t have the horsepower.  On my Gen 2 Fire TV N64 games work like a champ.  Of course, my N64 is sitting right under the TV with GoldenEye and Ocarina of Time calling to me…

MAME (Multiple Arcade Machine Emulator)

MAME is, well, really cool.  It emulates all SORTS of arcade games.  Because of this, your success with running it on the Fire TV platform is probably going to vary a lot depending on the machine that’s being emulated.

Discuss this article in the forums.


6 thoughts on “RetroArch on the Fire TV”

  1. Hey I got Retroarch installed on my 2nd gen fire stick. I just loaded up from ES explorer within the fire stick. When I launch it I can navigate with the firetv remote control, but I cannot select anything. Any ideas what’s up?

    1. I find navigation in ES Explorer with the remote a little annoying. Some menus you can only get into from one direction, so that might be it? I’ve always been able to get things done eventually, if sometimes a little slowly…

      Edit: Never mind, I just realized I misread what you said. You’re having trouble navigating inside Retroarch. I’m not sure I’ve ever tried that with anything but the game controller.

  2. I’ve tried multiple methods of installation and multiple versions of Retroarch, but I can’t get it to install on my Fire TV box. I haven’t had this kind of trouble installing anything else.

  3. Got it all installed today. In game saves and save states do not work. I feel I have exhausted looking at the standard settings. What am I missing?

  4. Fire TV stick controller does not have the “select” button for RetroArch. You can select the game with the game controller.

Leave a Reply