Android - HOW-TO Configure Advanced Launcher and Rom Collection Browser for emulators

  Thread Rating:
  • 5 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #1
This thread is a WIP and will be updated as I have time to include and write more info
.
With this guide you will be able to launch games and emulated games much more "seemlessly".


Requirements:
  • Keyboard ( although you could manually add everything to the launchers.xml config )
  • ADB
  • A rooted android device
    ( NOTE: Technically most arg's being passed could be done without root... )
  • XBMC installed ( official or spmc... I haven't tried with a gotham build )
  • Advanced Launcher plugin for XBMC http://forum.xbmc.org/showthread.php?tid=85724
    OR
  • Rom Collection Browser
  • A reasonable text editor ( If on windows - Notepad++ )
    • ADVANCED LAUNCHER


      [Image: 086mqyI.jpg]

      [Image: XR8GCfG.jpg]

      [Image: ajqVetS.jpg]


      1.) Install Advanced Launcher

      Copy over the Advanced Launcher plugin to the OUYA and install it ( You can install it by going to Settings -> Add-Ons -> Install From Zip File )

      2.) Create a new category

      Load the addon and with a keyboard press "c", which will open a popup. Choose "Create New Category" and call it "Emulation".

      3.) Create a "launcher"

      Open the newly created category which should prompt you to create a new launcher. Select "Files Launcher" and go through the menus ( select the launcher application [ su or am... ], select files path [ where the games are stored ] and set file extensions [ look at the example it gives ] )

      At "Application Arguments" leave it as default ( due to a scroll limit you can't see what to type... we will modify this later )

      Continue with the setup ( Set title of launcher [ typically label of system ], select platform [ which system you are emulating ], set thumbnails path and set fanart path )

      4.) Adding the correct arguments

      Pull launchers.xml from:

      Code:
      /sdcard/Android/data/com.semperpax.spmc/files/.xbmc/userdata/addon_data/plugin.program.advanced.launcher/launchers.xml
      ( change the "com.semperpax.spmc" to whatever version of xbmc you have installed )

      Open launchers.xml and under "launchers" look for the emulator you added ( this would be the name you chose when you set the title of the launcher ) and you should see the following line:

      Code:
                  <args>"%rom%"</args>

      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 Reicast:

      Code:
                  <args>start -n com.reicast.emulator/.GL2JNIActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"</args>

      Save it and push it back to the location it was pulled from.

      5.) Reload XBMC ( or just the script )

      Once you reload you should be able to add games... to add games hit the "c" key on your keyboard with the emulator highlighted and select "Add items". Select any game(s) you wish to add.

      Afterwards you should be able to launch the games from Advanced Launcher



      ROM COLLECTION BROWSER


      [Image: JxeCRvT.jpg]

      [Image: OKFn0qG.jpg]

      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:
      Code:
      /sdcard/Android/data/com.semperpax.spmc/files/.xbmc/userdata/addon_data/script.games.rom.collection.browser/scriptfiles/applaunch.sh
      or
      Code:
      /sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/addons/script.games.rom.collection.browser/resources/scriptfiles/applaunch.sh
      ( change the "com.semperpax.spmc" or "org.xbmc.xbmc" to whatever version of xbmc you have installed )

      You'll need to comment out the following lines:

      Code:
      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:
      Code:
      /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:

      Code:
              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

      Code:
          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:

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

      Comment out:

      Code:
          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... )

      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:

      Code:
      /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:

      Code:
      <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:

      Code:
      <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.



      There are some arguments that will require root and others that do NOT require root... If theres a root/nonroot option I will list both.

      If the argument is non-root required, for the "application" use /system/bin/am

      If the argument is root required, use /system/xbin/su for the "application"

      -=Emulator Arguments=-


      2600.EMU:

      non-root:
      start -n com.explusalpha.A2600Emu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      Ataroid:

      non-root:
      start -n com.androidemu.atari/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      C64.EMU:

      non-root:
      start -n com.explusalpha.C64Emu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      DraStic:

      non-root:
      start -n com.dsemu.drastic/.DraSticActivity -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e GAMEPATH "%rom%"

      ePSXe:

      non-root:
      start -n com.epsxe.ePSXe/.ePSXe -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e com.epsxe.ePSXe.isoName "%rom%"

      FPSE: ( NOTE: can be rather....buggy... also will only work in nobios mode )

      non-root:
      start -n com.emulator.fpse/.Main -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e path "%rom%"

      GameBoid:

      non-root:
      start -n com.androidemu.gba/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      GBA.EMU:

      non-root:
      start -n com.explusalpha.GbaEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      GBC.EMU:

      non-root:
      start -n com.explusalpha.GbcEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      GBCoid:

      non-root:
      start -n com.androidemu.gbc/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      Gearoid:

      non-root:
      start -n com.androidemu.gg/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      Gensoid:

      non-root:
      start -n com.androidemu.gens/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      MD.EMU:

      non-root:
      start -n com.explusalpha.MdEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      MSX.EMU:

      non-root:
      start -n com.explusalpha.MsxEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      Mupen64Plus AE Free 2.4.4: ( playstore )

      non-root: ( will load the emulator menu with the correct rom selected )
      start -n paulscode.android.mupen64plus.free/paulscode.android.mupen64plusae.MainActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      root: ( will first load the emulator with the correct rom and then reload to the play menu to either resume where you last left off on your game or restart the emu so the game is at first boot )
      -c 'am start -n paulscode.android.mupen64plus.free/paulscode.android.mupen64plusae.MainActivity -a android.intent.action.VIEW -eu Uri "file://%rom%" && am start -S -n paulscode.android.mupen64plus.free/paulscode.android.mupen64plusae.PlayMenuActivity'

      Mupen64Plus AE: ( ouya discovery )

      non-root: ( will load the emulator menu with the correct rom selected )
      start -n paulscode.android.mupen64plusae/.MainActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      root: ( will first load the emulator with the correct rom and then reload to the play menu to either resume where you last left off on your game or restart the emu so the game is at first boot )
      -c 'am start -n paulscode.android.mupen64plusae/.MainActivity -a android.intent.action.VIEW -eu Uri "file://%rom%" && am start -S -n paulscode.android.mupen64plusae/.PlayMenuActivity'

      N64oid:

      non-root:
      start -n com.androidemu.n64/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      NEO.EMU:

      non-root:
      start -n com.explusalpha.NeoEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      NES.EMU:

      non-root:
      start -n com.explusalpha.NesEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      NESoid:

      non-root:
      start -n com.androidemu.nes/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      NGP.EMU:

      non-root:
      start -n com.explusalpha.NgpEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      PCE.EMU:

      non-root:
      start -n com.PceEmu/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      PPSSPP:

      non-root:
      start -n org.ppsspp.ppsspp/.PpssppActivity -e org.ppsspp.ppsspp.Shortcuts "%rom%"

      Reicast:

      non-root:
      start -n com.reicast.emulator/.GL2JNIActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      RetroArch: ( example using PS1 )

      non-root:
      start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM "%rom%" -e LIBRETRO /data/data/com.retroarch/cores/pcsx_rearmed_libretro_neon_android.so -e CONFIGFILE /data/data/com.retroarch/retroarch.cfg -e IME tv.ouya.console.ime.keyboard/.OUYAKeyboard -n com.retroarch/.browser.retroactivity.RetroActivityFuture

      ( for the other emulator cores just point to the appropriate libretro*.so )

      Snes9x EX+:

      non-root:
      start -n com.explusalpha.Snes9xPlus/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      SNesoid:

      non-root:
      start -n com.androidemu.snes/.EmulatorActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"

      SuperGNES lite:

      non-root:
      start -n com.bubblezapgames.supergnes_lite/.SuperGNES -a android.intent.action.VIEW -eu Uri "file://%rom%"

      -=Game Arguments=-


      coming soon...
