RetroArch, XBMC, Advanced Launcher, and you (me)

I admit I’ve only spent about 90 minutes on the interwebs looking for a solution to this, but I’m coming up totally empty.

Situation: I want to use RetroArch with an emulator set-top box that I’ve built. I am using XBMC (Xbox Media Center) as the GUI for this thing, and the Advanced Launcher addon to launch the roms.

Problem: RetroArch requires that you manually pick which core you want to use (NES, SNES, Game Boy, etc) and that means I cannot use it for multiple platforms through Advanced Launcher without first going to the Windows desktop, loading retroarch-phoenix, changing from SNES to NES, and then tabbing back in to XBMC to pick an NES game. Since I’d like to only have to use controllers to operate this thing in the future, this is obviously no good.

I am not an expert in these things. I like to think I’m a fairly intelligent individual, but my troubleshooting and problem solving skills rely HEAVILY on Google. I’m thinking that maybe the only real solution would be to have multiple installs of RetroArch on my machine and setting Advanced Launcher to a different retroarch.exe (each in a separate folder) for each platform I want to emulate.

Is there a more elegant solution that I’m missing?

As somewhat of an aside, is the Arcade emulation support in RetroArch (libretro-git-fba) only for truly old-school arcade games? I tried using it to load Marvel vs Capcom and Metal Slug 3, but I get a “failed to find valid rom in archive!” when I try to load their .zip files (MS3 has 2 .rom files and MVC had a.05a, .05a, .03d, and .04d file in the zip archive). I also tried manually selecting the .rom files in MS3 to load, but that didn’t work either.

