(2017-11-28, 18:50)einniv Wrote: 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 "/storage/emulated/0/ROMs/Chess.gen" -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 "smb://192.168.0.11/wd3tb/ROMs/Sega/Chess.gen" -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 "\\192.168.0.11\wd3tb\ROMs\Sega\Chess.gen" -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 "\\\\192.168.0.11\\wd3tb\\ROMs\\Sega\\Chess.gen" -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>
Yesterday I did some tests at home with my box (Kodi Linux Ubuntu) and UNC paths don't work. Then, I checked on Stack Overflow and yes ... UNC paths only work on Windows. Yes, the reason is that the Python interpreter (CPython) relies in the OS functions like open(), clone(), etc. and in Windows it happens they support SMB (windows network) protocol.
Also, I did a quick check to test if Retroarch is able to launch ROMs in UNC paths in Linux and it looks like it doesn't work, presumably for the same reasons.
So,
1) For the time being use local ROMs and assets.
2) Alternatively, you can use tools like autofs (some help
here and
here) to automatically mount remotes when they are needed. In my setup, I keep ROMs and artwork in a Synology NAS and then use autofs to mount the remote filesystems using SSH on demand. SSH is configured to auto log in with a SSH key pair. It works like a charm. I'm not sure if autofs (or a similar utility) is available for Android, though.
3) Kodi Leia will include Retroplayer and
I believe it will be able to launch ROMs from any remote Kodi supports (however, it is
still not clear). In any case, soon AEL will stop using the Pyhton filesystem functions and move to Kodi VFS filesystem functions which will enable true ROMs and artwork in remotes. However, if you want to use external emulators ROMs in remotes won't work so the most flexible option if you want to have ROMs in your NAS is to mount the remote filesystem with an external tool like autofs.