Back in college my friends and I would pass the time during class by playing classic NES, SNES, and SEGA Genesis games with emulators on our laptops. The recent popularity of the NES Classic Edition has resulted in a revival of classic 8 bit and 16 bit emulation. I've long kept emulators on my Android phones (I prefer the ones made by Robert Broglia), but after purchasing my Amazon Fire HD 8 tablet last year I got the idea that I would really enjoy being able to play games on the larger screen. Add in a gamepad and I'd have a pretty sweet portable gaming machine.
That sounds great, except that the Fire OS is totally locked down. There aren't emulators in the Amazon app store, and the OS doesn't support bluetooth gamepads. A challenge to work with? Yup. Impossible? Not at all! After some trial and error, I finally got it working, and it was worth the effort. For me, this very much enhances the value of this sub-$100 product that's already a great value. The Fire HD 8 is a wonderful travel device for reading books, watching movies, and – with a gamepad and 15 minutes of work – playing retro games. All without an internet connection.
The new RetroArch 64 improves performance for a lot of its emulators. Anyone who frequently uses emulators on Android or other platforms will be more than familiar with the name RetroArch. The popular modular multi-platform emulator container has just been updated to version 1.7.4, with its main new change being the fact that the app for 64-bit capable devices has also been released, making it possible for consoles like PSX or Gamecube to substantially improve their performance. Hey guys, I was wondering if you can help me out with the issue. I have an OTG cable connected to amazon firestick and i am trying to use Retroarch app to play old Games, I am mostly interested in Ps2 games, but as you know USB drives connect to OTG should be Fat32, so the maximum capacity of its is 4gb, is there any possibility to play PS2 iso games on Retroarch on firestick using other.
What You'll Need
- Amazon Fire HD 8 Tablet
- Bluetooth gamepad that can be used in keyboard mode – I like the 8Bitdo NES30, available on Amazon
- Bluetooth keyboard for setup, a lot of options available on Amazon for under $20
Step 1 – Install RetroArch for Android
Sas one to many join. RetroArch is open-source software that uses a single graphical interface to integrate a bunch of different emulators. So instead of downloading one emulator for NES, another for SNES, SEGA Genesis, Atari, N64, and so on, RetroArch can run them all from a unified interface. It's available on a ton of different platforms, including Android, and the Android APK is available to download outside of an app store, which is key for us.
Before installation though, you'll need to allow third party apps to be installed on your Fire tablet by checking the box under Settings > Security > Apps from Unknown Sources. After you've done that, download the RetroArch APK and follow the prompts to install it.
Step 2 – Configure Your Gamepad
Since Fire OS doesn't support bluetooth gamepads, you'll end up connecting your gamepad as a bluetooth keyboard. Unfortunately, RetroArch already has some shortcuts assigned to keyboard keys that will interfere with your key mapping, so before getting started we'll need to map those to other buttons.
- Make sure that bluetooth is enabled on your tablet.
- Connect your bluetooth gamepad based upon the instructions provided by the gamepad manufacturer.
- Click every button on the gamepad and make note of each key that it's mapped to.
- Connect the bluetooth keyboard. In RetroArch navigate to Settings > Input > Input Hotkey Binds and change any key mappings that would interfere with the gamepad.
- Reconnect the gamepad and (finally!) map your keys by going to Settings > Input > Input User 1 Binds
Step 3 – Play Your Games!
RetroArch takes a bit of getting used to. Each individual emulator is called a core, which you'll need to download from within the program before using. Check out the Getting Started with RetroArch page from their official documentation and this tutorial on Reddit for more info.
You will, of course, need ROMS to play, which is outside of the scope of this post. I tend to primarily play user-generated ROMS like those available on TecmoBowl.org and NHL94.com, where games like Tecmo Super Bowl and NHL 94 are updated with current teams, rosters, and new features. ROMS of almost every classic game ever made are available online for free, however it's worth considering that there are some legal/ethical concerns. According to Lifehacker, '[t]he rule of emulator ethics is that you should have a physical copy of a game if you have a ROM.'
Enjoy! If you have any questions leave a comment below and I'll do my best to help.
Related Posts
Something that I've been meaning to do for the longest time was to set up a TV based retro gaming emulator – and it turns out that the Amazon Fire TV is a great device for doing this.
I think that in an ideal world, this would probably have been done on a Raspberry Pi with RetroPie – but currently plugged into our TV is a Chromecast, Now TV Box, and an Amazon Fire TV. I didn't really want to add a fourth device to the mix, so to keep things central, I've opted to emulate on the Amazon Fire TV.
When setting this up – I noticed that there were many tutorials out there for this, but I couldn't find a specific guide for setting all of this up on an Amazon Fire TV. Most of the tutorials were PC based, so I wanted to write a guide for those out there who want to set up retro gaming on the Fire TV.
What you'll need:
- Amazon Fire TV with Kodi installed *
- Games Controller
- Patience
* I've used the Gen 2 box, Gen 3 should be the same – I'm not sure how performance would be on Generation 1 and the Fire Sticks. Kodi version I'm using is 17.4
With that out the way – this is a pretty lengthy guide, so grab some coffee.
Installation
For the purpose of this tutorial, I'll assume that you already have Kodi installed on your Fire TV, if you don't – you can follow the same method as described for installing RetroArch below.
Installing RetroArch
RetroArch is a cross platform, all in one emulator. You'll need to download the latest APK file and sideload it the Fire TV. As of writing this, 1.6.7 is the latest version, but if there's a newer version available, use that instead.
I personally always use adbfire to sideload. You can find an easy tutorial to do that over at AFTVNews.
Installing Internet Archive ROM Launcher
This Kodi add-on does exactly what it says on the tin. It's collated ROMs that were released onto The Internet Archive and lets you browse games within Kodi and play them via the cloud.
To install – you'll need to download zachmorris' repository zip to your computer, you can then use the ‘File Manager' option in adbfire to push the .zip to your Fire TV.
Once you've transferred the .zip to your Fire TV, you'll install the add-on by: Kodi -> Add-on Browser -> Install from zip file.
When zachmorris' repository is installed, you'll then be able to install the IARL add-on by: Add-on Browser -> Zach Morris' Add-ons -> Video add-ons -> Internet Archive Rom Launcher.
It might seem a bit weird that it's listed under ‘Video add-ons' – but this is just so the add-on has the option to use the cover-art focused ViewTypes in Kodi.
Configuration
Okay, so, two things should have happened now: the RetroArch app will be on your Fire TV homepage, and The Internet Archive ROM Launcher will be under ‘Add-ons' on Kodi. The endgame of this tutorial is that you're going to be browsing the ROMs in Kodi, and have them automatically launch into RetroArch to play.
Configuring RetroArch
Before we begin, you need to know that RetroArch's UI can be a confusing pain in the ass, especially when configuring it for the first time, but the app is very powerful.
What you'll want to do first is bind your controllers buttons to RetroArch. As RetroArch is multi-platform, the default button bindings can be a bit confusing, especially as RetroArch won't know which controller you're using. I'm using a no-name wireless controller from Amazon (it looks sort of like an Xbox 360 controller and works great).
With your controller already paired up to your Fire TV, open up RetroArch -> Settings -> Input -> Input User 1 Binds. By default, I think these are configured for a PC keyboard, so bind the keys to something comfortable for you to navigate the menus with.
Downloading Cores
RetroArch uses something called cores for each console that it emulates, and these cores must be downloaded individually on a per-console basis.
'RetroArch is a modular program that runs emulators and games within its framework as if they were ‘plugins'.
These plugins are called ‘cores', and you need to install them inside RetroArch to be able to use them.'
While still in RetroArch, navigate to Main Menu -> Online Updater -> Core Updater. Here, you'll see a giant list of of consoles, most with something following it brackets:
List of RetroArch Cores
These are all of the cores that are available. I don't know if RetroArch configures this list based on the hosts' platform, so I'm not entirely sure if they're all compatible for the Fire TV. Nevertheless, you're going to want to download cores for the consoles you want. For this tutorial, we'll do the SNES.
You'll notice that each console may have more than one core, different cores may perform better/worse than others, but I'd recommend only downloading one per console. For SNES, I use Snes9x 2010 on the Fire TV, so click that. You'll see the download status appear in the bottom left corner.
Configuring Cores
You'll now have your first core! What you're going to do next is configure your newly downloaded core, so hit ‘Back' until you're at ‘Main Menu' again. This time, go into ‘Load Core', locate ‘SNES / Super Famicon (Snes9x 2010)' and click it.
Now, this is where RetroArch gets confusing: you're no longer in the RetroArch ‘Main Menu', you're in the Snes9x ‘Core Menu':
Navigating RetroArch's Snes9x Core Main Menu
Notice how the bottom left of the screenshot has changed from ‘No Core' to ‘Snes9x 2010'? That's how you know which menu you're in, so any changes you make now will only affect the Snes9x 2010 menu. Let's say you bind new input keys for the SNES (which we're about to do) – the buttons you bind here won't overwrite the input keys you set earlier for the Main Menu. The same goes for future consoles that you add.
Next, navigate to Settings -> Input -> Input User 1 Binds and configure your games controller to match that of your emulated consoles controller. I found that it helped to open a picture of a SNES controller from Google and use that as a reference.
While there are more configuration options you can set for everything else, I'm just using the default settings for everything currently, so hit ‘Back' until you're back at the ‘Snes9x Main Menu' and ‘Quit RetroArch'.
It's worth noting that – you can also use RetroArch to display and load locally stored ROMs, but I'd prefer to keep media browsing central to Kodi, so we're going to use Internet Archive ROM Launcher.
Configuring Internet Archive ROM Launcher
We're at the halfway point now! I know you're gonna want to just play some games, but we still have some more setting up to do. It's worth it, believe me.
Open up Kodi and navigate the keypad to the IARL add-on so that the UI has the icon in focus. Don't open it, instead, press the ‘Menu' button on the Fire TV remote and select ‘Settings'.
The Internet Archive ROM Launcher is a front-end for ROMs, it'll categorise everything and display cover art, but it can't emulate games, so we need to tell it to launch ROMs externally.
In the add-on settings menu, head to ‘External Launchers' and click on ‘My System Type' and select ‘Android'.
As we're running RetroArch on Android, we don't have to enter values for ‘RetroArch System Folder' and ‘CFG' (config) – as the Internet Archive ROM Launcher will automatically populate these using the default locations later.
Next, go down to ‘Setup Wizard' – for ‘Set me up for', select ‘Balanced'. I haven't tried the other options, but I figured that balanced performance should be a good default for most systems, you're obviously welcome to try the others.
Configuring different consoles
Nearly there – I promise. Remember how in RetroArch we had to set up different configurations for each console? You've got to do something similar for IARL, whereby you need to tell each console to launch RetroArch with the correct core.
Open up Internet Archive ROM Launcher, navigate to the SNES and press the ‘Menu' button to bring up the console's sub menu:
Internet Archive ROM Launcher console settings submenu
We're going to be configuring the first three options from this submenu. First, click on ‘Update Download Path' and set this to ‘Default'. This is where ROMs will download/cache to when you play.
Next, set ‘Update Launcher' to ‘External'.
Finally, click on ‘Update Ext Launcher Command' – this is where we tell our External Launcher (RetroArch) to load the correct core for our console (Snes9X 2010). So open up this menu and it'll bring up another list of cores.
List of External Launcher commands in Internet Archive ROM Launcher
This list will display all available cores for all platforms, not just the Fire TV. Conveniently, the RetroArch ones are prefixed with RetroArch, so navigate to ‘RetroArch SNES9x 2010 (SNES)' and hit ‘Okay'.
In a roundabout way, we've just told IARL: 'When I select SNES, I want you to open RetroArch and use the Snes9X 2010 core.' This part needs to be all configured correctly, else your ROMs won't launch.
You'll need to do this bit for each individual console that you've configured in RetroArch, it's a bit tedious to do, but once you've set it up once, you can go straight into launching games every time.
Playing your games
You'll finally be able to play games. The Internet Archive ROM Launcher has a huge collection of games – so navigating through lists may take some time.
Some games require you to login to play, so I'd highly recommend registering at archive.org and entering your login details in the ‘Add-on Settings' menu. (Note that IARL stores your login data in plain-text, so use different login details to your usual).
As an added quirk – RetroArch needs to not be running for Internet Archive ROM Launcher to launch games correctly. From the documentation:
'This is a limitation of the Retroarch command line in Android. To workaround this, I recommend setting up a hotkey / button combination to exit Retroarch when you exit a game – that way the next game you try will launch correctly.'
From now on, when you select a game, you'll have the option to ‘Download' or ‘Launch' the game. In most scenarios, you'll be fine with just ‘Launch', as the ROM'll be cached, though ‘Download' will obviously allow for quicker launch. When you ‘Launch' the game, it'll open up RetroArch.
Configuring Cores
You'll now have your first core! What you're going to do next is configure your newly downloaded core, so hit ‘Back' until you're at ‘Main Menu' again. This time, go into ‘Load Core', locate ‘SNES / Super Famicon (Snes9x 2010)' and click it.
Now, this is where RetroArch gets confusing: you're no longer in the RetroArch ‘Main Menu', you're in the Snes9x ‘Core Menu':
Navigating RetroArch's Snes9x Core Main Menu
Notice how the bottom left of the screenshot has changed from ‘No Core' to ‘Snes9x 2010'? That's how you know which menu you're in, so any changes you make now will only affect the Snes9x 2010 menu. Let's say you bind new input keys for the SNES (which we're about to do) – the buttons you bind here won't overwrite the input keys you set earlier for the Main Menu. The same goes for future consoles that you add.
Next, navigate to Settings -> Input -> Input User 1 Binds and configure your games controller to match that of your emulated consoles controller. I found that it helped to open a picture of a SNES controller from Google and use that as a reference.
While there are more configuration options you can set for everything else, I'm just using the default settings for everything currently, so hit ‘Back' until you're back at the ‘Snes9x Main Menu' and ‘Quit RetroArch'.
It's worth noting that – you can also use RetroArch to display and load locally stored ROMs, but I'd prefer to keep media browsing central to Kodi, so we're going to use Internet Archive ROM Launcher.
Configuring Internet Archive ROM Launcher
We're at the halfway point now! I know you're gonna want to just play some games, but we still have some more setting up to do. It's worth it, believe me.
Open up Kodi and navigate the keypad to the IARL add-on so that the UI has the icon in focus. Don't open it, instead, press the ‘Menu' button on the Fire TV remote and select ‘Settings'.
The Internet Archive ROM Launcher is a front-end for ROMs, it'll categorise everything and display cover art, but it can't emulate games, so we need to tell it to launch ROMs externally.
In the add-on settings menu, head to ‘External Launchers' and click on ‘My System Type' and select ‘Android'.
As we're running RetroArch on Android, we don't have to enter values for ‘RetroArch System Folder' and ‘CFG' (config) – as the Internet Archive ROM Launcher will automatically populate these using the default locations later.
Next, go down to ‘Setup Wizard' – for ‘Set me up for', select ‘Balanced'. I haven't tried the other options, but I figured that balanced performance should be a good default for most systems, you're obviously welcome to try the others.
Configuring different consoles
Nearly there – I promise. Remember how in RetroArch we had to set up different configurations for each console? You've got to do something similar for IARL, whereby you need to tell each console to launch RetroArch with the correct core.
Open up Internet Archive ROM Launcher, navigate to the SNES and press the ‘Menu' button to bring up the console's sub menu:
Internet Archive ROM Launcher console settings submenu
We're going to be configuring the first three options from this submenu. First, click on ‘Update Download Path' and set this to ‘Default'. This is where ROMs will download/cache to when you play.
Next, set ‘Update Launcher' to ‘External'.
Finally, click on ‘Update Ext Launcher Command' – this is where we tell our External Launcher (RetroArch) to load the correct core for our console (Snes9X 2010). So open up this menu and it'll bring up another list of cores.
List of External Launcher commands in Internet Archive ROM Launcher
This list will display all available cores for all platforms, not just the Fire TV. Conveniently, the RetroArch ones are prefixed with RetroArch, so navigate to ‘RetroArch SNES9x 2010 (SNES)' and hit ‘Okay'.
In a roundabout way, we've just told IARL: 'When I select SNES, I want you to open RetroArch and use the Snes9X 2010 core.' This part needs to be all configured correctly, else your ROMs won't launch.
You'll need to do this bit for each individual console that you've configured in RetroArch, it's a bit tedious to do, but once you've set it up once, you can go straight into launching games every time.
Playing your games
You'll finally be able to play games. The Internet Archive ROM Launcher has a huge collection of games – so navigating through lists may take some time.
Some games require you to login to play, so I'd highly recommend registering at archive.org and entering your login details in the ‘Add-on Settings' menu. (Note that IARL stores your login data in plain-text, so use different login details to your usual).
As an added quirk – RetroArch needs to not be running for Internet Archive ROM Launcher to launch games correctly. From the documentation:
'This is a limitation of the Retroarch command line in Android. To workaround this, I recommend setting up a hotkey / button combination to exit Retroarch when you exit a game – that way the next game you try will launch correctly.'
From now on, when you select a game, you'll have the option to ‘Download' or ‘Launch' the game. In most scenarios, you'll be fine with just ‘Launch', as the ROM'll be cached, though ‘Download' will obviously allow for quicker launch. When you ‘Launch' the game, it'll open up RetroArch.
Super Mario All-Stars on Fire TV via RetroArch
Wrapping things up
You should now have emulation on your Fire TV! I know that the setup is incredibly tedious, but I think that the results are absolutely worth it. You just have to be patient and experiment with the different options. It's not as intimidating as it looks, and you will get it working.
You can use the same steps as above to emulate other consoles. I'd recommend Googling around to see what cores and configurations people are using and follow suite – or experiment! It might be good to use trial and error so that you can learn for yourself.
So far, I've played SNES, PS1, and N64 on my Fire TV with excellent performance. The way I see it is that you only have to do the tedious part one time. Once you know how to set up RetroArch and Internet Archive ROM Launcher, I think that setting up a new consoles is relatively quick.
Retroarch For Firestick
If you've read through this whole post – thank you! It was a long read. Now go play some retro games, you deserve it.