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 @fastpop72
      last edited by

      @fastpop72 Thank you, actually I plan to make it so all quit buttons could be enabled/disabled individually, probably together with some settings file entries to also make it work on eg. Android. I'm not sure about the settings and help screen yet (I might need some license texts to be accessible), and also perhaps a full menu disable option could be possible too in the future.

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

        Weekly update! Well, sort of, as mentioned haven't had time the last week, but I should have some in this one.

        At the moment I'm still struggling with the Pi 4 support. I have an idea of where do things go wrong, but couldn't confirm it yet and as it's quite deep in some low level code, it takes significant time to try out any changes. Hopefully I can do it without sacrificing too much sanity.

        Other than that I'm writing documentation and might also do some cleanup/redesign on the home page.

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

          @fluffypillow I'm here to test out builds if you wish.

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

            @Darksavior Thanks, unfortunately this time it's creating the builds that takes time, and figuring out what exactly happens near the driver. Will report as soon as I find something out.

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

              @Darksavior just to make sure, does game launching work in EmulationStation from the fkms branch?

              hooperreH DarksaviorD 2 Replies Last reply Reply Quote 0
              • hooperreH
                hooperre @fluffypillow
                last edited by

                @fluffypillow Does for me. Yes.

                4B ~ RPi PSU 5.1V / 3.0A ~ 32GB SanDisk microSD ~ 128GB USB

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

                  @hooperre thanks; I've actually managed to do some good progress today, if I'm lucky I might be able to fix this soon.

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

                    @fluffypillow yes. I do need to test the steamlink app but all emulators load with no issues.

                    fluffypillowF 1 Reply Last reply Reply Quote 0
                    • PlayingKarrdeP
                      PlayingKarrde
                      last edited by

                      I finally managed to get RetroArch running on the Shield. For anyone else that wants to get it up and running this should be universal:

                      collection: Super Nintendo Entertainment System
                      shortname: snes
                      extensions: sfc, smc, zip
                      launch: am start --user 0
                        -n com.retroarch.aarch64/com.retroarch.browser.retroactivity.RetroActivityFuture
                        -e ROM "{file.path}"
                        -e LIBRETRO /data/user/0/com.retroarch.aarch64/cores/bsnes_performance_libretro_android.so
                        -e CONFIGFILE /storage/emulated/0/RetroArch/config/retroarch.cfg
                        -e IME com.android.inputmethod.latin/.LatinIME
                        -e DATADIR /data/data/com.retroarch.aarch64
                        -e APK /data/app/com.retroarch.aarch64-1/base.apk
                        --activity-clear-top
                      

                      Just change for your specific collections (make sure to change the core file to one that is specific to your collection though of course).

                      This is also specifically for the aarch64 build of RetroArch. If for some reason you don't want to use the 64 version I believe you can just remove the .aarch64 parts from any of this. YMMV though.

                      @fluffypillow since this took me a while to figure out, and since the Shield is a good platform for this FE and RA the most useful emulator, I wonder if it would be worth adding this info to the docs as well?

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

                        @PlayingKarrde sure, it can be added, and I'll also mention the 64bit version. Compared to the example from the docs, the difference (other than aarch64) seems to be

                          -e LIBRETRO /data/user/0/com.retroarch.aarch64/cores/bsnes_performance_libretro_android.so
                          -e CONFIGFILE /storage/emulated/0/RetroArch/config/retroarch.cfg
                        

                        ie. the Shield uses /data/user/0 instead of /data/data and the config is stored directly on the storage (instead of under Android/data/com.retroarch/files). Is that correct? I wonder if that's something device- or Android version specific thing, or perhaps a setting in RA?

                        1 Reply Last reply Reply Quote 0
                        • PlayingKarrdeP
                          PlayingKarrde
                          last edited by

                          Yes that's correct. I feel like it is platform specific because the shield seems to have a lot of it's settings split into storage for easy access. The other location is not directly accessible without root access.

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

                            @PlayingKarrde turns out /data/user/0 is actually a symlink to /data/data, so both should work in theory. Could it be the config location then?

                            Edit: Indeed it seem that when you create a "New Configuration" it is created in a new RetroArch directory under the storage. By default both 32 and 64 bit releases seem to use Android/data/com.reatroarch. This could be pointed out in the docs.

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

                              @Darksavior Progress! I've managed to launch both console and 3D programs with this build. Before running, you might need to

                              export QT_QPA_EGLFS_KMS_ATOMIC=1

                              An issue I've noticed is that after returning to Pegasus the keyboard presses seem to be duplicated. Will take a look into it. Also I couldn't test how it works with multiple screens or under X11. Haven't tried gamepads and actual emulators or ports yet either.

                              DarksaviorD 1 Reply Last reply Reply Quote 1
                              • PlayingKarrdeP
                                PlayingKarrde @fluffypillow
                                last edited by

                                @fluffypillow said in Announcing Pegasus Frontend:

                                @PlayingKarrde turns out /data/user/0 is actually a symlink to /data/data, so both should work in theory. Could it be the config location then?

                                Edit: Indeed it seem that when you create a "New Configuration" it is created in a new RetroArch directory under the storage. By default both 32 and 64 bit releases seem to use Android/data/com.reatroarch. This could be pointed out in the docs.

                                Interesting. Hmm then maybe it was purely the fact I was always using the aarch64 version and didn't have correct references. Although the com.retroarch.aarch64/com.retroarch.browser.retroactivity.RetroActivityFuture is also different but I'm unsure what that is a reference to tbh so I can't say what it should be looking for.

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

                                  @fluffypillow Success! It seems to work without that command, though I do get the message Setting framebuffer size is only available with DRM atomic APIwhen not using it. If I do use it, I get the error framebuffer size format is invalid. I also get QObject::connect(QObject, FrontendLayer): invalid null parameterand [w] QCoreApplication::postEvent: Unexpected null receiverwhen loading games, though that's without using your command and I've messed around altering the stock theme too.

                                  So I'm finally starting to get higher res box art, and the art is very blurry when displayed in pegasus. Any ideas? The current ones I'm testing with are nothing fancy..850x850 jpegs. I use 1080p output, but I also tried 4k output and there's no change in quality.

                                  Original
                                  Astal (USA) (DW0722)-image.jpg

                                  Pegasus
                                  20191004_025312.jpg

                                  Emulationstation
                                  20191004_050056.jpg

                                  PlayingKarrdeP fluffypillowF 2 Replies Last reply Reply Quote 0
                                  • PlayingKarrdeP
                                    PlayingKarrde @Darksavior
                                    last edited by

                                    @Darksavior That's most likely due to the sourceSize attribute for the image. It's imported at whatever resolution is specified there and then scaled.

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

                                      @Darksavior yes, the images are reduced to 256x256, which might be indeed a bit small on 4K :)

                                      The atomic mode setting should be turned on, it allows to use a more modern way to handle the video driver, according to the docs, which the Pi 4 happens to support. Don't worry about the warning, apparently there's a way to provide some framebuffer settings to override, and the warning is produced when it's not set (ie. invalid).

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

                                        Thanks, guys.

                                        @fluffypillow So how do I automate that command? I tried to go into retropie-setup's autostart settings and add export QT_QPA_EGLFS_KMS_ATOMIC=1 before pegasus-fe but that doesn't work. If that command will be integrated into pegasus, then I can wait, no big deal. My main concern was games loading and now I can finally stop using ES again.

                                        Also, I'm testing the scaling, 512 seems to still be smooth and not a blurry mess. Too bad I can't adjust scaling based on system. Overall, I'm getting a lot of box art loading while scrolling. This pi4 has 2GB of ram. Is there a way to adjust ram usage in pegasus? Or do I give the gpu more ram? In the meantime I have lowered the res of some of those systems close to the scaling res which minimizes the loading.

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

                                          @Darksavior on RetroPie /usr/bin/pegasus-fe is a script, where such exports can be added (there's already a color space related one).

                                          Image loading depends on the GPU memory (the larger it is the more images it can hold) while the actual speed of loading depends on the file system reading speed and how fast the CPU and the RAM is.

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

                                            @fluffypillow Fair Enough. The keyboard also stops working completely if you load a game, exit the game, and exit pegasus. Pegasus also crashed when disconnecting my ps4 pad.

                                            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.