(This post was last modified: 2014-01-29 07:39 by IncognitoMan.)
find quote
Angelscry Offline
Skilled Python Coder
Posts: 3,430
Joined: Sep 2010
Reputation: 57
Post: #2
That's an huge job. Thank you for testing all the Android emulators an found the suitable command line for each one, and share it with other users. Well done!!! Rofl
find quote
malte Offline
Skilled Python Coder
Posts: 1,394
Joined: Jan 2010
Reputation: 31
Location: Germany
Post: #3
Wow, great job! Thanks for not giving up and sharing what you found out.

I will see if I can fix the coding stuff in RCB so that you won't need to make code changes to get it working.
find quote
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #4
(2014-01-16 13:37)Angelscry Wrote:  That's an huge job. Thank you for testing all the Android emulators an found the suitable command line for each one, and share it with other users. Well done!!! Rofl

(2014-01-16 18:20)malte Wrote:  Wow, great job! Thanks for not giving up and sharing what you found out.

I will see if I can fix the coding stuff in RCB so that you won't need to make code changes to get it working.

Thanks!

@malte : I was thinking about pm'ing you today in regards to possibly doing code changes so that android devices would work nicely... but glad you saw this. Smile

@both : Maybe we can have Advanced Launcher / RCB setup so that it automatically fills in the blanks for the emulators on android? Entering the arguments ATM is quite a pain because there's a scroll limit... so you cant see whats being typed past a certain limit and need to pull the config down using adb...

