[Ouya General] IncognitoMan:
ROM COLLECTION BROWSER​

Install RCB like you would any addon.

In order to get RCB to work there's a few changes that have to be made... 2 files to be specific.

1.) applaunch.sh

located at:

/sdcard/Android/data/com.semperpax.spmc/files/.xbmc/userdata/addon_data/script.games.rom.collection.browser/scriptfiles/applaunch.sh

or

/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/addons/script.games.rom.collection.browser/resources/scriptfiles/applaunch.sh

( change the "com.semperpax.spmc" to whatever version of xbmc you have installed )

You'll need to comment out the following lines:

case "$(uname -s)" in
Darwin)
XBMC_PID=$(ps -A | grep XBMC.app | grep -v Helper | grep -v grep | awk '{print $1}')
XBMC_BIN=$(ps -A | grep XBMC.app | grep -v Helper | grep -v grep | awk '{print $5}')
;;
Linux)
XBMC_PID=$(pidof xbmc.bin)
XBMC_BIN="xbmc"
;;
*)
echo "I don't support this OS!"
exit 1
;;
esac

Save it and push it back to the same location we pulled it from.

2.) launcher.py

located at:

/sdcard/Android/data/com.semperpax.spmc/files/.xbmc/addons/script.games.rom.collection.browser/resources/lib/launcher.py

( change the "com.semperpax.spmc" to whatever version of xbmc you have installed )

Comment out:

if(isFullScreen):
Logutil.log("Toggle to Windowed mode", util.LOG_LEVEL_INFO)
#this minimizes xbmc some apps seems to need it
try:
xbmc.executehttpapi("Action(199)")
except:
xbmc.executeJSONRPC('{"jsonrpc":"2.0","method":"Input.ExecuteAction","params":{"action":"togglefullscreen"},"id":"1"}')

toggledScreenMode = True

pre launch command
if(precmd.strip() != '' and precmd.strip() != 'call'):
Logutil.log("Got to PRE", util.LOG_LEVEL_INFO)
os.system(precmd.encode(sys.getfilesystemencoding()))

preDelay = settings.getSetting(SETTING_RCB_PRELAUNCHDELAY)
if(preDelay != ''):
preDelay = int(float(preDelay))
xbmc.sleep(preDelay)

Modify:

if(romCollection.usePopen):
import subprocess
subprocess.Popen(cmd.encode(sys.getfilesystemencoding()), shell=True)
else:
os.system(cmd.encode(sys.getfilesystemencoding()))

to this:

if(romCollection.usePopen):
import subprocess
subprocess.Popen(cmd.encode('utf-8'), shell=True)
else:
os.system(cmd.encode('utf-8'))

Comment out:

postDelay = settings.getSetting(SETTING_RCB_POSTLAUNCHDELAY)
if(postDelay != ''):
postDelay = int(float(postDelay))
xbmc.sleep(postDelay)

post launch command
if(postcmd.strip() != '' and postcmd.strip() != 'call'):
Logutil.log("Got to POST: " + postcmd.strip(), util.LOG_LEVEL_INFO)
os.system(postcmd.encode(sys.getfilesystemencoding()))

Save it and push it back to the same location we pulled it from.

3.) Create a "Rom Collection"

Hit the "U" button ( or "C" key on a keyboard ) on your OUYA controller, this will open a menu... select "Add Rom Collection".

Fill out all the info ( how you want to select info/artwork, what console, location of emulator ( su or am... read 3rd post )

On the "Emulator params" just select the default for now... we will modify this afterward.

Continue on in the setup... ( path to the roms, what file mask [ in otherwords which extensions to look for... look at the example it gives ] and lastly select a location for the artwork )

4.) Adding the correct emulator arguments

Pull config.xml from:

/sdcard/Android/data/com.semperpax.spmc/files/.xbmc/userdata/addon_data/script.games.rom.collection.browser/config.xml

( change the "com.semperpax.spmc" to whatever version of xbmc you have installed )

Open config.xml and under the rom collection you created... look for the following line:

<emulatorParams>"%ROM%"</emulatorParams>

Change it to represent one of the arguments found in the 3rd post. for example purposes here's what the line would look like if I were setting up the SNES:

<emulatorParams>start -n com.explusalpha.Snes9xPlus/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%ROM%"</emulatorParams>

Save it and push it back to the same location we pulled it from.

5.) Reload XBMC ( or just the script )

After you reload you should be able to launch the games without a problem.