Kodi Community Forum
IARL - Deprecated - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Add-on Support (https://forum.kodi.tv/forumdisplay.php?fid=27)
+---- Forum: Game Add-ons (https://forum.kodi.tv/forumdisplay.php?fid=291)
+---- Thread: IARL - Deprecated (/showthread.php?tid=231339)



RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-16

It still doesn't work for me Sad

I'm going to try completely uninstalling everything and starting from scratch again. Maybe there's a config somewhere that's messed up.


EDIT - After uninstalling everything, erasing left over folders/files, reinstall everything from scratch, make necessary changes (add new launcher script, update xml, etc).. doesn't work! Here is the blurb from the log:
Code:
21:24:27 941.962830 T:1186985024  NOTICE: Unzip Successful
21:24:27 941.967346 T:1186985024  NOTICE: External Command: /storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh picodrive "/storage/.kodi/userdata/addon_data/plugin.program.iarl/temp_iarl/Aaahh!!! Real Monsters (USA).md"
21:24:27 942.037964 T:1584395328  NOTICE: Thread FileCache start, auto delete: false
21:24:28 942.630127 T:1968066560   ERROR: GetDirectory - Error getting plugin://plugin.program.iarl/Emulator/Aaahh%21%21%21+Real+Monsters+%28USA%29
21:24:28 942.632935 T:1968066560   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.program.iarl/Emulator/Aaahh%21%21%21+Real+Monsters+%28USA%29) failed
21:24:28 942.698425 T:1584395328  NOTICE: Thread BackgroundLoader start, auto delete: false
21:24:30 945.197815 T:1186985024  NOTICE: Thread FileCache start, auto delete: false


EDIT 2 - Ok, ran that external command in SSH.. this is what my screen outputted:
Code:
PiBOX:~ # /storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh picodrive "/storage/.kodi/userdata/addon_data/plugin.program.iarl/temp_iarl/3 Ninjas Kick Back (USA).m
d"
: not foundodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh: line 6:
: No such file or directorys/emulator.tools.retroarch
: not foundodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh: line 8:
/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh: line 29: syntax error: unexpected end of file (expecting "then")


EDIT 3 - Last one tonight?
Getting close I think... I did another reinstall of everything. Still playing around with Sega Genesis (it's a smaller list than NES, and doesn't require a BIOS so I can eliminate that being the problem). I've found that if I use the addon, and browse to the console and select the rom.. that much is working perfectly. It's only when I try to launch it that I have trouble. Going with a fresh install, I've no longer got that custom CFG file I created. So this is going straight off the edits you made. When I go to launch a rom, the screen shows "buffering' for a moment, then goes completely black. Nothing else happens. I've sat and listened to see if maybe there was a rom playing but just not being displayed. This isn't the case. Strangely, if I look in the Kodi.log and find where the IARL was doing it's external command, it shows everything should be working. I've copied down the entire command to a clipboard and pasted it into SSH. By doing that, with Kodi running, the script does what it's supposed to. It shuts down Kodi, loads the console and the rom. Then if I hit F1 on the Pi2 keyboard, and exit RetroArch, Kodi comes right back up. Just like it's supposed to. So where is the fault? Everything is working exactly like it's supposed to, except for when I'm doing it INSIDE the addon. It should be working! ARGH!


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-16

Ok, got a couple of hours today to mess with this before I have to get going to work. I had another thought. Since you're experimenting with RetroPlayer and the custom build of Kodi, is it possible it's conflicting with my setup? Since I'm not using the custom build, maybe I'm missing some files needed to make this work for me? I wonder if you tried to use just the straight-up official OpenELEC release with the base install of Kodi, if it wouldn't work for you either? Something worth trying maybe..

I had another look at your new "romlaunch_OE_RPi2.sh" file. Going line by line, I can kinda see what's going on. The first bits you're configuring the path an file locations. Something of note here. In my initial installation of RetroArch, the "Save Files" and "System" paths don't exist. In fact, when I first run the the modified retroarch.start file, it creates these paths in a different location entirely. Rather than being in "/storage/.kodi/addons/emulator.tools.retroarch/" it creates them in "/storage/.kodi/userdata/addon-data/emulator.tools.retroarch". Might this be a potential problem? Also, in your instructions, you said that the command variables are "($1=core name, $2=config filename, $3=ROM Path)". So in the command part of "romlaunch_OE_RPI2.sh" you have it sending the core name and then just the config name. Shouldn't it be $3 instead of $2 if you're not using a custom config?

I'm grasping at straws. Like I said yesterday though.. it only fails when I try to launch it from WITHIN Kodi. If I have Kodi running, but launch the command via SSH, everything works.


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-17

Zach, come up with any other ideas? I'm really excited to make this work!


RE: Internet Archive ROM Launcher - zachmorris - 2015-11-17

(2015-11-17, 05:32)hansolo77 Wrote: Zach, come up with any other ideas? I'm really excited to make this work!

Well I thought I had it working, but you're right, it doesnt work in all cases. It may be some weird video config thing, but I consistently get a black screen instead of Retroarch launching as expected. Seems hit and miss and depends on the core?

I'll have to dig into it some more. I'll ask on the OpenElec thread too, seems a lot of people were having similar issues.


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-17

Ah ha! I'm glad to hear that it's not just me. That means there's still work to be done, and I'm not all just crazy! Smile

I played a bit more tonight when I got home from work. Still not coming up with anything. However I did notice something peculiar and thought I'd share it. I turned on the debug and all component-specific logs. I then ran it through, and saw this:

http://i.imgur.com/J0E5DRK.png

Is it possible that the addon is getting force-closed before sending the command to launch? I know we're using the new launcher script, but if your addon also has something that is triggering the Kodi shutdown, perhaps it's doing that before the new script has a chance to do its thing? This would also explain why when I edited that script to include an echo command (for the logs) it never showed it. The "NOTICE" in the log is probably something you've entered into the addon to alert what the external command will be but that's not actually when it's running it. Am I correct? So maybe this is something more fundamental?

I'm also intrigued by the suggestion of the video config. Perhaps it has something to do with the resolution setting? Whenever we're trying to launch the ROM from within the addon, aren't we in a 720p scale (as identified by the /720 folder name)? I know most consoles run around 320. Maybe Kodi is having trouble switching? I guess this wouldn't really matter since we're closing down Kodi completely and essentially running the new program off of nothing. That also wouldn't explain why it would work when launching manually from SSH.

I still feel like there's gotta be more to this than what we can see via the Kodi logs. There has to be a way to view an OS/Kernel log to see what is going on after Kodi closes. When you SSH into the Pi2 and launch retroarch manually, you can see whatever errors/etc it gives you because it it rendering it in the SSH terminal window. I just wish I could see what's happening. I truly believe the solution would be a cinch once you can see whatever error is getting thrown out.


RE: Internet Archive ROM Launcher - bakito - 2015-11-18

i get every thing working and it is really great, thank you with this add on!
I notice one bug, well not really a bug, but a tiny little annoyance thou... i would love to put the random game playing on my home menu via shortcut...to lauch whatever game very quickly but it seems that when launching through shortcut the game does not refresh itself...i mean i go to random via my shortcut, quit and if a relaunch random play via shortcut it is the same game that appears....it is reallly not tha a problem but i thought i told you anyway...i understand if you have some more important things to look at ?
Anyway thanks a lot for your work as online gaming ( whatever the solution) is the future !!!!!
Cheers

Edit: just one request i just think about: the possibility to remove menu entry of system that we don t use...i don t play saturn game because donwloading is too long for me so i would like to remove the saturn entry of the menu ( and from random playing by extention, to be sur that whatever game is chosen for me i have the system ready)
Again it is just a fancy request not essential at all

Thank you!


RE: Internet Archive ROM Launcher - zachmorris - 2015-11-19

I finally got external launching on OpenElec/RPi to work (Note to other users, OpenElec on x86 already was working). I also learned a lot about shell scripts in the process Undecided
Looks like what was happening was that the script was running, but as soon as Kodi was exited, the thread that had started RetroArch was also exiting.

Anyway, here's the new method.

1) Create the following file:
/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh

