Kodi Community Forum

Full Version: Advanced Emulator Launcher - Multi-emulator frontend for Kodi
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(2017-08-04, 13:38)Wintermute0110 Wrote: [ -> ]
(2017-08-03, 17:23)Pahapaavali Wrote: [ -> ]
(2017-08-03, 13:01)Wintermute0110 Wrote: [ -> ]Can you please elaborate? To launch navit I guess you need to create an Standalone Launcher. Setting the platform to "Unknown" should be OK.

Yes I created an Standalone Launcher and the platform as "Unknown". But when I start the navit-launcher, it doesn't do anything in "front", something happens in background because if I try to launch or do something else with ael, it says there is a launcher already running. Sorry, not a native speaker so my writing is all over the place Smile

EDIT:
some errors in the kodi.log

18:28:07.890 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() categoryID root_category
18:28:07.891 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() launcherID 21707dc21b6bbe42db1299b82b6dbe80
18:28:07.891 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() application "/usr/bin/navit"
18:28:07.891 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() apppath "/usr/bin"
18:28:07.892 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() app_basename "navit"
18:28:07.892 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() app_ext ""
18:28:07.892 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() launcher name "navit"
18:28:07.892 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() raw arguments ""
18:28:07.892 T:1476654000 ERROR: AEL INFO : _run_standalone_launcher() final arguments ""

That stuff you see in the log are actually not errors. It is long to explain but in order to AEL to print to the log the ERROR debug level must be activated.

If AEL prints a message like there is another instance running it is because the process navit is running. By design AEL will refuse to launch a second process until the first one has not finished. If you don't see the navit window maybe the process is running in the background. If you open a terminal and run "/usr/bin/navit" do you see a window showing up? Keep in mind that AEL is designed to run processes that create a window to run on the foreground and will not work properly with background processes or daemons.

Thanks again for answering and clearing things out!
If I write /usr/bin/navit in terminal, it opens a window for navit. For some reason it only runs in the background in AEL. Is there a way to kill the process without exiting Kodi?

EDIT:
Already found a way to kill the process.
(2017-08-04, 13:34)Wintermute0110 Wrote: [ -> ]
(2017-08-04, 02:55)zachmorris Wrote: [ -> ]
(2017-07-31, 01:30)yevaman44 Wrote: [ -> ]Hello,

When I use AEL in Kodi Krypton, the game is launched and I can play but Kodi remains active: my movements with the Gamepad, in game, act on the menu of Kodi !!!
Others games are launched, or movies...

I think thats an issue you can only get around currently by disabling joystick control in Kodi settings. I wanted to attempt to stop the same thing in my addon somehow but wasn't able to find a solution yet.

See here and here.

Thanks a lot for your inputs Zach.

Is this problem present only on Windows or also in other platforms?

I can implement disabling the joystick before launching/resuming after launched app finishes using JSON RPC in AEL but... because of the bug in your second link Kodi will crash?

Yes, I don't believe the issue is fixed in Kodi yet. It's probably easier at this point to close Kodi and then re-open it again after as you suggested.

I believe users in Windows and Linux reported the same thing, although it's not entirely consistent so I'm not sure what triggers the controller controlling two applications.
Hi Guys,

I've been trying for couple days to make AEL work on my HTPC, but no way.
I'm using AZ+ skin, and no way to get all the visual as AZ+ can do.

Else, I've an alert message "Invalid zip archive" while launching snes9x emulator from AEL (does with any Rom)

Any idea/help?

Using :

W10 x64
snes9x x64 1.54.1 (tried arguments : -fullsreen -autostart "%ROM%", -fullsreen "%ROMS%", -fullsreen -autostart "$ROM$%", -fullsreen "$rom$", etc.)
Krypton custom build for MVC 3D
All Emulation files (*.exe/roms) are on the NAS (samba)

EDIT : Solved!! Not compatible with network play....

EDIT 2 : In fact, it is not possible to run in samba, but with a mounted drive : no problem! ------------>>>> I suggest to add this info in the first post NodNod

EDIT 3 : I've scrapping issues. I can not have the asset downloaded... Sad See log file
In addition,is there an option "Rescrappe all the Rom for Assets" ? I could not find it....

