RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Announcing Pegasus Frontend

    Scheduled Pinned Locked Moved Ideas and Development
    frontendpegasusc++developmentqml
    1.7k Posts 145 Posters 5.1m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • fluffypillowF
      fluffypillow
      last edited by fluffypillow

      @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!

      1 Reply Last reply Reply Quote 2
      • T
        tronkyfran
        last edited by

        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.

        herb_fargusH 1 Reply Last reply Reply Quote 0
        • herb_fargusH
          herb_fargus administrators @tronkyfran
          last edited by

          @tronkyfran I imagine it could replicate most of launchbox's functionality eg coverflow etc.

          If you read the documentation it will answer 99% of your questions: https://retropie.org.uk/docs/

          Also if you want a solution to your problems read this first: https://retropie.org.uk/forum/topic/3/read-this-first

          T 1 Reply Last reply Reply Quote 1
          • T
            tronkyfran @herb_fargus
            last edited by

            @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.

            1 Reply Last reply Reply Quote 1
            • DarksaviorD
              Darksavior
              last edited by Darksavior

              @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?

              fluffypillowF 1 Reply Last reply Reply Quote 0
              • AlturisA
                Alturis @fluffypillow
                last edited by

                @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" ?

                RP 4.7.1 • Pi4 4Gig • CanaKit Aluminum • 64GB microSD • 1920x1080 BarTop [2 Sanwa sticks]

                1 Reply Last reply Reply Quote 0
                • fluffypillowF
                  fluffypillow @Darksavior
                  last edited by

                  @darksavior Interesting, could you check the es_systems.cfg that the Daphne rom directory is indeed there, and the gamelist.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 your images directory. Here's how:

                  cd ROM_DIRECTORY
                  ln -s images media
                  

                  If you now open the media dir, you'll see the contents of images, and Pegasus should be able to access them too.

                  DarksaviorD 1 Reply Last reply Reply Quote 0
                  • DarksaviorD
                    Darksavior @fluffypillow
                    last edited by Darksavior

                    @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=0

                    Pegasus doesn't even see daphne's gamelist.xml :

                    0_1518491145174_20180212_184106_preview.jpeg

                    AlturisA 1 Reply Last reply Reply Quote 0
                    • fluffypillowF
                      fluffypillow
                      last edited by

                      @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.

                      1 Reply Last reply Reply Quote 0
                      • AlturisA
                        Alturis @Darksavior
                        last edited by Alturis

                        @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.

                        RP 4.7.1 • Pi4 4Gig • CanaKit Aluminum • 64GB microSD • 1920x1080 BarTop [2 Sanwa sticks]

                        1 Reply Last reply Reply Quote 0
                        • S
                          shantigilbert
                          last edited by shantigilbert

                          @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.

                          1. 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?
                          2. 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?
                          3. 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.

                          1 Reply Last reply Reply Quote 0
                          • fluffypillowF
                            fluffypillow
                            last edited by

                            @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,

                            1. 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.
                            2. Yes, that depends on the theme (but theme makers can add support for changing what's displayed).
                            3. Yeah, marking as favorite is not yet implemented, but if it's marked as one in ES2's gamelist, it will be recognized.
                            S 1 Reply Last reply Reply Quote 0
                            • S
                              shantigilbert @fluffypillow
                              last edited by

                              @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.

                              fluffypillowF 1 Reply Last reply Reply Quote 0
                              • fluffypillowF
                                fluffypillow @shantigilbert
                                last edited by

                                @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?

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  shantigilbert @fluffypillow
                                  last edited by

                                  @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.

                                  1 Reply Last reply Reply Quote 0
                                  • fluffypillowF
                                    fluffypillow
                                    last edited by

                                    @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.

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      shantigilbert @fluffypillow
                                      last edited by shantigilbert

                                      @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

                                      1 Reply Last reply Reply Quote 0
                                      • halfmanhalfcakeH
                                        halfmanhalfcake
                                        last edited by

                                        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

                                        1 Reply Last reply Reply Quote 0
                                        • fluffypillowF
                                          fluffypillow
                                          last edited by

                                          @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 in ld.conf.

                                          halfmanhalfcakeH S 2 Replies Last reply Reply Quote 0
                                          • halfmanhalfcakeH
                                            halfmanhalfcake @fluffypillow
                                            last edited by halfmanhalfcake

                                            @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.

                                            fluffypillowF 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.