Here's the contents of the file:
Code:
#!/bin/sh

. /etc/profile

#oe_setup_addon emulator.tools.retroarch

systemd-run /storage/.kodi/addons/emulator.tools.retroarch/bin/retroarch.start "$@"

2) Edit the file:
/storage/.kodi/addons/plugin.program.iarl/resources/data/external_command_database.xml

Here's an example launcher for Nestopia and Genesis Plus GX (I verified both work). Note I didn't try every single emulator, but it should be the same for all:
Code:
<launcher name="RetroArch Genesis Plus GX (Sega GG/MS/MD/Gen/PICO/SG-1000)" os="OpenElec">
        <launcher_command>/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh genesis_plus_gx "%ROM_PATH%"</launcher_command>
    </launcher>
<launcher name="RetroArch Nestopia (NES)" os="OpenElec">
        <launcher_command>/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh nestopia "%ROM_PATH%"</launcher_command>
    </launcher>

Follow the same method for your core of choice.

3) I edited my retroarch.start file to the following. My edit removes the --appendconfig command. You can use the appendconfig command if you like (just uncomment the line with the appendconfig command and comment the line below), but then you'll also have to edit the launcher commands listed in #2 above to append the config you want.

4) Run the following command from ssh to your OE box:
chmod a+x /storage/.kodi/addons/plugin.program.iarl/resources/bin/*
chmod a+x /storage/.kodi/addons/emulator.tools.retroarch/bin/*

5) From the IARL addon, select your archive of choice, then update the launcher to "External", then update the launcher command and select the launcher name you want (which will run the commands you edited in #2).

I tested NES (Nestopia), Genesis (Genesis_Plus_GX), and Stella. All worked great!

Note, that I'll add some additional code into my next release to automate this whole process. Unfortunately, my laptop screen decided to kick the bucket this week Sad
Thankfully, nothing happened to all my data, but it'll be a while before another update comes.


RE: Internet Archive ROM Launcher - zachmorris - 2015-11-19

(2015-11-18, 13:26)bakito Wrote: Edit: just one request i just think about: the possibility to remove menu entry of system that we don t use...i don t play saturn game because donwloading is too long for me so i would like to remove the saturn entry of the menu ( and from random playing by extention, to be sur that whatever game is chosen for me i have the system ready)
Again it is just a fancy request not essential at all

Thank you!

I'll add that to my list of things to do. In the meantime though, to remove an archive you dont want to see, simply delete the xml file in:
...addons/plugin.program.iarl/resources/data/dat_files


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-19

(2015-11-19, 21:40)zachmorris Wrote: I finally got external launching on OpenElec/RPi to work (Note to other users, OpenElec on x86 already was working). I also learned a lot about shell scripts in the process Undecided
Looks like what was happening was that the script was running, but as soon as Kodi was exited, the thread that had started RetroArch was also exiting.

Anyway, here's the new method.

1) Create the following file:
/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh

Here's the contents of the file:
Code:
#!/bin/sh

. /etc/profile

#oe_setup_addon emulator.tools.retroarch

systemd-run /storage/.kodi/addons/emulator.tools.retroarch/bin/retroarch.start "$@"

2) Edit the file:
/storage/.kodi/addons/plugin.program.iarl/resources/data/external_command_database.xml

Here's an example launcher for Nestopia and Genesis Plus GX (I verified both work). Note I didn't try every single emulator, but it should be the same for all:
Code:
<launcher name="RetroArch Genesis Plus GX (Sega GG/MS/MD/Gen/PICO/SG-1000)" os="OpenElec">
        <launcher_command>/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh genesis_plus_gx "%ROM_PATH%"</launcher_command>
    </launcher>
<launcher name="RetroArch Nestopia (NES)" os="OpenElec">
        <launcher_command>/storage/.kodi/addons/plugin.program.iarl/resources/bin/romlaunch_OE_RPi2.sh nestopia "%ROM_PATH%"</launcher_command>
    </launcher>

Follow the same method for your core of choice.

3) I edited my retroarch.start file to the following. My edit removes the --appendconfig command. You can use the appendconfig command if you like (just uncomment the line with the appendconfig command and comment the line below), but then you'll also have to edit the launcher commands listed in #2 above to append the config you want.

4) Run the following command from ssh to your OE box:
chmod a+x /storage/.kodi/addons/plugin.program.iarl/resources/bin/*
chmod a+x /storage/.kodi/addons/emulator.tools.retroarch/bin/*

5) From the IARL addon, select your archive of choice, then update the launcher to "External", then update the launcher command and select the launcher name you want (which will run the commands you edited in #2).

I tested NES (Nestopia), Genesis (Genesis_Plus_GX), and Stella. All worked great!

Note, that I'll add some additional code into my next release to automate this whole process. Unfortunately, my laptop screen decided to kick the bucket this week Sad
Thankfully, nothing happened to all my data, but it'll be a while before another update comes.

Big Grin I thought I might have been on to something. Was my screenshot helpful then? I will give this a go right now and report my findings!


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-19

It works! You are the man..man! Great job! Now I just need to get my controller configured the way I want.

Are you familiar with RetroArch at all? I mean, it looks like your original plan was for all this to work with ReroPlayer (Kodi's built-in). I'd like some tips on how to configure it. You said that the default retroarch.cfg should be all that is required for setting up the controller for multiple systems. I want to believe that, but I don't know how to make it work. Also, I remember seeing some stuff in the official RetroArch thread about configuring the controller to shut down the emulator. Do you know how I would go about setting that up? If you don't know anything really about it, that's fine.. I'll go over there. I just thought maybe you might know.

I'm really digging this. It's like the perfect solution to the Pi users. The only thing I have an issue with now is the load time of the game lists. I had a thought about that. Does IARL store a temporary list? If so, maybe you can make it more permanent and allow loading of different lists according to the consoles. I realize that the online lists are probably updated periodically, so you wouldn't really want a permanent list. Maybe something like this; have it download the list, then have it do a silent update in the background at like midnight or something. Then you always have an up to date list. Something else you could do is have it just assume you have the latest, then have it pop up a dialogue when you start the addon a week or so since the last update and ask if you want to check for new data. I think this would help a lot in terms of load times, because it looks like it's downloading the list (at least for me) every time I bring up the console list again. If I only play an NES game for like 10 minutes, then go back to pick a different one, it can sometimes take 10 minutes again to get that list! If it was all cached some how, that would be a big help.

I'm happy the way it is now too. Extra bits to make life easier are secondary. The big issue was just getting it to even work, and you've crushed it. Thanks a lot!


RE: Internet Archive ROM Launcher - petanque - 2015-11-20

Enter menu "retroarch --menu" or press F1 while ingame find input options and config your controller
https://github.com/libretro/RetroArch/wiki/RGUI

Check Custom Retroarch Controls
https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration


RE: Internet Archive ROM Launcher - zachmorris - 2015-11-20

(2015-11-19, 22:44)hansolo77 Wrote: I'm really digging this. It's like the perfect solution to the Pi users. The only thing I have an issue with now is the load time of the game lists. I had a thought about that. Does IARL store a temporary list? If so, maybe you can make it more permanent and allow loading of different lists according to the consoles. I realize that the online lists are probably updated periodically, so you wouldn't really want a permanent list. Maybe something like this; have it download the list, then have it do a silent update in the background at like midnight or something. Then you always have an up to date list. Something else you could do is have it just assume you have the latest, then have it pop up a dialogue when you start the addon a week or so since the last update and ask if you want to check for new data. I think this would help a lot in terms of load times, because it looks like it's downloading the list (at least for me) every time I bring up the console list again. If I only play an NES game for like 10 minutes, then go back to pick a different one, it can sometimes take 10 minutes again to get that list! If it was all cached some how, that would be a big help.

I can dig it too Tongue IARL comes with the ability to cache lists currently. Bring up the context menu and select the addon settings and make sure "Cache Lists" is enabled. The cache is cleared whenever you change the archives settings automatically, but after you get everything setup and you bring up the list, it should load significantly faster than it did the first time with Cache Lists enabled. I've tried this on RPi2 and I agree, it's painfully slow the first time, but after they're cached they load pretty fast.


RE: Internet Archive ROM Launcher - bleakassassin - 2015-11-20

Hey, great work on this plugin so far! It's a pretty ingenious way to play collections of so many older games.

I'd like to talk about the PlayStation games pulled from the Internet Archive for the plugin. I noticed that the name of the collection for them uses a non-standard name. It's uploaded as "PS Roms" with no description other than "Games." I can't locate it on the site if I use any of the standard keywords (No-Intro, TOSEC, PlayStation, PS1, PSone, PSX). I have a hunch as to why that is: the ISOs in the archives for this system are straight re-uploads from a warez site. Each individual game's download comes with an HTML file that points to the site. Something tells me that the PS1 collection(s) were uploaded with a stealthy name to fly under the radar of the archive admins.

The more relevant thing about this info, though, is this: The warez site in question doesn't only host No-Intro ROMs and ISOs. Many of the ISOs on the site are altered or truncated files that remove content from the files to decrease download sizes. This is noticeable in many PS1 games, as they have music tracks stripped from them. There are a lot of games from this set that lack much of any music whatsoever. Just one example is Twisted Metal. There could be people trying to play these games in Retroplayer from these sources and don't know any better, either thinking that there's an emulation issue or that the games didn't have music to begin with. The reality is that neither of these is true.

I just thought I'd bring that up. It seems like something that people could pretty easily run into if they want to play some PS1 games via IARL.


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-20

I'm having trouble with this now. I spent an hour or so last night going through and re-mapping the IARL settings to use the correct external command and testing. But I was noticing that pretty much everything I tried to run would crash after about 2 minutes. This is probably something to do with RetroArch and not IARL though. I also noticed some issues in Kodi globally after getting IARL to finally work. But I think it's just coincidental and not related. Specifically I'm having trouble with keeping audio in sync while watching videos, and I'm having a lot more instances of Kodi freezing up and requiring a full power cycle to fix. I had a thought it might be my controller I connected to the Pi for the emulating, so I unplugged that and will monitor if it makes any difference.


RE: Internet Archive ROM Launcher - hansolo77 - 2015-11-22

I guess the "Segmentation Fault" error I was getting that caused the crashes were maybe a known issue? I posted a reply in the OpenELEC thread for Pi users, and was recommended to try a newer 11/19 build. Using that, I had no crash! I still need to play with it more to find out for sure if it's fixed. I also noticed that he didn't include a lot of the available cores that the previous build had (like Nestopia, PCSX ReARMed, Genesis Plus GX, etc). I asked what I can do about it. Since the .so files are missing but the .info ones are still there, I wonder if they were removed because of incompatibility? Would simply dropping in the latest builds of those cores work? Like I said, still need to play around. But it looks so far like the new build is stable. It even removed that FPS counter!

@zachmorris - You might need to update your external_command_database.xml so they list only the ones available in this build. Does IARL parse this xml as just a list or is the length set at where it is? Like, can I add some if I wanted to, or would it not work? I thought about adding an extra set of commands that say "FOR PI USERS - Nintendo NES (FCEUmm)" to distinguish it apart from other OpenELEC devices. That way, when IARL detects the OS, it can list both options and give the user the choice which one to use.


This forum uses Lukasz Tkacz MyBB addons.