Beta Advanced Emulator Launcher - Multi-emulator frontend for Kodi
(2017-11-28, 09:24)Wintermute0110 Wrote:
(2017-11-27, 23:26)einniv Wrote: Regarding UNC path support mentioned earlier in this thread. Does anyone know if I should expect that to work on Android (Fire TV) as well? 

I'm a new user and just set up AEL and RetroArch. I can get a ROM to launch through AEL from a local directory, but when using an smb share AEL doesn't find anything when it  scans the remote  directory. I can add a ROM from that directory manually , but when it tries to launch it says it can't find the ROM.

The 2nd launcher below is the one I'm using ("sega2").
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Exported by AEL on 2017-11-27 15:53:40 -->
<advanced_emulator_launcher_configuration>
<category>
  <name>Sega</name>
  <genre />
  <rating />
  <plot />
  <Asset_Prefix />
  <s_icon />
  <s_fanart />
  <s_banner />
  <s_poster />
  <s_clearlogo />
  <s_trailer />
</category>
<launcher>
  <name>Genesis</name>
  <category>Sega</category>
  <year />
  <genre />
  <developer />
  <rating />
  <plot />
  <platform>Sega MegaDrive</platform>
  <application>/system/bin/am</application>
  <args>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;%rom%&quot; -e LIBRETRO /data/data/com.retroarch/cores/genesis_plus_gx_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args>
  <args_extra>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;%rom%&quot; -e LIBRETRO /data/data/com.retroarch/cores/picodrive_libretro.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args_extra>
  <ROM_path />
  <ROM_ext>zip|md|7z</ROM_ext>
  <path_title />
  <path_snap />
  <path_boxfront />
  <path_boxback />
  <path_cartridge />
  <path_fanart />
  <path_banner />
  <path_clearlogo />
  <path_flyer />
  <path_map />
  <path_manual />
  <path_trailer />
  <Asset_Prefix />
  <s_icon />
  <s_fanart />
  <s_banner />
  <s_poster />
  <s_clearlogo />
  <s_controller />
  <s_trailer />
</launcher>
<launcher>
  <name>sega2</name>
  <category>Sega</category>
  <year />
  <genre />
  <developer />
  <rating />
  <plot />
  <platform>Sega Genesis</platform>
  <application>/system/bin/am</application>
  <args>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;%rom%&quot; -e LIBRETRO /data/data/com.retroarch/cores/genesis_plus_gx_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args>
  <args_extra />
  <ROM_path>smb://192.168.0.11/wd3tb/ROMs/Sega/</ROM_path>
  <ROM_ext>zip|md|7z</ROM_ext>
  <ROM_asset_path>/storage/emulated/0/Android/data/org.xbmc.kodi/files/.kodi/userdata/addon_data/plugin.program.advanced.emulator.launcher/asset-collections</ROM_asset_path>
  <Asset_Prefix />
  <s_icon />
  <s_fanart />
  <s_banner />
  <s_poster />
  <s_clearlogo />
  <s_controller />
  <s_trailer />
</launcher>
</advanced_emulator_launcher_configuration>

The JSON file https://pastebin.com/0YM3Kjpx

A portion of the log https://pastebin.com/5txkGbEW

The only current piece of documentation about UNC paths is in AEL changelog. I reproduce it here for convenience.
Code:
FEATURE ROMs in UNC paths. It seems Retroarch added UNC path support recently.
See https://forum.kodi.tv/showthread.php?tid=287826&pid=2647152#pid2647152

[Windows]
Workaround in _run_process() to add an extra '\\' character if argument starts with
a '\\'. This is to fix shlex.split() behaviour.

Tested in Windows only with the following configuration:
<ROM_path>\\SERVER_NAME\AEL-ROMs\sega-genesis\</ROM_path>
<ROM_asset_path>smb://SERVER_NAME/AEL-assets/sega-genesis/</ROM_asset_path>

This configuration also works in Windows:
<ROM_path>smb://SERVER_NAME/AEL-ROMs/sega-genesis/</ROM_path>
<ROM_asset_path>smb://SERVER_NAME/AEL-assets/sega-genesis/</ROM_asset_path>

Artwork is stored in JSON DB as "smb://SERVER_NAME/AEL-assets/sega-genesis/boxbacks\\Sonic.jpg"
ROMs are saved in JSON DB as "\\\\SERVER_NAME\\AEL-ROMs\\sega-genesis\\Sonic.md"

Kodi artwork does not work with paths like \\SERVER_NAME\AEL-ROMs\sega-genesis\image.png.
Correct path for artwork is smb://SERVER_NAME/AEL-ROMs/sega-genesis/image.png.

Retroarch requires a ROM path like \\SERVER_NAME\AEL-ROMs\sega-genesis\Sonic.md.

Note that I tested the UNC support in a Windows computer at work. I have not tested it on Linux (at thome) and since I don't have an Android machine I won't be able to test it on Android. However, my tests indicate Retroarch requires paths like \\SERVER_NAME\AEL-ROMs\sega-genesis\Sonic.md in spite that in Windows having a ROM path like smb://SERVER_NAME/AEL-ROMs/sega-genesis/ seems to work (that is, AEL scans the ROM path, finds the ROMs and adds them to the database). Note that AEL may be able to find the ROMs in the remote but Retroarch is not able to launch the ROM if the UNC path is not in the correct format.