Code:
17:18:10.697 T:7028   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.NameError'>
                                            Error Contents: global name 'image_name' is not defined
                                            Traceback (most recent call last):
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\addon.py", line 39, in <module>
                                                main.Main().run_plugin()
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 248, in run_plugin
                                                with SingleInstance(): self.run_protected(args)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 333, in run_protected
                                                self._command_add_roms(args['launID'][0])
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 2061, in _command_add_roms
                                                self._roms_import_roms(launcher)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 7731, in _roms_import_roms
                                                romdata     = self._roms_process_scanned_ROM(launcherID, ROM)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 7985, in _roms_process_scanned_ROM
                                                romdata[A.key] = self._roms_scrap_asset(asset_kind, local_asset_list[i], ROM, launcher)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 8132, in _roms_scrap_asset
                                                log_debug('{0} scraper: user chose local image "{1}"'.format(image_name, image_url))
                                            NameError: global name 'image_name' is not defined
                                            -->End of Python script error report<--
Sorry to be "question addict"... Big Grin

I can not find any possibility for an automatic scrapping ofr all assets. Ihave found the way to scrap manualy each (title, box, etc.) but doing this for each Roms is so long....
Maybe there is a solution to get this automaticly?
I'm very much at a loss here. I've configured AEL and RetroArch on a few different systems. This is my first time working with it on Windows and I cannot get it to work
For some reason there is something going on on the log:

(2017-08-07, 01:11)nalthien Wrote: [ -> ]
Code:
15:54:12.445 T:1292   ERROR: AEL DEBUG: _run_process() arguments = "-L C:\Users\brian\AppData\Roaming\RetroArch\cores\bsnes_balanced_libretro.dll -f "C:\Users\brian\Documents\Games\SNES\7th Saga, The (USA).zip""
15:54:12.445 T:1292   ERROR: AEL DEBUG: _run_process() arg_list  = ['-L', 'C:UsersbrianAppDataRoamingRetroArchcoresbsnes_balanced_libretro.dll', '-f', 'C:\\Users\\brian\\Documents\\Games\\SNES\\7th Saga, The (USA).zip']
15:54:12.445 T:1292   ERROR: AEL DEBUG: _run_process() exec_list = [u'C:\\Users\\brian\\AppData\\Roaming\\RetroArch\\retroarch.exe', '-L', 'C:UsersbrianAppDataRoamingRetroArchcoresbsnes_balanced_libretro.dll', '-f', 'C:\\Users\\brian\\Documents\\Games\\SNES\\7th Saga, The (USA).zip']

The core name in variable arg_list is wrong, however it is correct in the variable arguments. I think the problem maybe that the libretro core filename has no quotes so the Python library that transforms the argument string into a list of arguments do not do the job properly. Please try quoting the core filename, even if it does not have spaces:

Code:
"C:\Users\brian\AppData\Roaming\RetroArch\retroarch.exe" -L "C:\Users\brian\AppData\Roaming\RetroArch\cores\bsnes_balanced_libretro.dll" -f "C:\Users\brian\Documents\Games\SNES\7th Saga, The (USA).zip"

To do so, in the launcher context menu select "Edit launcher", "Advanced Modifications", "Modify Arguments:" and change the arguments to:

Code:
-L "C:\Users\brian\AppData\Roaming\RetroArch\cores\bsnes_balanced_libretro.dll" -f "$rom$"

and report back.
(2017-08-06, 14:11)ibanana Wrote: [ -> ]Hi Guys,

I've been trying for couple days to make AEL work on my HTPC, but no way.
I'm using AZ+ skin, and no way to get all the visual as AZ+ can do.

Else, I've an alert message "Invalid zip archive" while launching snes9x emulator from AEL (does with any Rom)

Any idea/help?

Using :

W10 x64
snes9x x64 1.54.1 (tried arguments : -fullsreen -autostart "%ROM%", -fullsreen "%ROMS%", -fullsreen -autostart "$ROM$%", -fullsreen "$rom$", etc.)
Krypton custom build for MVC 3D
All Emulation files (*.exe/roms) are on the NAS (samba)

EDIT : Solved!! Not compatible with network play....

EDIT 2 : In fact, it is not possible to run in samba, but with a mounted drive : no problem! ------------>>>> I suggest to add this info in the first post NodNod

EDIT 3 : I've scrapping issues. I can not have the asset downloaded... Sad See log file
In addition,is there an option "Rescrappe all the Rom for Assets" ? I could not find it....