There should be a reasonable method to it... maybe something like pull a list of android applications installed and check their package names... from that set pre-defined args? ( for instance if snes9x is installed... itll see "com.explusalpha.Snes9xPlus" and thus it'll already assign the arg " start -n com.explusalpha.Snes9xPlus/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file://%rom%" " )

Package names rarely ( if ever ) change so it should be doable.

---------------------------------------------


If anyone has a request to see a certain emulator that's not included in the list or maybe a game/app just post which one and I'll take a look at it.
(This post was last modified: 2014-01-16 19:36 by IncognitoMan.)
find quote
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #5
Updated the emulator args section to include some new emulators and organized it alphabetically. 26 emulators are now listed Rofl

Any emulators that I'm missing that people use?

--EDIT:

Now 27 emulators supported... PPSSPP added to the list.
(This post was last modified: 2014-01-28 07:00 by IncognitoMan.)
find quote
dover19 Offline
Junior Member
Posts: 17
Joined: Aug 2013
Reputation: 0
Location: Quebec, Canada
Post: #6
I'm trying to follow the instructions on setting up RCB but I'm stuck at the very beginning. I found script.games.rom.collection.browser but there's no scriptfiles folder. All I see here is config.xml and settings.xml. Am I supposed to do something in order for RCB to create this file and folder?

Thanks
find quote
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #7
(2014-01-29 03:22)dover19 Wrote:  I'm trying to follow the instructions on setting up RCB but I'm stuck at the very beginning. I found script.games.rom.collection.browser but there's no scriptfiles folder. All I see here is config.xml and settings.xml. Am I supposed to do something in order for RCB to create this file and folder?

Thanks

Check this location:

Code:
/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/addons/script.games.rom.collection.browser/resources/scriptfiles/applaunch.sh
find quote
dover19 Offline
Junior Member
Posts: 17
Joined: Aug 2013
Reputation: 0
Location: Quebec, Canada
Post: #8
Awesome! Thanks.

When you say comment out I'm assuming you mean add a "#" at the beginning of every line right? Just making sure I did everything right because I modified applaunch.sh and launcher.py and when I open RCB to create a rom collection xbmc gives me a Script failed!

Maybe it's

I'm not sure if there's any useful info in this log file:
http://xbmclogs.com/show.php?id=120297
(This post was last modified: 2014-01-30 02:17 by dover19.)
find quote
joneco Offline
Junior Member
Posts: 5
Joined: May 2013
Reputation: 0
Post: #9
Hi,
i configured like this post, but i can't execute the game...

i tried GSNES_lite and Reicast.

at the button i see Working... but stops and nothing happen

Launchers.xml
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<advanced_launcher version="1.0">
    <categories>
        <category>
            <id>default</id>
            <name>Default</name>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <description></description>
        </category>
        <category>
            <id>a89ab1e97c8357103cc5deb034170b5b</id>
            <name>Emulation</name>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <description></description>
        </category>
    </categories>
    <launchers>
        <launcher>
            <id>e41037bf401f81a47e536cab790bab74</id>
            <name>Dreamcast</name>
            <category>a89ab1e97c8357103cc5deb034170b5b</category>
            <application>/system/bin/am</application>
            <args>start -n com.reicast.emulator/.GL2JNIActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"</args>
            <rompath>/sdcard/Arcade/Roms/Dreamcast</rompath>
            <thumbpath>/sdcard/Arcade/Fundos/</thumbpath>
            <fanartpath>/sdcard/Arcade/Fundos/</fanartpath>
            <trailerpath></trailerpath>
            <custompath></custompath>
            <romext>cdi</romext>
            <platform>Dreamcast</platform>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <release></release>
            <publisher></publisher>
            <launcherplot></launcherplot>
            <finished>false</finished>
            <minimize>false</minimize>
            <lnk></lnk>
            <roms>
                <rom>
                    <id>60f66aa838ef109f6b9a3d7e2777d965</id>
                    <name>Scalibur</name>
                    <filename>/sdcard/Arcade/Roms/Dreamcast/scalibur.cdi</filename>
                    <thumb></thumb>
                    <fanart></fanart>
                    <trailer></trailer>
                    <custom></custom>
                    <genre></genre>
                    <release></release>
                    <publisher></publisher>
                    <gameplot></gameplot>
                    <finished>false</finished>
                    <altapp></altapp>
                    <altarg></altarg>
                </rom>
            </roms>
        </launcher>
        <launcher>
            <id>17ad0c0af8a0bdedbd94d75da7d87edd</id>
            <name>Super Nintendo</name>
            <category>a89ab1e97c8357103cc5deb034170b5b</category>
            <application>/system/bin/am</application>
            <args>start -n com.bubblezapgames.supergnes_lite/.SuperGNES -a android.intent.action.VIEW -eu Uri "file://%rom%"</args>
            <rompath>/mnt/sdcard/Arcade/Roms/Snes</rompath>
            <thumbpath>/mnt/sdcard/Arcade/</thumbpath>
            <fanartpath>/mnt/sdcard/Arcade/Fundos/</fanartpath>
            <trailerpath></trailerpath>
            <custompath></custompath>
            <romext>zip|smc</romext>
            <platform>Super Nintendo Entertainment System</platform>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <release></release>
            <publisher></publisher>
            <launcherplot></launcherplot>
            <finished>false</finished>
            <minimize>false</minimize>
            <lnk></lnk>
            <roms>
                <rom>
                    <id>87d878e6f8d4bfa6d7e24c63d346fc1a</id>
                    <name>Sonic Wings</name>
                    <filename>/mnt/sdcard/Arcade/Roms/Snes/Sonic Wings.zip</filename>
                    <thumb></thumb>
                    <fanart></fanart>
                    <trailer></trailer>
                    <custom></custom>
                    <genre></genre>
                    <release></release>
                    <publisher></publisher>
                    <gameplot></gameplot>
                    <finished>false</finished>
                    <altapp></altapp>
                    <altarg></altarg>
                </rom>
            </roms>
        </launcher>
    </launchers>
</advanced_launcher>
(This post was last modified: 2014-02-10 20:42 by joneco.)
find quote
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #10
(2014-02-10 19:21)joneco Wrote:  Hi,
i configured like this post, but i can't execute the game...

i tried GSNES_lite and Reicast.

at the button i see Working... but stops and nothing happen

Launchers.xml
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<advanced_launcher version="1.0">
    <categories>
        <category>
            <id>default</id>
            <name>Default</name>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <description></description>
        </category>
        <category>
            <id>a89ab1e97c8357103cc5deb034170b5b</id>
            <name>Emulation</name>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <description></description>
        </category>
    </categories>
    <launchers>
        <launcher>
            <id>e41037bf401f81a47e536cab790bab74</id>
            <name>Dreamcast</name>
            <category>a89ab1e97c8357103cc5deb034170b5b</category>
            <application>/system/bin/am</application>
            <args>start -n com.reicast.emulator/.GL2JNIActivity -a android.intent.action.VIEW -eu Uri "file://%rom%"</args>
            <rompath>/sdcard/Arcade/Roms/Dreamcast</rompath>
            <thumbpath>/sdcard/Arcade/Fundos/</thumbpath>
            <fanartpath>/sdcard/Arcade/Fundos/</fanartpath>
            <trailerpath></trailerpath>
            <custompath></custompath>
            <romext>cdi</romext>
            <platform>Dreamcast</platform>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <release></release>
            <publisher></publisher>
            <launcherplot></launcherplot>
            <finished>false</finished>
            <minimize>false</minimize>
            <lnk></lnk>
            <roms>
                <rom>
                    <id>60f66aa838ef109f6b9a3d7e2777d965</id>
                    <name>Scalibur</name>
                    <filename>/sdcard/Arcade/Roms/Dreamcast/scalibur.cdi</filename>
                    <thumb></thumb>
                    <fanart></fanart>
                    <trailer></trailer>
                    <custom></custom>
                    <genre></genre>
                    <release></release>
                    <publisher></publisher>
                    <gameplot></gameplot>
                    <finished>false</finished>
                    <altapp></altapp>
                    <altarg></altarg>
                </rom>
            </roms>
        </launcher>
        <launcher>
            <id>17ad0c0af8a0bdedbd94d75da7d87edd</id>
            <name>Super Nintendo</name>
            <category>a89ab1e97c8357103cc5deb034170b5b</category>
            <application>/system/bin/am</application>
            <args>start -n com.bubblezapgames.supergnes_lite/.SuperGNES -a android.intent.action.VIEW -eu Uri "file://%rom%"</args>
            <rompath>/mnt/sdcard/Arcade/Roms/Snes</rompath>
            <thumbpath>/mnt/sdcard/Arcade/</thumbpath>
            <fanartpath>/mnt/sdcard/Arcade/Fundos/</fanartpath>
            <trailerpath></trailerpath>
            <custompath></custompath>
            <romext>zip|smc</romext>
            <platform>Super Nintendo Entertainment System</platform>
            <thumb></thumb>
            <fanart></fanart>
            <genre></genre>
            <release></release>
            <publisher></publisher>
            <launcherplot></launcherplot>
            <finished>false</finished>
            <minimize>false</minimize>
            <lnk></lnk>
            <roms>
                <rom>
                    <id>87d878e6f8d4bfa6d7e24c63d346fc1a</id>
                    <name>Sonic Wings</name>
                    <filename>/mnt/sdcard/Arcade/Roms/Snes/Sonic Wings.zip</filename>
                    <thumb></thumb>
                    <fanart></fanart>
                    <trailer></trailer>
                    <custom></custom>
                    <genre></genre>
                    <release></release>
                    <publisher></publisher>
                    <gameplot></gameplot>
                    <finished>false</finished>
                    <altapp></altapp>
                    <altarg></altarg>
                </rom>
            </roms>
        </launcher>
    </launchers>
</advanced_launcher>

Can you adb shell into your device and tell me what happens when you do something like:

Code:
am start -n com.reicast.emulator/.GL2JNIActivity -a android.intent.action.VIEW -eu Uri "file:///sdcard/Arcade/Roms/Dreamcast/scalibur.cdi"

Also if you can tell me what versions of the emulators are you using.
(This post was last modified: 2014-02-11 00:41 by IncognitoMan.)
find quote
riaz1982 Offline
Senior Member
Posts: 132
Joined: Nov 2012
Reputation: 3
Post: #11
the argument for retroarch is for ouya.

what would the android equivalent be

Code:
start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM "%rom%" -e LIBRETRO /data/data/com.retroarch/cores/pcsx_rearmed_libretro_neon_android.so -e CONFIGFILE /data/data/com.retroarch/retroarch.cfg -e IME tv.ouya.console.ime.keyboard/.OUYAKeyboard -n com.retroarch/.browser.retroactivity.RetroActivityFuture

thanks
find quote
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #12
(2014-02-19 16:25)riaz1982 Wrote:  the argument for retroarch is for ouya.

what would the android equivalent be

Code:
start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM "%rom%" -e LIBRETRO /data/data/com.retroarch/cores/pcsx_rearmed_libretro_neon_android.so -e CONFIGFILE /data/data/com.retroarch/retroarch.cfg -e IME tv.ouya.console.ime.keyboard/.OUYAKeyboard -n com.retroarch/.browser.retroactivity.RetroActivityFuture

thanks

For the most part it should work... the only issue you'll come up with is IME

If you could... give me a logcat of you starting retroarch and playing a game and I'll fill in the blank in regards to the IME variable.
find quote
Anorax Offline
Junior Member
Posts: 2
Joined: Mar 2014
Reputation: 0
Post: #13
Hey IncognitoMan,

Here's a head scratcher. I used your guide successfully for the Ouya, but I run into a problem on other Android devices..

RCB sets up just fine and it even attempts to launch the game, but then the following happens:

03-03 17:20:33.914: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: cmd: "/system/bin/am" start -n com.explusalpha.Snes9xPlus/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file:////storage/emulated/0/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/addon_data/script.games.rom.collection.browser/tmp/Breath of Fire (USA).sfc"
03-03 17:20:33.914: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: precmd:
03-03 17:20:33.914: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: postcmd:
03-03 17:20:33.915: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: launchEmu on non-xbox
03-03 17:20:33.915: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: screenMode: 1280x720 @ 60.00 - Full Screen
03-03 17:20:33.915: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: launch emu
03-03 17:20:33.973: D/AndroidRuntime(4016): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
03-03 17:20:33.973: D/AndroidRuntime(4016): CheckJNI is OFF
03-03 17:20:33.978: D/dalvikvm(4016): Trying to load lib libjavacore.so 0x0
03-03 17:20:33.980: D/dalvikvm(4016): Added shared lib libjavacore.so 0x0
03-03 17:20:33.985: D/dalvikvm(4016): Trying to load lib libnativehelper.so 0x0
03-03 17:20:33.985: D/dalvikvm(4016): Added shared lib libnativehelper.so 0x0
03-03 17:20:34.062: I/dalvikvm(4016): Total arena pages for JIT: 11
03-03 17:20:34.062: I/dalvikvm(4016): Total arena pages for JIT: 12
03-03 17:20:34.063: I/dalvikvm(4016): Total arena pages for JIT: 13
03-03 17:20:34.063: I/dalvikvm(4016): Total arena pages for JIT: 14
03-03 17:20:34.072: D/AndroidRuntime(4016): Calling main entry com.android.commands.am.Am
03-03 17:20:34.072: D/dalvikvm(4016): Note: class Landroid/app/ActivityManagerNative; has 163 unimplemented (abstract) methods
03-03 17:20:34.075: W/ActivityManager(483): Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL


Error above in bold. This same command successfully launches a rom using ADB Shell. I thought it might be related to SuperSU, so I fully unrooted. Same issue. This is Android 4.3, btw.

Anyone has thoughts on a fix or workaround, please let me know!

EDIT/UPDATE:
Not 5 minutes later I found the option. In the paramaters throw --user 0 before -n and it works fine!

Well, almost fine. MD.EMU just launches the emulator, SNES9xPlus works great!

Further Update:
None of the .EMUs work 100% with either the command above or with the --user 0 addon. Launches emulator, but does not start the game.
(This post was last modified: 2014-03-04 03:27 by Anorax.)
find quote
IncognitoMan Offline
Junior Member
Posts: 18
Joined: Jan 2014
Reputation: 3
Post: #14
(2014-03-04 02:23)Anorax Wrote:  Hey IncognitoMan,

Here's a head scratcher. I used your guide successfully for the Ouya, but I run into a problem on other Android devices..

RCB sets up just fine and it even attempts to launch the game, but then the following happens:

03-03 17:20:33.914: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: cmd: "/system/bin/am" start -n com.explusalpha.Snes9xPlus/com.imagine.BaseActivity -a android.intent.action.VIEW -eu Uri "file:////storage/emulated/0/Android/data/org.xbmc.xbmc/files/.xbmc/userdata/addon_data/script.games.rom.collection.browser/tmp/Breath of Fire (USA).sfc"
03-03 17:20:33.914: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: precmd:
03-03 17:20:33.914: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: postcmd:
03-03 17:20:33.915: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: launchEmu on non-xbox
03-03 17:20:33.915: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: screenMode: 1280x720 @ 60.00 - Full Screen
03-03 17:20:33.915: V/XBMC(2415): 17:20:33 T:1633699200 NOTICE: RCB_INFO: launch emu
03-03 17:20:33.973: D/AndroidRuntime(4016): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
03-03 17:20:33.973: D/AndroidRuntime(4016): CheckJNI is OFF
03-03 17:20:33.978: D/dalvikvm(4016): Trying to load lib libjavacore.so 0x0
03-03 17:20:33.980: D/dalvikvm(4016): Added shared lib libjavacore.so 0x0
03-03 17:20:33.985: D/dalvikvm(4016): Trying to load lib libnativehelper.so 0x0
03-03 17:20:33.985: D/dalvikvm(4016): Added shared lib libnativehelper.so 0x0
03-03 17:20:34.062: I/dalvikvm(4016): Total arena pages for JIT: 11
03-03 17:20:34.062: I/dalvikvm(4016): Total arena pages for JIT: 12
03-03 17:20:34.063: I/dalvikvm(4016): Total arena pages for JIT: 13
03-03 17:20:34.063: I/dalvikvm(4016): Total arena pages for JIT: 14
03-03 17:20:34.072: D/AndroidRuntime(4016): Calling main entry com.android.commands.am.Am
03-03 17:20:34.072: D/dalvikvm(4016): Note: class Landroid/app/ActivityManagerNative; has 163 unimplemented (abstract) methods
03-03 17:20:34.075: W/ActivityManager(483): Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL


Error above in bold. This same command successfully launches a rom using ADB Shell. I thought it might be related to SuperSU, so I fully unrooted. Same issue. This is Android 4.3, btw.

Anyone has thoughts on a fix or workaround, please let me know!

EDIT/UPDATE:
Not 5 minutes later I found the option. In the paramaters throw --user 0 before -n and it works fine!

Well, almost fine. MD.EMU just launches the emulator, SNES9xPlus works great!

Further Update:
None of the .EMUs work 100% with either the command above or with the --user 0 addon. Launches emulator, but does not start the game.

Can you give me a logcat of you normally starting the emu/game? I'll try to figure out from that whats going on.

Also yea I should probably update the guide to point out that if you are having issues about user denial to add that flag onto the command... Glad you saw that and got it working Wink
find quote
Anorax Offline
Junior Member
Posts: 2
Joined: Mar 2014
Reputation: 0
Post: #15
(2014-03-04 07:27)IncognitoMan Wrote:  Can you give me a logcat of you normally starting the emu/game? I'll try to figure out from that whats going on.

Also yea I should probably update the guide to point out that if you are having issues about user denial to add that flag onto the command... Glad you saw that and got it working Wink

Sent you a PM with the logcat of a normal launch of GBA.EMU
find quote
Post Reply