Being able to run emulators on an OpenELEC computer can be tricky. It takes a fair bit of knowledge from several different areas to setup. I’m going to try to give a good overview of putting all together into a working system. By the end you’ll have a setup that allows you to play all of your old games from the comfort of your couch.

Something to consider, the build of RetroArch I’m using doesn’t have emulators for a lot of systems. Here is a list of what it can emulate.

I’m going to break this up into sections. I’m going to assume you have OpenELEC installed and working.

Getting ROMs on OpenELEC

Be sure to organize your ROMs into folders based on their console. EG: put your SNES ROMs in a snes folder, put your NES ROMs into a nes folder, and so on.

By far the easiest way to get ROMs onto your OpenELEC computer is to put them onto a flash drive and plug it in. Once plugged in use XBMC to add a new file source pointing to the flash drive.

Go to Settings and then File Manager

Go to Settings and then File Manager

Select Add Media and then Browse

Select Add Media and then Browse

Select Root File System then Media. Your drive will be one of the folder in there. Select it.

Select Root File System then Media. Your drive will be one of the folders in there. Select it.

Once you've selected your flash drive, click OK.

Once you’ve selected your flash drive, click OK.

The file source is now added and your ROMs are now easily accessible by OpenELEC/XBMC.

Getting RetroArch working on OpenELEC

Our hero and savoir, zaggash, has written a RetroArch addon for OpenELEC which makes installing all of the emulators a breeze. First thing we need to do is download a copy of the addon and install it on OpenELEC. Go to Zaggash’s site and download build appropriate for your computer.  For instance I use the Generic build. Take that file and put it on the flash drive from the previous step and then plug the flash drive back into your OpenELEC computer. Now we need to install it.

Go back to System, then select Addon Browser. From there select Install from Zip file. Navigate to the source we created in the previous step and install the emulator.retroarch ZIP file.

Now we need to add another file source that points to RetroArch. Go back to System->File Manager->Add Source->Browse. This time select Home Directory->.xbmc->addons->emulator.retroarch->bin. Call the new source Emulator Bin.

Getting ROM Collection Browser working on OpenELEC

ROM Collection Browser is also available as an addon. It gives you a nice menu in XBMC to launch your ROMS from. You can install it via addon manager without doing anything special.

Once installed start the addon. We’ll need to add your ROMs. Here is how I would do it for Game Boy Advance ROMs.

Start ROM Collection Browser. Hit the Menu button on your remote and select Add Rom Collection->Scrape game info and artwork online->Game Boy Advance. Now we need to select where RetroArch is, open your Emulator Bin source and select retroarch.sh.

Now it will ask you for any arguments RetroArch needs to start. Change it to: vba_next “%ROM%”

Note that vba_next is the core from RetroArch. If you’re adding different game systems the core name will change. See here for a complete list of cores: http://sourceforge.net/p/zaggxbmcaddons/wiki/Core%20List/

Once it is done scrapping the artwork for your games you should be able to launch them with the remote.

Getting a controller to work on OpenELEC

For me, this was the toughest part of the setup. I tried numerous controllers and spent a lot of time banging my head against the wall. In the end I settled on a corded SNES USB controller.

Wireless XBOX 360 controller: An XBOX 360 controller will actually work just by plugging it in, problem is that the drivers included with OpenELEC are not able to control the LED lights on the controller. Where as on an XBOX the lights will go solid in a spot to represent which player you are, on OpenELEC they continue to flash, forever. If you can deal with the flashing its all good. I’ve had thoughts of taking the controller apart and removing the LEDs.

PS3 Dual Shock 3 Sixaxis: I couldn’t get the controller to work either wired or in Bluetooth mode. In both cases the OS detects it as a HID device, but never as a joystick.

Random corded USB controllers: I’ve had good luck with my SNES USB, old Microsoft Sidewinder, and Logitech USB controllers. All of which only needed to be plugged in to work.

Once you’ve made a choice on controllers you have to let RetroArch know about it. You’ll need to SSH into your OpenELEC computer. The login is root and the password is openelec.

Once logged in:

cd .xbmc/addons/emulator.retroarch/bin/
./retroarch-joyconfig

From there follow the prompts to hit the buttons on your controller. If you don’t have a button it asks for, just hit any button. If says anything about not finding a joystick, you’re in trouble.

Once down you’ll get a bunch of lines mapping buttons to action, you’ll want to copy all of this and put it at the bottom of /storage/emulators/retroarch/config/retroarch.cfg

Also at the bottom of your retroarch.cfg file add:

input_enable_hotkey_btn = 6
input_exit_emulator_btn = 7

Replace 6 and 7 with numbers representing the buttons on your controller you want to hit that will exit a ROM you’re playing. On my controller 6 and 7 represent the Select and Start buttons.

… and that’s it. You should now be able to start Rom Collection Browser, find a game with the remote, start it, play it with a controller, then return to XBMC by hitting two buttons on the controller.