Code:
17:18:10.697 T:7028   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.NameError'>
                                            Error Contents: global name 'image_name' is not defined
                                            Traceback (most recent call last):
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\addon.py", line 39, in <module>
                                                main.Main().run_plugin()
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 248, in run_plugin
                                                with SingleInstance(): self.run_protected(args)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 333, in run_protected
                                                self._command_add_roms(args['launID'][0])
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 2061, in _command_add_roms
                                                self._roms_import_roms(launcher)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 7731, in _roms_import_roms
                                                romdata     = self._roms_process_scanned_ROM(launcherID, ROM)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 7985, in _roms_process_scanned_ROM
                                                romdata[A.key] = self._roms_scrap_asset(asset_kind, local_asset_list[i], ROM, launcher)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 8132, in _roms_scrap_asset
                                                log_debug('{0} scraper: user chose local image "{1}"'.format(image_name, image_url))
                                            NameError: global name 'image_name' is not defined
                                            -->End of Python script error report<--

I have the same problem using mobygames as asset scraper, but when using arcadedb instead the process goes normal.
(2017-08-06, 14:11)ibanana Wrote: [ -> ]Hi Guys,

I've been trying for couple days to make AEL work on my HTPC, but no way.
I'm using AZ+ skin, and no way to get all the visual as AZ+ can do.

You can use AEL's Launcher/ROM context menu to check if the artwork is correctly configured. Also, the DEBUG View in AEL Estuary MOD can be useful.

(2017-08-06, 14:11)ibanana Wrote: [ -> ]EDIT : Solved!! Not compatible with network play....

EDIT 2 : In fact, it is not possible to run in samba, but with a mounted drive : no problem! ------------>>>> I suggest to add this info in the first post NodNod

Sorry, AEL still lacks proper documentation/tutorials because I didn't have time to write them yet. Writing the docs takes a lot of time, sometimes every more than development. Also, because AEL is under heavy development lot of things are changing so I do not want to spend time in writing the docs and then have to change them later.

Yeah, AEL is a launcher plugin so if the launched program does not support ROMs in remote filesystems then it won't work. In order to solve this I believe ROM Collection Browser automatically copied the remote ROM into a temporal local file before launching the emulator. AEL does not support this and all ROMs must have in a locally accessible filesystem. A mounted Samba share is a locally accessible filesystem (basically, anything you can see with the ls command is locally accessible).

(2017-08-06, 14:11)ibanana Wrote: [ -> ]EDIT 3 : I've scrapping issues. I can not have the asset downloaded... Sad See log file
In addition,is there an option "Rescrappe all the Rom for Assets" ? I could not find it....

Code:
17:18:10.697 T:7028   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.NameError'>
                                            Error Contents: global name 'image_name' is not defined
                                            Traceback (most recent call last):
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\addon.py", line 39, in <module>
                                                main.Main().run_plugin()
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 248, in run_plugin
                                                with SingleInstance(): self.run_protected(args)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 333, in run_protected
                                                self._command_add_roms(args['launID'][0])
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 2061, in _command_add_roms
                                                self._roms_import_roms(launcher)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 7731, in _roms_import_roms
                                                romdata     = self._roms_process_scanned_ROM(launcherID, ROM)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 7985, in _roms_process_scanned_ROM
                                                romdata[A.key] = self._roms_scrap_asset(asset_kind, local_asset_list[i], ROM, launcher)
                                              File "C:\Users\Salon\AppData\Roaming\Kodi\addons\plugin.program.advanced.emulator.launcher\resources\main.py", line 8132, in _roms_scrap_asset
                                                log_debug('{0} scraper: user chose local image "{1}"'.format(image_name, image_url))
                                            NameError: global name 'image_name' is not defined
                                            -->End of Python script error report<--

You get this crash when executing "Rescan ROMs local assets/artowork" in the launcher context menu?

(2017-08-06, 18:11)ibanana Wrote: [ -> ]Sorry to be "question addict"... Big Grin

I can not find any possibility for an automatic scrapping ofr all assets. Ihave found the way to scrap manualy each (title, box, etc.) but doing this for each Roms is so long....
Maybe there is a solution to get this automaticly?

Currently there is not such an option for two main reasons:

a) Due to the huge number of assets I do not want to overload the artwork websites. If you have few ROMs then it should be OK to download artwork manually for each ROM. If the task is tedious because you have many ROMs then you must download the artwork packs as suggested in the first post Wink

b) Not all scrapers support all types of artwork. The current implementation allows you to choose one scraper and then it will download all the artwork types supported by that scraper. If I implement an option like "Scrape all artwork types" then it would be difficult to configure the scraper for each type of artwork.

