***GUIDE*** Arcade/Console Emulation on OpenELEC (RetroArch + Advanced Launcher)


Recommended Posts

UPDATE:  I'll admit that I cheated and used a PXE booted version of OE on a spare laptop to create this guide.  That being said, if you are going to follow this and run into an issue where you do not have access to the 'Root filesystem' in the OE file manager (which I think is the case in the LT OE template), you will need to create the appropriate source.  I will fix this in the guide and make it more "LT OE template" correct in the near future.

 

UPDATE 20NOV15:  I should mention that I only ever tested this (and confirmed working) with the Confluence skin.  I just installed Aeon MQ 6 and while RA would display its menu, I could not get it to show a game that was launched.  ADDENDUM:  Aeon MQ 6 is playing nicely after a reboot

 

UPDATE 07DEC15:  Looks like the AL github is gone.  Thanks to gridrunner for hosting the AL plugin on his dropbox:  https://www.dropbox.com/s/8nhtno2690wgbcg/advanced-launcher-master.zip?dl=0

 

Who loves old school arcade and console video games???  I DO I DO I DO!!!  But more importantly...my wife does!  :D

 

For some time now, I have been running RetroArch on one of my OE VMs that is connected to the family room TV.  Since OE is a locked down OS, accomplishing this was not an easy task.  However, some kind souls (way more knowledgeable than me) were nice enough to package RA into an OE plugin.  However, the earlier plugins were kinda cludgy, were based on old versions of RA, and there was quite a bit of massaging that had to occur after the fact to make everything work as it should...especially since they were based on older versions of OE.

 

But now, we are finally at a place where marrying OE and RA is rather simple thanks to the brilliant work of a gentleman (assumption) named tssemek on the OE forums.  You can see this thread for more information:  http://openelec.tv/forum/128-addons/78408-retroarch-addon-by-tssemek.  Add in the ability of another familiar plugin (Advanced Launcher) to scrape metadata and provide a nice frontend for RA makes things all the more appealing and provides a much higher WAF (google WAF if you don't know what it is).  tssemek was even kind enough to put together a simple wiki that I am sure (HOPE!) will grow in time:  http://sourceforge.net/p/retroarch-openelec/wiki/Home/

 

But why are we really here?  Well, Uncle John is going to walk you through the process of getting RA and Advanced Launcher nicely integrated into your OE VM(s).  :)  But first, some quick disclosures before we start:

 

1.  Going forward, each component will be referred to as the following (because I am lazy):

  • OE = OpenELEC
  • RA = RetroArch
  • AL = Advanced Launcher

2.  I am going to assume that you know how (or have already) setup your OE VM based on one of LT's OE  templates or my PXE boot method (either will work).  I have successfully tested the method I am going to outline on the following:

  • LT's OE template v5.95.3
  • OE v5.08 (PXE booted)
  • OE v6.0.0 (PXE booted)

3.  The RA plugin may be compatible with only x64 flavors (waiting for confirmation from developer).

 

4.  You will need a keyboard or some type of controller/gamepad passed through to the OE VM to configure/navigate the RA GUI and for use with the emulators (cores).  An XBOX360 controller works out of the box with RA although I think tssemek  may have configured the default input using a PlayStation controller (or other) as some of the mappings do not align (but easily fixable in the RA GUI).  The keyboard shortcuts for navigating the RA GUI are a little unorthodox (i.e. Enter is NOT Accept/OK).  They are as follows:

 

              Up/Down Arrow Keys:  Navigate RA menus

              Left/Right arrow keys:  Toggle settings

              X:  Accept/OK

              Z:  Back/Cancel

              ESC:  Exit RA

              F1:  Displays the RA GUI while in game

 

FYI...RA is defaulted to save your configuration changes on exit.  So, if you accidentally hit the ESC key, your changes will be saved.

 

5.  There will be ABSOLUTELY NO discussion of how and where to find ROMs.  MODs will remove such posts and repeat offenders could be subject to a forum ban.  You have been warned!

 

6.  I am by no means an RA expert.  I only tinker with it enough to get the stuff that I care about working.  I will try to answer questions, but RA is very much a "learn by doing" application.  The same holds true for Advanced Launcher.

 

