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.0m 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.
    • M
      msheehan79
      last edited by

      @fluffypillow sure thing. Just did a retest tonight to make sure and something definitely changed.

      My setup is Win x64 and I use the metadata files in the pegasus/configs/metafiles directory. I reconfirmed tonight with just 1 metadata file (attached) in the folder.

      When I used an older build it works as expected:
      Ignored Files OK 12-39-gdd58baf.PNG

      With no other change but updating to yesterday's build:
      Ignored Files Appear 12-92-gb240543.PNG

      The metadata file contents: (ports-wolf3d.metadata.txt)

      collection: Ports
      shortname: ports
      extensions: wl6, sod
      launch: "..\..\..\launch\Ports-Wolf3D.cmd" "{file.path}" "ecwolf" "ports\wolf3d\ecwolf.cfg" "" ""
      directory: ..\..\..\roms\ports\wolf3d
      x-shortname: ports-wolf3d
      
      ignore-file: sod/AUDIOT.SOD
      
      ignore-file: sod/GAMEMAPS.SOD
      
      ignore-file: sod/MAPHEAD.SOD
      
      ignore-file: sod/VGADICT.SOD
      
      ignore-file: sod/VGAGRAPH.SOD
      
      ignore-file: sod/VGAHEAD.SOD
      
      ignore-file: sod/VSWAP.SOD
      
      ignore-file: wolf3d/AUDIOT.WL6
      
      ignore-file: wolf3d/GAMEMAPS.WL6
      
      ignore-file: wolf3d/MAPHEAD.WL6
      
      ignore-file: wolf3d/VGADICT.WL6
      
      ignore-file: wolf3d/VGAGRAPH.WL6
      
      ignore-file: wolf3d/VGAHEAD.WL6
      
      ignore-file: wolf3d/VSWAP.WL6
      
      game: Wolfenstein 3D
      file: ..\..\..\roms\ports\wolf3d\wolf3d/AUDIOHED.WL6
      release: 1992
      developer: id Software
      publisher: Apogee
      genre: Shooter
      players: 1
      description: Wolfenstein 3D is an episodic first-person shooter and a follow-up to the top-down infiltration game Castle Wolfenstein. The game puts the player in the boots of B.J. Blazkowicz, an allied spy. There are six episodes: the first distributed complete as shareware; the second and the third available after registration; and the three final missions (which happen before the events of the first episode) available in the Nocturnal Missions pack.
      launch: "..\..\..\launch\Ports-Wolf3D.cmd" "{file.path}" "ecwolf" "ports\wolf3d\ecwolf.cfg" "" ""
      
      game: Wolfenstein 3D: Spear of Destiny
      file: ..\..\..\roms\ports\wolf3d\sod/AUDIOHED.SOD
      release: 1992
      developer: id Software
      publisher: FormGen
      genre: Shooter
      players: 1
      description: It's World War II and you are B.J. Blazkowicz, the Allies' most valuable agent. In the midst of the German Blitzkrieg, the Spear that pierced the side of Christ is taken from Versailles by the Nazis and secured in the impregnable Castle Wolfenstein. According to legend, no man can be defeated when he has the Spear. Hitler believes himself to be invincible with the power of the Spear as his brutal army sweeps across Europe.
      launch: "..\..\..\launch\Ports-Wolf3D.cmd" "{file.path}" "ecwolf" "ports\wolf3d\ecwolf-sod.cfg" "" ""
      
      fluffypillowF 1 Reply Last reply Reply Quote 0
      • fluffypillowF
        fluffypillow @msheehan79
        last edited by

        @msheehan79 Thanks! I've found the issue, it should work now.

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

          @fluffypillow I ran pegasus from ssh so I can see what's going on when it's loading. This is the first line. Not sure if it's related to the problem:
          Setting framebuffer size is only available with DRM atomic API
          Loading any game does indeed give this message endlessly [e] Could not queue DRM page flip on screen HDMI1 (Device or resource busy)
          The pi4 does have two hdmi ports now, hdmi0 and hdmi1. I'm using hdmi0. No change if using hdmi1.

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

            @Darksavior Yes, the DRM errors likely come together, apparently some video buffers ("resources") are not released/acquired properly which causes such errors. I've found some possible workarounds, but I couldn't get to try them yet. For example, I've found a report that said export QT_QPA_EGLFS_ALWAYS_SET_MODE=1 before running Pegasus might solve this; if you have some time could you try this?

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

              @fluffypillow Yea just post the builds, I'll try test them out. I'll check back often and test asap.
              I tried that command. No change. Maybe I'm not running it right? I execute the command you posted then I type pegasus-fe

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

                @Darksavior It works! Just got back to my Pi 4, and after some more searching I've found a variable that fixed the issue for me. Try this before launching Pegasus:

                export QT_QPA_EGLFS_KMS_ATOMIC=1

                On the other hand, this produces a "Framebuffer size format is invalid" warning, but that seems to have no visible effect for me.

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

                  @fluffypillow Progress, but still not loading games for me. Launching a game loads to a black screen for a few seconds and then returns to pegasus. SSH'ing, I see no error messages from pegasus. The runcommand menu when loading the game is also not displayed. It's only displayed on my computer when ssh'ing.
                  [i] ----------------------------------------
                  [i] The external program has finished cleanly, with exit code 0

                  Same errors when checking the runcommand log:
                  failed to export dumb buffer: Permission denied
                  Failed to create scanout resource
                  failed to export dumb buffer: Permission denied
                  Failed to create scanout resource

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

                    @Darksavior ah you're right, and also console programs don't get displayed either. The work continues...

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

                      Also a weekly update! Haven't had too much time, so only minor changes:

                      • The macOS release too now uses the new gamepad handling. Please report your experiences with it.
                      • Fixed ignore-files and relative file field handling when mixed with directory entries in Metadata files (thanks @msheehan79)

                      Now that the gamepad handling is in a better shape, I'm planning to update the documentation during the next week(s). (Unless something comes up.) I'm also trying to fix the Pi 4 build meanwhile.

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

                        @fluffypillow any chance the gamepad input's could support the select button (xbox back button I guess?). I'm currently doing a strange hack in order to use it lol. (I'm sure this is highly improper but it's working for me)

                            Keys.onPressed: {
                                if (api.keys.isAccept(event) && !event.isAutoRepeat) {
                                    event.accepted = true;
                                    root.detailsRequested()
                                }
                                //Hack to check if it was the Gamepad Select button
                                if (event.key.toString() == "1048586" && !event.isAutoRepeat) {
                                    event.accepted = true;
                                    root.settingsRequested()
                                }
                        
                        fluffypillowF 1 Reply Last reply Reply Quote 0
                        • fluffypillowF
                          fluffypillow @SinisterSpatula
                          last edited by

                          @SinisterSpatula you mean you'd like to use one fixed gamepad button, even if the user remapped it? Well, technically yes, it's possible, just note that there might be users who can't use that button (for whatever reason). If you still want to do it, at the moment the gamepad buttons are in the range 0x100000-0x10000F (eg. event.key == 0x10000A for Select). (They don't have fancy names like keyboard keys, but they should work fine.)

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

                            I guess I'm thinking of a user remappable but optional button. In case a theme want's to utilize select to call up a special feature, but I guess this need goes away when theme settings screen becomes officially part of pegasus, but could still be useful, like a hotkey perhaps, so a theme could look for hotkey+[whatever button] combo to do something unique.

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

                              Weekly update! Unfortunately I haven't had much time the past weeks, this one might be busy too, but I should have some more time in the next one. However, that doesn't mean there were no changes, in fact there have been a few interesting developments going on in the background:

                              • Added Korean translation by @losernator (thanks!)
                              • Linux: Preparations for Flatpak support. The next "stable" release might be available on Flathub.
                                • Maintainers: added AppStream metadata files (ie. software center support), and changed the desktop and icon file names to follow the specs more closely. The AppStream files can be installed by setting the INSTALL_APPSTREAMDIR config option.
                              • Fixed a bug where Pegasus could crash when the launched game crashed

                              Meanwhile in the theme development thread @SinisterSpatula is playing with Pegasus on the Retroflag GPI, there are some very nice recordings of his progress too.

                              1 Reply Last reply Reply Quote 2
                              • F
                                fastpop72
                                last edited by

                                @fluffypillow Hello, i'm trying to create a "kiosk mode" mod version of Pegasus. Could you help me with this little issue? I think it's related to the RollableMenuItem.qml code... As you can see from the video the submenu doesn't disappear when i cancel back the Quit operation.

                                Thanks in advance.

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

                                  @fastpop72 oh looks like there was a number rounding issue, will fix it in a sec. This will fix the buttons staying on screen, but if you'd like to make your setup extra nice, you could also add a colored rectangle to hide the parts sticking out during the animation.

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    fastpop72 @fluffypillow
                                    last edited by

                                    @fluffypillow said in Announcing Pegasus Frontend:

                                    @fastpop72 oh looks like there was a number rounding issue, will fix it in a sec. This will fix the buttons staying on screen, but if you'd like to make your setup extra nice, you could also add a colored rectangle to hide the parts sticking out during the animation.

                                    Thank you for the fix.

                                    I tried to make an extra nice setup inserting a rectangle in this way between the last PrimaryMenuItem and the RollableMenuItem:

                                        Rectangle {
                                            width: parent.width
                                            height: 100
                                            color: "#eee"
                                        }
                                    

                                    Anyway, during closing animation, the rectangle doesn't slide together with the primary Text and let the lower Text visible for some microseconds.... Am i missing some further arguments to add to Rectangle item?

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

                                      @fastpop72 Looks like the new rectangle is below the buttons; you could increase it's Z value to raise it above the others.

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        fastpop72 @fluffypillow
                                        last edited by

                                        @fluffypillow said in Announcing Pegasus Frontend:

                                        @fastpop72 Looks like the new rectangle is below the buttons; you could increase it's Z value to raise it above the others.

                                        Solved!! Thanks!!

                                        PS: Are you interested in a Pull Request? Launching the exe with the "kiosk" argument disable some menus (Settings, Help & Exit Pegasus) and the version text in the lower-left corner.

                                        fluffypillowF 1 Reply Last reply Reply Quote 0
                                        • 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
                                            • 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.