To download missing artwork using a different scraper you can then go to addon settings, in the "ROM scanner" tab choose "Local Images + Scrapers" in the "Asset scan policy". In the "ROM scraping" tab choose a different asset scraper than before. Then, using the launcher context menu delete all the ROMs from the launcher. Note that the downloaded assets in the previous scan will still be there (deleting ROMs from launcher only removes them from AEL's database but does not delete any ROM or artwork file). Scan the launcher for ROMs again and the missing artwork will be scraped. In order to not re-scrape the metadata again, I recommend you configure the Offline scraper as the metadata scraper to speed things up OR save the ROMs metadata to NFO files before deleting them and then you choose "NFO files" in "Metadata scan policy".
(2017-08-07, 06:46)loktar Wrote: [ -> ]I have the same problem using mobygames as asset scraper, but when using arcadedb instead the process goes normal.

OK, I will have a look.

TO EVERYONE: by popular demand, I will implement an option to scrape all assets at once. I will need some time since I have to change quite some stuff inside AEL's guts.
(2017-08-07, 06:13)Wintermute0110 Wrote: [ -> ]To do so, in the launcher context menu select "Edit launcher", "Advanced Modifications", "Modify Arguments:" and change the arguments to:

Code:
-L "C:\Users\brian\AppData\Roaming\RetroArch\cores\bsnes_balanced_libretro.dll" -f "$rom$"

and report back.

*sigh* Thank you!

Yup, that did it. I double checked to verify that's not needed on MacOS or Linux. If it weren't for a few Steam games that are Windows exclusives, I'd be switching this Gaming HTPC over to Arch or even Ubuntu in a second! I might even do some tests with Steam streaming from my big gaming box to see if I can live with that.

Thanks again!
Something I came across this evening. I'm using Hyperspin / EMUMovies asset packs which are named to match NoIntro/ReDump data. For most everything, these work great! However, I notice that for any game that's multi-disc, these assets don't work because they are named to match each disc; not to match the overall game. An example for Chrono Cross:

The game name is parsed as:

Code:
Chrono Cross (USA)

The images are:

Code:
Chrono Cross (USA) (Disc 1).png
Chrono Cross (USA) (Disc 2).png

So the system can't match them up. I see a path to patching this fairly easily in the Python code; but, it's more work than I can take on this evening as the call to process_scanned_rom relies on the stripped name. If you have an alternate plan to fix this issue, I thought I'd ask about it here before I dive into Python code in the next few days.
(2017-08-08, 07:35)nalthien Wrote: [ -> ]Something I came across this evening. I'm using Hyperspin / EMUMovies asset packs which are named to match NoIntro/ReDump data. For most everything, these work great! However, I notice that for any game that's multi-disc, these assets don't work because they are named to match each disc; not to match the overall game. An example for Chrono Cross:

The game name is parsed as:

Code:
Chrono Cross (USA)

The images are:

Code:
Chrono Cross (USA) (Disc 1).png
Chrono Cross (USA) (Disc 2).png

So the system can't match them up. I see a path to patching this fairly easily in the Python code; but, it's more work than I can take on this evening as the call to process_scanned_rom relies on the stripped name. If you have an alternate plan to fix this issue, I thought I'd ask about it here before I dive into Python code in the next few days.

Multi-disc ROM support is still preliminary. Thanks for reporting this, I will have a look ASAP. If you can provide a patch to save me some work that would be great.
Is it possible to implement ScummVM support? XML file is available at GameDBInfo.
(2017-08-08, 10:57)Slurm Wrote: [ -> ]Is it possible to implement ScummVM support? XML file is available at GameDBInfo.

Yes, I guess so. I will need to do some research about the "ROMs" ScummVM uses and create the database because I have never used it myself. Do you have any useful links about how to setup ScummVM Retroarch core? For example: all ScummVM games have a file like "shortname.scummvm" that matches GameDBInfo name and can be used in the ROM scanner with extension "scummvm".
(2017-08-08, 14:34)Wintermute0110 Wrote: [ -> ]
(2017-08-08, 10:57)Slurm Wrote: [ -> ]Is it possible to implement ScummVM support? XML file is available at GameDBInfo.

Yes, I guess so. I will need to do some research about the "ROMs" ScummVM uses and create the database because I have never used it myself. Do you have any useful links about how to setup ScummVM Retroarch core? For example: all ScummVM games have a file like "shortname.scummvm" that matches GameDBInfo name and can be used in the ROM scanner with extension "scummvm".

This works for me: https://retropie.org.uk/forum/topic/6905...m-cores/13 (last post).