7.  Please do not PM me.  Ask your questions in this thread.  The answer(s) provided may help someone else.  If I see a need, I will take the conversation private.

 

So, let's get started...

 

1.  Create your OE VM with GPU passthrough the way you normally would.  Make sure that both SSH and Samba are enabled (you will have this option of OE's first launch):

 

cWZbTlY.png

 

2.  In OE, navigate to System --> System Info to obtain the IP address of your OE VM (save this for later):

 

6UYQJa1.png

 

bDfCwhN.png

 

3.  Download the latest OE RAplugin:  http://sourceforge.net/projects/retroarch-openelec/files/latest/download?source=files  and the AL plugin:  https://github.com/Angelscry/plugin.program.advanced.launcher/archive/master.zip  https://www.dropbox.com/s/8nhtno2690wgbcg/advanced-launcher-master.zip?dl=0 

 

4.  If using Windows, open an Explorer window and navigate to the OE samba shares using the IP address you found in OE System --> System Info (\\OE_IP_ADDRESS):

 

bhL9hKF.png

 

5.  Copy the RA and AL plugin zips you downloaded earlier to an OE samba share of your choice (I will use 'Downloads' as an example now and for the rest of this guide):

 

Awc8mVO.png

 

6.  In OE, navigate to System --> Appearance --> File Lists and enable 'Show hidden files and directories':

 

3zX0N81.png

 

7.  In OE, navigate to System --> Add-ons.  The first time you visit this section, you will need to select 'OK' at the 'First run help...' screen:

 

8Kt22zI.png

 

fSE5iEq.png

 

NOTE:  The next step may take a few moments to complete...be patient.  You will know it is finished when you see a "Retroarch add-on enabled" popup in the bottom right corner:

 

zIPG1Lq.png

 

8.  Select 'Install from zip file'.  Navigate to 'Home folder' --> 'downloads'.  Highlight 'retroarch-full-x.x.x.zip' and select 'OK':

 

3iLb4f0.png

 

DyaEtGA.png

 

QJmOjZX.png

 

ovOShXX.png

 

9.  Repeat step #8 for the AL plugin.

 

KXWzY4r.png

 

NOTE:  The next step may take a substantial amount of time and OE may appear to be doing nothing.  It is going to extract RA and all of its 'cores' (emulators).  You will know it is complete when you see the red RA GUI.  Perform this step only once and do not touch anything until you see this screen: 

 

b0f4pug.png

 

10.  Navigate back to the OE home screen and go to 'Programs' and select 'RetroArch' AND WAIT until you see the red RA GUI:

 

JTtpHms.png

 

WOCg5Uh.png

 

b0f4pug.png

 

OK...let's test RA!  The aforementioned tssemek was kind enough to provide a test (public domain) SNES ROM...Classic Kong Complete.  :) 

 

NOTE:  Unfortunately, I cannot provide screenshots from within in the RA GUI as that functionality (F8) appears to be broken...at least for me.  If I am able to get it to work, I will update this guide with the missing screenshots at a later date.

 

11.  In the RA GUI main menu, select 'Load Content' --> 'Select File and Detect Core' --> 'snes' --> 'classickong.smc' --> 'SNES / Super Famicom (Snes9x Next)'    <-- NOTE:  You will notice that there were a LOT of available cores (emulators) for SNES and wonder why I chose the one I did.  You will learn which work ones better than others.  SNES9X_Next is my personal choice for SNES.

 

With any luck, the game should be running.  If you want to have a quick play using the keyboard, I think ENTER = START, arrows = direction and X = Jump.  I haven't bothered to figure much out beyond that.  If everything seems to be working as expected, we can continue with the configuration of Advanced Launcher.  If somethings are not working such as no sound in game (which is a common issue), most are easily addressed in the wiki I linked earlier.  If all else fails, just ask here.

 

12.  Press the ESC key to quit the game and RA.  This should bring you back to Programs.  If not, navigate to it from the OE home screen.

 

13.  Select 'Advanced Launcher'.

 

Kv0csBW.png

 

14.  Highlight 'Default' and bring up the context menu (C on the keyboard) and select 'Add New Launcher':

 

6Y6Z0CG.png

 

15.  Select 'Files launcher (e.g. game emulator)':

 

rnYQjCM.png

 

16.  Navigate to 'Root filesystem' --> 'storage' --> '.kodi' --> 'addons' -->  'plugin.retroarch'  -->  and select 'rom.sh':

 

X9QJbiZ.png

 

vlASp0Q.png

 

2zvOSlw.png

 

uhCaXP1.png

 

iMZPHk5.png

 

Pcmu9X6.png

 

17.  Select the path where your ROM files will be stored.  Since I am creating this launcher for SNES for illustration purposes, I am going to choose the path where that Classic Kong ROM already lives:  Root filsystem -->  storage --> retroarch --> rom --> snes 

 

18.  Next, you need to tell RA what extensions your SNES ROMs have.  Typical are 'sfc' and 'smc'.  Honestly, I am not sure if zip and 7z work as I extract everything.  Separate extensions with a pipe (|) and select Done when finished:

 

dimxZXv.png

 

19.  Now we ant to specify the snes9x_next core for SNES.  So, in the 'Application arguments' box enter:  snes9x_next "%rom%"  and select Done:

 

B8t48ri.png

 

20.  Now give the launcher a name (snes) and select 'Done':

 

rH4Jh9u.png

 

21.  Select 'Super Nintendo Entertainment System' for the platform:

 

q95qDdV.png

 

22.  On the next 2 screens, select a thumbnail path and fanart path and OK each.  This is a predefined location that I chose for AL to save artwork (i.e. 'Root filsystem\storage\retroarch\artwork\snes\thumbs' and 'Root filsystem\storage\retroarch\artwork\snes\fanart' respectively).

 

23.  Once you select your thumb\fanart paths and OK, you will be brought back to the list of launchers (only one so far).  We now need to tell AL to add games to this launcher.  Highlight 'snes' and bring up the context menu (C on the keyboard) and select 'Add items':

 

rRjMfVt.png

 

24.  Select 'Scan for New Items':

 

g000nnz.png

 

25.  You should see a popup in the bottom right corner that says '1 imported file' (or something like that).

 

26.  Select the 'snes' launcher and then select 'classickong'.  You should now be seeing the Classic Kong game running.  However, there is a good chance that you may not have sound.  Check the WiKi.  There is a section dedicated to AL and a particular sound issue (requires editing an AL python script).

 

Well, my head hurts.  That is all that I am going to cover now.  I leave to all of you to learn RA, AL, etc.  You need to figure out how to configure controllers...how to add new launchers and games...how to accurately scrape for metadata...all stuff I really don't want to get into here.

 

Enjoy and happy gaming!

 

John

Link to comment

TIPS and Tricks

 

  • If you do not get sound in RA, you probably need to tell it which audio card to use.  See this item in the wiki:  http://sourceforge.net/p/retroarch-openelec/wiki/audio/  NOTE:  there is a typo that I alerted the author about.  The path to the CFG file is ~/retroarch/retroarch-1.2.2/config/retroarch.cfg (not ~/retroarch/default/config/retroarch.cfg).
  • If you get sound when you launch RA manually but not when you launch it via AL, you will need to make a change to one of the AL python scripts.  See here:  http://sourceforge.net/p/retroarch-openelec/wiki/advlauncher/
  • Make use of your awesome array!  :)  Rather than store ROMs on your cache drive (which may be space limited), configure OE to connect to an SMB, NFS or 9P share on your array and store your ROMs there.  I beleive 9P is explained in the unRAID wiki.  Be aware that AL does not like OE source paths that are created via SMB/NFS shares.  I had to follow the process on the OE wiki to create a mount point to get it to work  http://wiki.openelec.tv/index.php?title=Mounting_network_shares
  • You can set RA to save a different configuration per core.  This is especially helpful if you want to configure you controller mappings differently between platforms (i.e. NES vs. N64).  To do so, in the RA GUI navigate to Settings --> Configuration and enable "Configuration Per-Core".  You will now end up with a different CFG file in the same location as the main one for every core you have launched.
  • If you use XBOX360 controllers, you will probably want to configure your Select + Start buttons as an "Exit Emulator" function.  The easiest way of doing this is to edit the retroarch.cfg file (~/retroarch/retroarch-1.2.2/config/retroarch.cfg) and set following:
          input_enable_hotkey_btn = "6"
          input_exit_emulator_btn = "7"
    Now when you push Select and Start simultaneously, RA will instantly exit and take you back to Kodi.
  • If you want a true old-school experience, you can set all kinds of option in RA to give the game a true-to-the-times look such as scanlines, overlays, etc.  I don't mess with this stuff really but there is plenty of reading out there in the interwebs.
  • The list of available RA cores (ever-growing) can be found here:  http://wiki.libretro.com/index.php?title=Main_Page#Core_Software_Library  Clicking on anyone of them will provide more information about that core.
  • By default, AL is not configured to scrape metadata so you will need to turn this on in the plugin settings for 3 things:  Info, Thumbs and Fanart.

