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.4m 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.
    • AndersHPA
      AndersHP
      last edited by

      Oh, and by the way. Pegasus won't be limited to widescreen monitors, right?
      Because if it won't support 4:3 or 5:4, I'm going to cry.

      My "Bubble Bobble" Themed Bartop Arcade
      My Gameboy

      1 Reply Last reply Reply Quote 1
      • meleuM
        meleu @AndersHP
        last edited by

        @AndersHP said in Announcing Pegasus Frontend:

        But how did you scrape, is it going to be a feature that's built in, or is it manually finding artwork on google for starters..?

        One of Pegasus features is:

        ES2 config compatibility: Pegasus can use ES2's gamelist files, no need to invent a new set of tools.

        ES = EmulationStation.

        • Useful topics
        • joystick-selection tool
        • rpie-art tool
        • achievements I made
        1 Reply Last reply Reply Quote 0
        • fluffypillowF
          fluffypillow
          last edited by

          Happy birthday for anyone who has it today! And a very merry unbirthday for the rest of us!

          @meleu ah yes, on-screen keyboard is also on my todo list :)

          @AndersHP At the moment assets are searched for in a subdirectory of the rom directory, see https://retropie.org.uk/forum/topic/9598/announcing-pegasus-frontend/52, while metadata is read from ES2's files. I've used Universal XML Scraper, but anything that works with ES should work fine.

          There's no limit on the size of the image files, they'll be downscaled on loading automatically.

          Pegasus itself works with all kinds of aspect ratios, you can even resize the window: https://snag.gy/alJfWv.jpg
          As for how it will look, that depends on the theme, but in general you could even make it work in portrait mode.

          AndersHPA 1 Reply Last reply Reply Quote 2
          • AndersHPA
            AndersHP @fluffypillow
            last edited by

            @fluffypillow Amazing.. Is there anything that Pegasus can't do? Will it make me a cup of coffee?

            My "Bubble Bobble" Themed Bartop Arcade
            My Gameboy

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

              Well, if you have a USB/GPIO coffee maker it can control... :)

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

                @fluffypillow after many hours of trial and error I managed to get Qt-everywhere to compile, but now I am having problems compiling pegasus-frontend itself, I get this error:

                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QSvgPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QICNSPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QICOPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QJpegPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QTgaPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QTiffPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QWbmpPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QWebpPlugin()'
                /tmp/ccKnint8.ltrans30.ltrans.o:<artificial>:function global constructors keyed to 65535_0_main.o.637746: error: undefined reference to 'qt_static_plugin_QGenericEnginePlugin()'
                collect2: error: ld returned 1 exit status
                make[2]: *** [Makefile:72: pegasus-fe] Error 1
                make[1]: *** [Makefile:44: sub-app-make_first] Error 2
                make: *** [Makefile:43: sub-src-make_first] Error 2

                do you have any idea what might be the problem?

                Thank you!

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

                  It seems you're trying to do a static build, but some plugins are either not available, or not linked to the final binary. You should see eg. -L<QT PATH>/plugins/imageformats -lsvg in the linking command.

                  Static build may require some additional tweaking, because the compiler also has to scan the QML files to figure out which additional plugins will it have to link to the binary. I haven't set up an automatic build test for that yet, but I plan to (there are a lot of build parameters that can be tweaked!), but I plan to.

                  Also if you're on desktop linux, you won't have to build your own Qt, you can use the official release (unless of course you explicitly want to do a static build or want a Qt with some additional tweaks).

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

                    @fluffypillow said in Announcing Pegasus Frontend:

                    It seems you're trying to do a static build, but some plugins are either not available, or not linked to the final binary. You should see eg. -L<QT PATH>/plugins/imageformats -lsvg in the linking command.

                    Static build may require some additional tweaking, because the compiler also has to scan the QML files to figure out which additional plugins will it have to link to the binary. I haven't set up an automatic build test for that yet, but I plan to (there are a lot of build parameters that can be tweaked!), but I plan to.

                    Also if you're on desktop linux, you won't have to build your own Qt, you can use the official release (unless of course you explicitly want to do a static build or want a Qt with some additional tweaks).

                    Thanks! I recompiled QT without the static flag and now it seems it compiled, but I do have a small problem.

                    mkdir: cannot create directory '/opt/pegasus-frontend': Permission denied

                    Since this is not retropie the /opt folder does not exists, is there an option to change this while compiling it?

                    I can see the Makefile has several lines hardcoded:

                    mkdir -p $(INSTALL_ROOT)/opt/pegasus-frontend

                    not sure if that can be changed.

                    Edit: nevermind, I should have read the building Wiki!

                    Thanks!

                    1 Reply Last reply Reply Quote 0
                    • AndersHPA
                      AndersHP
                      last edited by

                      I'm really excited for Pegasus to become available!

                      In my humble view, as nothing more than a simple retrogamer, it looks so much harder, better, faster, stronger than EmulationStation.. So much that I'm currently pausing further setting up of my arcade build's software part, since I don't want to immerse myself in all this setting up, if it'll be replaced soon by something that's better.

                      So, just to be sure, is it not everyone's opinion that Pegasus will totally race from and replace EmulationStation in the near future?

                      And exactly what is it, in layman's terms, that does that Pegasus is both better looking and faster than ES? Does it utilize the RaspberryPi's hardware better, or?

                      Sorry if these questions are silly...

                      My "Bubble Bobble" Themed Bartop Arcade
                      My Gameboy

                      lilbudL DarksaviorD 2 Replies Last reply Reply Quote 0
                      • lilbudL
                        lilbud @AndersHP
                        last edited by lilbud

                        @AndersHP In my eyes, it is a frontend that was built from scratch with all kinds of features added from the beginning, rather than taking 2 year old code and trying to shove changes in.

                        Artists depiction of Emulationstation with all of these features:
                        0_1496496351572_46406938-7f96-42cf-98bc-84870de3a6bb-image.png

                        Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                        Backlog: http://backloggery.com/lilbud

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

                          @AndersHP That is what I'm hoping. I'm anxiously waiting for a working build I can easily install.

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

                            Me when I see that people like Pegasus: alt text

                            lilbudL 1 Reply Last reply Reply Quote 2
                            • lilbudL
                              lilbud @fluffypillow
                              last edited by lilbud

                              @fluffypillow Is Pegasus going to have the same views as ES, simple, detailed, video, etc. ?

                              Sidenote, if you need any graphics, just let me know.

                              Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                              Backlog: http://backloggery.com/lilbud

                              1 Reply Last reply Reply Quote 1
                              • ?
                                A Former User
                                last edited by

                                Let me know too.

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

                                  Thanks, actually, I was thinking about collecting the different asset types in separate GitHub repos: there could be a repo for colored system logos, one for white-only logos, or another for platform controller icons (like you can see on lakka.tv's front page; I wonder where are those from?). So kind of like themes, but without the ES-specific XML files. I think assets like system logos are usually not customized as often as eg. backgrounds, so with this method you could create separate asset packs, and when you start working on a new theme, you can just pull the one that feels right for your project. I could also imagine a theme and separate icon/logo set mixing feature in the program itself too (in the far future).

                                  As for the views, there is no such settings yet. Since the simple and detailed views look completely different, instead of forcing one theme to support all kinds of user configurations, and keeping the theme updated when a new type of view is added (like video mode), I think creating separate themes would be more maintainable.

                                  lilbudL 1 Reply Last reply Reply Quote 0
                                  • lilbudL
                                    lilbud @fluffypillow
                                    last edited by

                                    @fluffypillow said in Announcing Pegasus Frontend:

                                    I wonder where are those from?

                                    https://github.com/libretro/retroarch-assets/tree/master/xmb/systematic/png

                                    How will theme creation work? Would it be done with the Qt Creator?

                                    Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                                    Backlog: http://backloggery.com/lilbud

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

                                      @lilbud oh nice, thanks. There's a drag-and-drop kind of layout designer in Qt Creator, but it's so slow on my PC I can't use it. It can help learning the basic layout and item types at the beginning though. I've found the regular text editor in Qt Creator comfortable enough (auto complete, jump to definition, debug tools, ...), but as with XML, you can use any other editor if you want.

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

                                        @fluffypillow sorry to keep bothering you about this, I think I am very close to getting this to work on my Amlogic S905 using Libreelec but I ran into a problem I am not sure why its happening:

                                        qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

                                        do you have any udea why its trying to use qt4 instead of qt5 to compile ?

                                        I am sure it has to be something on my system but I cannot figure it out :(

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

                                          @shantigilbert There's probably a different qmake in your $PATH (eg. under /usr/bin/), or you have an old package called qtchooser installed, which tends to set up some weird symlinks (but x64 on an ARM? Wow).

                                          It's not really a problem though, you can have more than one Qt setup. Just call your own qmake directly (/path/to/my/qmake [params]). Make sure the libs are installed to the location you've set during the Qt build.

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

                                            @fluffypillow I am cross compiling so x64 is not running on ARM, but I compile and installed QT5, I don't think I ever installed QT4 at all, so not sure why its trying to call it in that path.

                                            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.