I then picked a random old game (Airwolf.zip) which doesn’t contain ANY .rom files (only .bin and random .A# extensions) and it worked just fine. Is there a “trick” for finding compatible Arcade roms that will work with RetroArch? Or should I just look elsewhere for my Arcade emulator? (Can’t pass up Marvel vs Capcom!)

I apologize if I’m not providing enough information, or if these are trivial problems that it seems a mentally challenged 8 year old should be able to solve. I have failed. I’ll watch this thread to provide any additional information you may need.

Next on my list is to find out why closing games will sometimes leave me at the desktop instead of going back into XBMC. But that’s for another forum.

Thanks for any help you might have to offer!

Yeah, it’s actually pretty easy. RetroArch gets everything from a combination of command line switches and config files.

If you look in the RA-Phoenix log, you should be able to find exactly what commands are getting sent to retroarch.exe and you can just load that into the launcher (or else make a .bat script). You can have a different config file for each core, if you like, just point retroarch at the desired file at runtime. Likewise, the -L switch lets you specify which libretro you want to load.

Opening a command window and typing: retroarch.exe /? should tell you what CLI switches are available, IIRC.

I think I understand.

I just did it in the command line after creating a new .cfg file pointing to the NES core. I was able to open FZero for SNES and Super Mario 3 for NES back-to-back by just altering the command line slightly. So that’s an option. The trick would be figuring out how to do that in Advanced Launcher.

I’m going to play with that now.

FWIW, after typing up this post, I did create two separate retroarch folders and pointing Advanced Launcher to the different folders and that also worked fine. It’s not as “clean” of a solution as you just provided, however. It would mean I’d have 4+ RetroArch folders to maintain. One for each platform.

Follow-up: It worked!

I modified the arguments in advanced launcher from simply ("%rom%") to ("%rom%" -c retroarch-NES.cfg) where the special cfg file pointed to the BNES core in my RetroArch folder.

That means I can delete the extra folders and just operate out of one.

Next problem: How to set up RetroArch to close and kick back to XBMC without hitting the ESC key. (I’ll only be using an Xbox controller to operate this computer once everything is set up)

Newer versions of BSNES are awesome because they allow you to set a key combination to exit the emulator. Maybe I’ll have to use an AHK script or something to keep an eye on my controller input and trigger a phantom press of the ESC key when a certain combo is press (select + both bumpers, for instance)

I have the same setup as you (XBMC + Advanced Launcher + RetroArch) and I found it was easier to just use the -L switch to tell RetroArch what libretro implementation to use (example: “%rom%” -L libretro-git-fba-x86.dll).

When it comes to exiting the emulator, you should be able to map a button on your controller via RetroArch-Phoenix by going to settings -> input -> and then using the drop down menu on that page to select ‘Misc’, you should then be able to see the ‘Exit emulator’ bind (I don’t think it supports key combos though).

If you’re having an issue with XBMC being restored after exiting RetroArch then you might have to enable the XBMC setting ‘Use a fullscreen window rather than true fullscreen’, or if you prefer using true fullscreen then you could try enabling the Advanced Launcher setting ‘Toggle XBMC Fullscreen’.

In regards to your trouble with loading certain arcade roms, you should first make certain that the ‘Extract ZIPs’ box is unchecked (if you’re trying to load the game via RetroArch-Phoenix that is).

I like that idea of using -L instead of -c. None of the other configuration settings really change, so that simplifies things even further. I’ll make use of that.

I don’t want to make a new thread, but this is a new problem.

I’m setting up the Sega Genesis emulator now, and it seems that I cannot get .zip files to work via the command line/XBMC.

They’ll open find through phoenix (with extract zip checked), but I just get a black screen if I attempt to load a zip file from XBMC or the manual console in windows.

This might be a non-problem. I don’t know enough about emulators to understand the protocol for the various platforms.

Based on my posts above, it’s clear that the .zip file serves a purpose then for Arcade games, since the zip contains multiple files with different extensions. But all the NES/SNES/Genesis zip files seem to just contain individual .nes/.smc/.bin files, or simply region-differentiated versions.

Is it standard procedure to extract any and all roms that don’t appear to “need” the zip folder they are contained in? It seems I have no choice but to extract all the .bin files for the Genesis emulator, since it simply will not run via XBMC or the command line.

Am I making sense? It’s been a long 3 days…

Hm, I just tested the same scenario and it happened to me as well. I tend to extract console roms from their achives before I bring them into my game library though, I just prefer do it that away because I don’t see zip’s as necessary for those type of files.

I also didn’t see any documented command-line switch for rom extraction either, so maybe one of the devs can chime in on this one.

I just tried this (run windowed-full screen) and it absolutely DESTROYS the rom performance.

Instead of the command line only showing up for a fraction of a second before loading the rom, it hangs for 5-6 seconds, and then the roms (after taking ~20 seconds to load) get 1 frame maybe every 2 seconds. Same for audio. It takes 15-20 seconds for my mashing of the ESC key to kick in and kick me back to XBMC. That doesn’t make much sense, but it is what it is.

I’ll have to find another solution.

Interesting, I don’t notice any difference on the machine I’m using, but I have heard that there can be performance issues with having XBMC basically sitting right underneath another fullscreen application, so I suppose how well that works is dependent on your system hardware. Did both of the suggestions I made produce the same result?

I suppose as a last resort you could use EventGhost to trigger a macro that would find XBMC’s window and bring it to the foreground after RetroArch’s process is destroyed (an EG plugin called ‘Process Watcher’ can detect this).

I’m using a ZOTAC 890GX-ITX WiFi motherboard http://www.amazon.com/Zotac-890GX-ITX-Miniitx-PCIE1-Reliable/dp/B0055N2V6I and an AMD Phenom II X2 560 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103887.

It’s not a powerhouse, but it runs the emulators at max FPS (60). Just not when XBMC is in windowed mode, apparently.

So I am building a HTPC this week and my hopes are to use XBMC, Advanced Launcher and RetroArch so I have for sure found the right forum thread for that. My question is, although I have read the steps above to add the -L switch to make things work better, I have to admit I am brand new to this. I am “fairly” computer literate but like I said this is all brand new to me.

I can see the rolling of the eyes as I type this but can anyone write a detailed step by step of this process so I know exactly what I need to do? This would need to be a “Running RetroArch using XBMC and Advanced Launcher for Dummies” type post. More of a “go here and type in the following and hit enter” type post vs. “in the configuration settings just replace the -C with a -L” type post. I have no problem installing and running XBMC, Advanced Launcher and RetroArch on the PC but to get them all to jive together seamlessly seems like it might be a bit of an undertaking for me.

Thanks in advance! I can’t wait to get all this working soon…Newegg is delivering all the parts today!

I’m not sure how detailed you want, but I’ll explain the steps needed to get you started at least. This assumes you already have XBMC, Advanced Launcher and RetroArch (as well as the specific libretro *.dll implementations you want to use downloaded via RetroArch-Phoenix) already installed on your computer.

You’ll also want to make sure your ROMs are named in an intelligible manner, such as Super Mario Bros. 3 instead of smb3, to aid the info and artwork scraper in Advanced Launcher (though an exception should be made for arcade ROMs which tend to have a standardized naming scheme).

1) Launch XBMC and navigate to Programs -> Advanced Launcher. The ‘Launcher Type’ dialog should automatically pop-up if you have not setup Advanced Launcher before (if not, use XBMC’s context menu and select ‘Create New Launcher’).