Link to comment

Nice write up. Is there any benefit to using this over the Internet Archive Rom Launcher Add-on (http://forum.kodi.tv/showthread.php?tid=231339)?

 

Well, RetroPlayer builds are still very immature.  Last I checked, only a few cores were supported.

 

If you don't use a RetroPlayer build, you will need an emulator (like RetroArch).  IARL doe not have a native emulator built in.  That being said, I don't see a reason why you can't use IARL in combination with the RA plugin I listed above.  But, I haven't really researched that.  Just the fact that their announcement page lists RA tells me it can be done though.

 

I have all of my ROMs on my local network so I really have no need to IARL.

 

John

Link to comment

I'm using the limetech OE image with RA and IARL and it works great. My only complaint is the amount of games. I will probably move to using AL at some point so I can have quicker access to the games I actually want to play.

 

If I can configure IARL to look only at local content (including metadata), I'll probably move to that since the interface is a lot nicer (not to mention that AL is no longer actively developed).  My main concern is that content is available since my wife is the primary user which is why IARL in its native state worries me a bit.  I don't need calls at work from my wife saying "Bubble Bobble isn't working!".  :)

 

John

Link to comment

Hi johnoden, thanks for a great guide, got both installed on limetech's OE VM.

 

Can I ask how are you all controlling this VM?

 