In order to do some test, I recommend you create one or several Standalone Launchers using AEL XML config files to launch Retroarch and load Sonic.md ROM. Currently AEL is not launching your ROM because it does not find the ROM in the remote before launching. Standalone launcher do not check this so you can do your tests unconstrained. Please test the cases of having a \\Server\dir\Rom.md path and having a smb://Server/dir/Rom.md. With the XML launcher config files it is very quick to change stuff and then reload, and do some tests. Please report back you findings so I can add them to the docs and help other Android users.   
Thanks for the tip on how to quickly test the setup.  It appears UNC paths do not work in RetroArch on Android. The Windows version must be relying on the operating system (which makes sense).

These are the launchers I added. Only the first one (using a file on the Firestick itself) worked. 
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Exported by AEL on 2017-11-28 11:30:23 -->
<advanced_emulator_launcher_configuration>
<category>
<name>Sega</name>
<genre />
<rating />
<plot />
<Asset_Prefix />
<s_icon />
<s_fanart />
<s_banner />
<s_poster />
<s_clearlogo />
<s_trailer />
</category>
<launcher>
<name>Genesis Chess Local</name>
<category>Sega</category>
<year />
<genre />
<developer />
<rating />
<plot />
<platform>Sega Genesis</platform>
<application>/system/bin/am</application>
<args>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;/storage/emulated/0/ROMs/Chess.gen&quot; -e LIBRETRO /data/data/com.retroarch/cores/genesis_plus_gx_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args>
<args_extra />
<ROM_path />
<ROM_ext />
<path_title />
<path_snap />
<path_boxfront />
<path_boxback />
<path_cartridge />
<path_fanart />
<path_banner />
<path_clearlogo />
<path_flyer />
<path_map />
<path_manual />
<path_trailer />
<Asset_Prefix />
<s_icon />
<s_fanart />
<s_banner />
<s_poster />
<s_clearlogo />
<s_controller />
<s_trailer />
</launcher>
<launcher>
<name>Genesis Chess SMB</name>
<category>Sega</category>
<year />
<genre />
<developer />
<rating />
<plot />
<platform>Sega Genesis</platform>
<application>/system/bin/am</application>
<args>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;smb://192.168.0.11/wd3tb/ROMs/Sega/Chess.gen&quot; -e LIBRETRO /data/data/com.retroarch/cores/genesis_plus_gx_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args>
<args_extra />
<ROM_path />
<ROM_ext />
<path_title />
<path_snap />
<path_boxfront />
<path_boxback />
<path_cartridge />
<path_fanart />
<path_banner />
<path_clearlogo />
<path_flyer />
<path_map />
<path_manual />
<path_trailer />
<Asset_Prefix />
<s_icon />
<s_fanart />
<s_banner />
<s_poster />
<s_clearlogo />
<s_controller />
<s_trailer />
</launcher>
<launcher>
<name>Genesis Chess UNC</name>
<category>Sega</category>
<year />
<genre />
<developer />
<rating />
<plot />
<platform>Sega Genesis</platform>
<application>/system/bin/am</application>
<args>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;\\192.168.0.11\wd3tb\ROMs\Sega\Chess.gen&quot; -e LIBRETRO /data/data/com.retroarch/cores/genesis_plus_gx_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args>
<args_extra />
<ROM_path />
<ROM_ext />
<path_title />
<path_snap />
<path_boxfront />
<path_boxback />
<path_cartridge />
<path_fanart />
<path_banner />
<path_clearlogo />
<path_flyer />
<path_map />
<path_manual />
<path_trailer />
<Asset_Prefix />
<s_icon />
<s_fanart />
<s_banner />
<s_poster />
<s_clearlogo />
<s_controller />
<s_trailer />
</launcher>
<launcher>
<name>Genesis Chess UNC2</name>
<category>Sega</category>
<year />
<genre />
<developer />
<rating />
<plot />
<platform>Sega Genesis</platform>
<application>/system/bin/am</application>
<args>start --user 0 -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -e ROM &quot;\\\\192.168.0.11\\wd3tb\\ROMs\\Sega\\Chess.gen&quot; -e LIBRETRO /data/data/com.retroarch/cores/genesis_plus_gx_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e REFRESH 60 -n com.retroarch/.browser.retroactivity.RetroActivityFuture</args>
<args_extra />
<ROM_path />
<ROM_ext />
<path_title />
<path_snap />
<path_boxfront />
<path_boxback />
<path_cartridge />
<path_fanart />
<path_banner />
<path_clearlogo />
<path_flyer />
<path_map />
<path_manual />
<path_trailer />
<Asset_Prefix />
<s_icon />
<s_fanart />
<s_banner />
<s_poster />
<s_clearlogo />
<s_controller />
<s_trailer />
</launcher>
</advanced_emulator_launcher_configuration>
Reply


Messages In This Thread
RE: Advanced Emulator Launcher - Multi-emulator frontend for Kodi - by einniv - 2017-11-28, 18:50
Can You create A Sub Category? - by Wild_Tom - 2020-07-13, 04:43
Crash & Lost my launchers? - by eirrocmh - 2020-11-29, 02:25
RE: Crash & Lost my launchers? - by eirrocmh - 2020-12-19, 00:19
Logout Mark Read Team Forum Stats Members Help
Advanced Emulator Launcher - Multi-emulator frontend for Kodi12