2) Choose the ‘File launcher’ option on the ‘Launcher Type’ dialog. Advanced Launcher will display a file browser view, use it to navigate to the location of ‘retroarch.exe’.

3) On the following dialog, navigate to the location of the folder that contains the ROMs for the specific console platform you want to setup (SNES for example).

4) Afterwards, a files extensions dialog will be displayed, enter the file extensions that you’re likely to use for the platform (SNES example: sfc|smc|zip).

5) Next, an ‘Application arguments’ dialog will be displayed, use it to enter command-line arguments for retroarch.exe (SNES example: “%rom%” -L libretro-089-bsnes-compat-x86.dll).

6) The next few dialogs are fairly straight forward: Set the title of the launcher (example: SNES), Select the platform (example: Super Nintendo Entertainment System), Select Thumbnails path (anywhere you want, used for storing game box art), Select Fanart path (anywhere you want, used for storing backdrop art).

7) Use XBMC’s context menu on your newly created launcher and select ‘Add Items’, and then ‘Scan for New Items’. If successful, you should be taken to a list of all the ROMs found for the specific launcher you just set up.

8) You can now try to launch one of the games by selecting it. Use whichever button you have set to exit RetroArch (ESC by default) to return back to XBMC.

This should get you up and running, but let us know if you run into any problems.

Good luck, and have fun building your new HTPC!

Awesome post, Elysium. I’m sure that’ll be very helpful for a lot of people.

Elysium, that was fantastic. Thank you very much. I just got the new system built last night and I can’t wait to get into this over the weekend. I will let you guys know if I have any further questions. I appreciate the effort on the explanations and helping out a noob. Not all forums are as “friendly”.

Hey…one more quick question. I haven’t read through the entire thread you posted yet on launching, scanning and retreiving artwork so forgive me if this answer is in that thread and if so feel free to say so…but, does the program grab artwork from the internet automatically or do you have to search out your own artwork and store it locally and then program the system to retreive it. I am assuming the latter of those two is the correct answer but I wanted to ask to make sure…if that is the correct answer do you guys know of an online repository for game artwork or where is the best place to get it?

Again many thanks for the walkthough and the answers.

I got XBMC setup tonight and needless to say I am impressed. I answered my question above pretty quickly in that it grabs the art from the internet for you. Fantastic. I got RetroArch to run on the HTPC and now tomorrow I will work on getting it loaded through Advanced Launcher. So far all is well…thanks guys.

I got everything setup in XBMC using Advanced Launcher no problem. Thanks to Elysium because without that step by step I would have NEVER gotten that right. Many thanks.

All ROMs in the folder are added, the launcher is setup correctly, I added in the argument, etc…etc… My only problem now is that when I click on the game name it opens up the normal screen, shows that I am pulling 60 fps and the frame count starts to go up but nothing every plays on the screen?

Any experience with this problem?

I have tried it using the libretro-089-bsnes-compat-x86_64.dll AND libretro-089-bsnes-accuracy-x86_64.dll (both of which work and play the games just fine when launching from windows using RetroArch-Phoenix).

I am running an AMD A8-3850 Llano 2.9GHz Quad-Core processor with DirectX 11 Graphic AMD Radeon HD 6550D and 8GB of RAM on a ASRock A75M motherboard so hardware shouldn’t be an issue?

Any help is greatly appreciated. Thanks.

No problem, I’m glad you found it helpful.

Hm, this might happen if you are trying to load non-arcade ROMs from a zip file when launching RetroArch from the command-line (which is what Advanced Launcher is doing). If this is the case you may want to extract your non-arcade ROMs from their archives and store them in their original format instead.

It would be more convenient if there were a command-line switch to extract zip files for situations like this (assuming I haven’t overlooked it), so hopefully this will be an option in the future.

Bingo! Right again…unzipped all the files and everything works perfectly now. Awesome. I can’t wait to play all these old games.

Does anyone know how to make the system show something in the thumbnail when you are choosing your system? For example after you choose advanced launcher and then you are on the screen where you can choose from SNES, NES or Sega Genesis it would be awesome to change those thumbnails to actually show pictures of the gaming system. On other screens I have been able to right click on them and choose “change thumbnail” but for some reason that option doesn’t come up on that screen. I just though that would be pretty cool to be able to do. Perhaps there are other skins that alread do it for you…I haven’t had a change to search through all the skins yet.

Use XBMC’s context menu on the listed launcher and select ‘Edit Launcher’ and then ‘Change Thumbnail Image’, from there it’ll present you with a few options to choose an image.