I have been trying to pass through a wireless xbox360 receiver but have had no joy whatsoever.

I've only passed it through using device id (tick box on edit VM screen), obviously plugged in with the VM off.

The controller doesn't even seem to sync with the receiver (all lights on the ring just flash).

However same method with a wireless mini kb/touchpad combo usb dongle works fine (but the kb/touchpad is awful to use).

 

only other point to note is I plugged in the xbox receiver into my openelec pi and the ring doesn't flash (solid top left light) like its connected, it still doesn't control kodi though :(

 

Link to comment

Thank you very much for this write up, everything is pretty much working, except the exit emulator button.

 

Any tips for getting this working?

 

I haveb tried copy the code mentioned with no effect, I'm using an Xbox360 compatible controller

http://gaming.logitech.com/en-au/product/f310-gamepad

 

I use a combination of Start + Back (Select) on my 360 controller.  The easiest way I found to do this is to edit the retroarch.cfg file manually via nano (SSH).  Set the 'input_enable_hotkey_btn' = 6 and 'input_exit_emulator_btn' = 7.  For me, button 6 = Back and button 7 = Start.

 

John

 

Link to comment

Is there any easy way to confirm which numbers my back and start buttons are?  I have tried editing the file to those suggested but it didn't work.

 

Search in your retroarch.cfg for 'start_btn' and 'select_btn'.  Mine are 7 and 6 respectively but I remember in the seeing them as 9 and 8 on other builds.

 

Link to comment

Is this the part where I feel embarrassed for not doing something?

 

I didn't do any actual configuring, when RA starts the controller is detected and works straight away, and works in the test game.

 

In the RA GUI, go to Settings, Input and select User 1 Bind All.  It will walk you through configuring your controls.  Afterwards, If you want the left analog stick to map the same as the D-pad, set "User 1 Analog To Digital Type" = Left Analog.  This allows you to use the left analog stick instead of the d-pad in NES and such.

 

After you config the controls, exit out of the RA GUI and manually edit the retroarch.cfg.  You should not see your Start and Select buttons mapped to 7 and 6...or 9 and 8.

  Use those values to set your Hotkey and Exit Emulator buttons also as I described above.

John

Link to comment
  • 3 weeks later...
  • 3 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.