Announcing Pegasus Frontend
-
@AndersHP @Newellj79 Yeah someone (me?) should really make a frontend chooser dialog. I've just updated the first post with the launching info, thanks.
@Darksavior still on my to do list, sorry -- I'd like to add it by implementing theme specific options, which could then be changed in a settings menu.
@meaning I tend to hang out in the
#retropie
channel on afternoons (GMT+2).PS. We're over 500 posts now, wow!
-
So, testing this I realized that we can make a system selection screen with video backgrounds, at least on Windows ( performance hit on Pi could be Big, suppose). OMG.
-
@tronkyfran I imagine it could replicate most of launchbox's functionality eg coverflow etc.
-
@herb_fargus As far as I know, the limit is the computer performance, really really excited about this, I'm testing this since fluffypillow released the tutorials and will probably make a tronkyfran's theme adaptation for this to train a bit myself on qml before going to my oldroom-like theme.
-
@fluffypillow I tried daphne today and the games won't show in pegasus. I don't even see the daphne gamelist xml being processed when pegasus is loading. Daphne is viewable in ES. Any ideas?
-
@fluffypillow said in Announcing Pegasus Frontend:
[directory of the rom]/media/
Could it also check [directory of the rom]/images/ for those of us who have been using Steven Selphs scraper with the option to put media in the roms folder under "images" ?
-
@darksavior Interesting, could you check the
es_systems.cfg
that the Daphne rom directory is indeed there, and thegamelist.xml
is either in that folder, or under~/.emulationstation/gamelists/daphne/gamelist.xml
? If everything seems to be in place, please upload the systems and gamelist file somewhere and I'll check them. Did this work in earlier versions?@Alturis You can create a symlink (an "alias" for the folder) with the name
media
, pointing to yourimages
directory. Here's how:cd ROM_DIRECTORY ln -s images media
If you now open the
media
dir, you'll see the contents ofimages
, and Pegasus should be able to access them too. -
@fluffypillow
Everything's in~/.emulationstation/gamelists/
. ES has no issues with daphne. I never tried daphne before so I can't say if it worked in pegasus in the past. I'm using stretch if it matters. https://www.dropbox.com/s/f2yval4afi79rfp/gamelist.xml?dl=0
https://www.dropbox.com/s/yajohaz7homa118/es_systems.cfg?dl=0Pegasus doesn't even see daphne's
gamelist.xml
: -
@Darksavior Ah I see, Daphne is that emulator that stores games in directories, right? Pegasus probably didn't find any files with
.daphne
extension, so it skipped processing the gamelist XML. I can add directory search support, in case this caused the issue. -
@fluffypillow said in Announcing Pegasus Frontend:
You can create a symlink (an "alias" for the folder) with the name media, pointing to your images directory.
Ah. Good tip. Linux/Unix is not my first language. ;)
Will have to think in those terms moving forward.
-
@fluffypillow amazing work, been following since the beginning and I managed to compile it for the Amlogic S905 using LibreElec, had some problems with QT but finally got 5.9.1 to compile. I am trying to switch from ES to Pegasus, I know its still in early development but I am amazed and how fast it loads vs ES (ES takes about 5 or more minutes with all my roms, vs less than 1 minute for Pegasus) and how well it runs on the s905, besides other bugs that ES seems to have on my build, but that's not for this thread.
Anyways I have 3 small questions I could not really find the answer to (or maybe I didn't search that well), hope I won't bother you to much with them.
I see you can run scripts after events, like quit or so, are these scripts regular .sh scripts?yes they are :) but there is no option to run them at start?- I currently have a lot of ROMS with all the meta data and images for ES, Pegasus loads them up correctly, but it shows the box art as the thumbnail and the video as preview, Is there a way without changing/deleting other images to select what is shown instead of the box art? or does it depend on the theme?
I see there is a way to select "Favorites" but I could not find how to mark a game as favorite, is this still not implemented?
Edit: I see the mark as favorite is not yet implemented, but can be added manually.
-
@shantigilbert Thanks, good to hear it works for you too! Feel free to report if you get any issues on the S905. As for the questions,
- Pegasus will try to run any executable files it finds, be it shell script, a program or eg. python code (just mark them executable with
chmod +x filename
). There's no on-start script, as you usually want such startup script to fully finish before a program starts (eg. preparing the file system, setting up network sockets, etc.). You can always just write a launch/wrapper script for this task. - Yes, that depends on the theme (but theme makers can add support for changing what's displayed).
- Yeah, marking as favorite is not yet implemented, but if it's marked as one in ES2's gamelist, it will be recognized.
- Pegasus will try to run any executable files it finds, be it shell script, a program or eg. python code (just mark them executable with
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert Thanks, good to hear it works for you too! Feel free to report if you get any issues on the S905.
Thank you! I actually did ran into a problem, Since you are extremely good at QT maybe you can shed some light on this subject? not really with Pegasus itself but I can't seem to run it as a service, I know it sounds stupid, why would I need to run it as a service? but since I run it from an add-on in Kodi I need to run it as a service so I can kill kodi after launch, if I just run it directly Pegasus gets killed with kodi :(
I've read a few things about QT and running them as a service and all I have found is that it needs the QTservice plugin, but unfortunately I have no idea how to implement that.
-
@shantigilbert Hm I'm not really familiar with Kodi addons, how does it launch programs exactly? What exactly is a "service" in this context (not a systemd module or a daemon, I suppose)? Naively thinking, I'd solve this by writing an addon that calls a shell script which kills Kodi and launches Pegasus. Would that be feasible?
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert Hm I'm not really familiar with Kodi addons, how does it launch programs exactly? What exactly is a "service" in this context (not a systemd module or a daemon, I suppose)? Naively thinking, I'd solve this by writing an addon that calls a shell script which kills Kodi and launches Pegasus. Would that be feasible?
Running it as a service with systemd (systemctl start pegasus, in this case)
Kodi seems to kill any program or shell script that was called from within when it closes, so lest say I call Pegasus and after that I kill Kodi, Pegasus starts loading but as soon as Kodi is killed, so is Pegasus. I honestly don't know if that is how Linux works, but maybe I am missing something very dumb.
running them is very straight forward
xbmc.executebuiltin('System.Exec("/usr/bin/pegasus-fe.sh")')
Anyways if you try to run Pegasus as a systemd service it complains it can't find the libraries required, even if they are in the LD_LIBRARY_PATH which is what I've found on google from people trying to run QT apps as services.
in comparison running ES,Retroarch, advmame, PPSSPP as services works fine.
-
@shantigilbert I see, when Kodi launches Pegasus, Kodi likely becomes its "parent", so when you kill it, all the programs it launched will also die.
As for the libraries, could you post the full error log? If it's missing Qt libs, you could also solve that by creating a static build.
-
@fluffypillow said in Announcing Pegasus Frontend:
@shantigilbert I see, when Kodi launches Pegasus, Kodi likely becomes its "parent", so when you kill it, all the programs it launched will also die.
As for the libraries, could you post the full error log? If it's missing Qt libs, you could also solve that by creating a static build.
Yeah, that is the problem with Kodi, I am figuring out if I can run a process that is not attached to it and that will solve my problem, but so far no luck.
I can't seem to be able to create a static build on the S905 unfortunately :(
I will get the full error when I get home, but its just a generic "can't find shared library QT5Gamepad"I appreciate the help even tho its not directly Pegasus at fault here.
edit: this is the error /usr/bin/pegasus-fe: error while loading shared libraries: libQt5Gamepad.so.5: cannot open shared object file: No such file or directory but if I run it normally pegasus-fe works fine
-
So using the documentation, I’ve managed to put together a working grid view. I want to try and creates different screens (states). Would states be the best way to implement (system list view > game so grid view > game details)
Also I’ve noticed the controls page is not working :(
http://pegasus-frontend.org/user-guide/controls -
@halfmanhalfcake Nice! Yes, states could be useful for such cases. If you theme has separate, individual "screens", like in ES2, and you want to change between them, you could implement each screen in a screen-sized Item, then change their position or anchor in the states. Or you could realign or change the shape and positions of the items if that's better for the theme, though that can end up a bit complicated.
Also the controls page link is http://pegasus-frontend.org/docs/user-guide/controls/; did you find a broken link somewhere?
@shantigilbert yeah that looks like a lib path issue. How are you launching Pegasus? I think In your case it should be like
LD_LIBRARY_PATH=/directory/of/libQt5Gamepad /path/to/pegasus-fe
. You can also set lib paths globally inld.conf
. -
@fluffypillow Yep on the simple theme tutorial > changing collections > tip :)
In terms of the screen, It might be too complicated for me at the moment, as getting a gridview working was hard enough.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.