Ok I'll describe my setup.
As I said, it's just XBMC with the advanced launcher addon, that addon allows you to use external programs from within XBMC.
I won't go in-depth with the addon but I'll explain the basics. There are two kinds of launchers, Standalone (for games, programs, etc) and File launchers that are ideal for emulators and ROMS since they allow you to select a program and a directory with roms for that program and it can auto populate the list with all your roms.
As for my Retroarch config. I have ONE standard config (I don't use per-core configs since those are erratic sometimes but I'm always experimenting and after 1.1 I might try again) and additional per-core / per-game configs depending on the case.
So, when adding a launcher for a Retroarch platform, I create a File launcher and I add these parameters:
Code:
<application>C:\Emulators\RetroArch\retroarch.exe</application>
<args>"%rom%" --config config\htpc\htpc.cfg --appendconfig config\htpc\htpc_nestopia.cfg -D -L libretro\nestopia_libretro.dll
My config and my libretro dir are inside my retroarch dir so this "just works" with relative paths.
Parameters explained:
*
%rom% --- full rompath
*
--config config\htpc\htpc.cfg --- name of my MAIN config file
*
--appendconfig config\htpc\htpc_nestopia.cfg --- core specific config additions
*
-D: --- hide DOS command window
*
-L libretro\nestopia_libretro.dll --- core to use
Now, what's important of this setup is the core specific additions. In many cases you want to use different shaders, or a different aspect ratio, or maybe a border overlay for different cores (or games, more into that later). In that case, the appendconfig option is ideal since it appends only what you have in that config, but that file is never written.
That means any changes you make to the setup still save in the MAIN config file, so stuff that is the same for every core such as inputs and paths are always up-to-date on core specific options are not affected. Also, RA by default saves shader changes to a file named the same as your MAIN cfg but with a cgp extension, that means with this setup you can play with shaders without messing up the shader you use and then you can copy it or rename it if you want it to use for a particular game or core.
Generally speaking my core config files have these (and change them accordingly, specially rewind that could be troublesome for some cores):
Code:
video_shader = "shaders\htpc_nes.cgp"
aspect_ratio_index = "21"
game_history_path = "config\htpc\htpc_nes-history.txt"
core_options_path = "config\htpc\htpc_nes-options.cfg"
rewind_enable = "true"
And that's about it, this gives me a lot of flexibility, I have a separate history for NES games this way, so I can load other NES games I have loaded without going back to XBMC, and I can have a core options file for each core when required so it doesn't get too big and hard to figure out.
Also this XBMC addon allows you to override parameters for any particular item of a file based launcher.
This means I could have a custom APPENDCONFIG for a specific game, which in turn allows me to have a custom COREOPTIONS file for that game. It's quite handy since some PSP games for instance are 2D, and those look the best at native resolution with RA shaders. But 3D games look best for me at 1080p output res, 4k internal res and no shaders.
If you want to override arguments for a particular item you need to create your custom configs for that entry, and then in XBMC select the item, go to modify, advanced modifications, and configure the arguments.
Anyway, if you need me to clear up some of this let me know I'm always glad to help