• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
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.
  • F
    fluffypillow @PlayingKarrde
    last edited by 27 Nov 2018, 20:44

    @PlayingKarrde

    gaining access through the api to the button configs

    Actually there's support for that already. For example, to get the keys registered as "accept", you could use api.keys.accept. It returns an array of objects, each of them having a key and a modifier field, which can be used the same way as in QML KeyEvents. I'll also add a proper toString() function to them real quick, then you could pretty print them too.

    will we be able to get models independent of the collection as a whole?

    Yes, the whole list of all games will be available separately too, and all lists will be filterable individually.

    P 1 Reply Last reply 27 Nov 2018, 21:12 Reply Quote 0
    • P
      PlayingKarrde @fluffypillow
      last edited by 27 Nov 2018, 21:12

      @fluffypillow Amazing thanks!

      F 1 Reply Last reply 27 Nov 2018, 21:30 Reply Quote 0
      • F
        fluffypillow @PlayingKarrde
        last edited by 27 Nov 2018, 21:30

        @PlayingKarrde Well turns out the returned arrays have some issues at the moment... will fix it tomorrow.

        P 1 Reply Last reply 27 Nov 2018, 21:41 Reply Quote 0
        • P
          PlayingKarrde @fluffypillow
          last edited by PlayingKarrde 27 Nov 2018, 21:41

          @fluffypillow No worries, I can wait. Thanks.

          1 Reply Last reply Reply Quote 0
          • F
            fluffypillow
            last edited by 29 Nov 2018, 00:10

            Took more than just a few lines, but at least the key arrays work now. toString happened to be taken already, so instead you can use name() to get a readable name of the keys.

            P 1 Reply Last reply 29 Nov 2018, 00:44 Reply Quote 0
            • P
              PlayingKarrde @fluffypillow
              last edited by 29 Nov 2018, 00:44

              @fluffypillow perfect thanks a ton. I'll probably try and implement it over the next couple of days. In a perfect world I'd love to somehow be able to get an id of the controller registered so I can show the appropriate art (xbox/ps4/keyboard) but I think that's way out of the scope of what's needed right now so everyone will have to suck it up and use xbox art haha.

              When theme settings come in I'll add the option to turn off button help too.

              F 1 Reply Last reply 29 Nov 2018, 10:25 Reply Quote 0
              • F
                fluffypillow @PlayingKarrde
                last edited by 29 Nov 2018, 10:25

                @PlayingKarrde not every controller has a proper name, but even when they do they might not be particularly useful. Can you guess what assets to show for "ChingWang 2000" or something like "Generic"? :)

                P 1 Reply Last reply 29 Nov 2018, 15:36 Reply Quote 1
                • P
                  PlayingKarrde @fluffypillow
                  last edited by 29 Nov 2018, 15:36

                  @fluffypillow oh yes I know, I didn't plan on doing it for every one. Just xbox, PS4 and keyboard. If it isn't one of those it would just default to Xbox.

                  H 1 Reply Last reply 30 Nov 2018, 05:34 Reply Quote 1
                  • H
                    hooperre @PlayingKarrde
                    last edited by 30 Nov 2018, 05:34

                    @PlayingKarrde Just an idea. Maybe create a GameOS Theme thread within the forums so I'm not spamming the Pegasus thread?

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

                    P 1 Reply Last reply 1 Dec 2018, 00:09 Reply Quote 0
                    • P
                      PlayingKarrde @hooperre
                      last edited by 1 Dec 2018, 00:09

                      @hooperre Good idea. I've created a thread here.

                      1 Reply Last reply Reply Quote 0
                      • F
                        fluffypillow
                        last edited by 2 Dec 2018, 20:51

                        Weekly update: the next set of the planned theme changes is mostly complete, collections and games can now appear multiple times and there's also a list of all games. However custom sorting/filtering and a few important bits are still missing, so there's no actual release this time. Should't take that long now though, so a new update might come before the next weekend.

                        S 1 Reply Last reply 5 Dec 2018, 15:15 Reply Quote 2
                        • S
                          sam85461 @fluffypillow
                          last edited by 5 Dec 2018, 15:15

                          @fluffypillow Hey, I'm very interested in your frontend, it looks great so far. Quick question, you support game list files from emulationstation, does that mean you have no plans of adding a scraper? Would this mean users have to either manually add them (meta data and artwork) or scrape them in emulationstation first? I'm on windows and havent used emulationstation to scrape my collection.

                          F 1 Reply Last reply 5 Dec 2018, 16:21 Reply Quote 0
                          • F
                            fluffypillow @sam85461
                            last edited by 5 Dec 2018, 16:21

                            @sam85461 Yes, Pegasus can read EmulationStation's files, but you can use any other standalone scraper (SSelph's, Skyscraper, Skraper, Universal XML, etc.) to generate them and download assets. There's no built-in scraper in Pegasus at the moment, but might come in the future.

                            S 1 Reply Last reply 5 Dec 2018, 19:15 Reply Quote 1
                            • S
                              sam85461 @fluffypillow
                              last edited by 5 Dec 2018, 19:15

                              @fluffypillow Awesome thanks for the info. Just one more question, Its kind of off-topic to retropie/Linux/android but for windows, do you know how rocketlauncher would be setup with your frontend. I have my collection setup through rocketlauncher because I used to use hyperspin. Rocketlauncher launches the roms. Thanks for your hard work!

                              P F 2 Replies Last reply 5 Dec 2018, 20:15 Reply Quote 0
                              • P
                                PlayingKarrde @sam85461
                                last edited by 5 Dec 2018, 20:15

                                @sam85461 said in Announcing Pegasus Frontend:

                                @fluffypillow Awesome thanks for the info. Just one more question, Its kind of off-topic to retropie/Linux/android but for windows, do you know how rocketlauncher would be setup with your frontend. I have my collection setup through rocketlauncher because I used to use hyperspin. Rocketlauncher launches the roms. Thanks for your hard work!

                                I haven't tried using scripts yet but they might be what you're looking for.

                                1 Reply Last reply Reply Quote 0
                                • F
                                  fluffypillow @sam85461
                                  last edited by 5 Dec 2018, 20:48

                                  @sam85461 never used RocketLauncher or HyperSpin personally, so not sure if I can help with that. According to their wiki you're supposed to edit the launch commands of your systems/collections (es_systems.cfg for EmulationStation). Something like this, except use %ROM% instead of [name], I think?

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    fluffypillow
                                    last edited by 10 Dec 2018, 18:01

                                    Weekly update! The themeing changes are functionally complete, I've just run into some last minute issues which take some time. As soon are they are fixed, the update is ready.

                                    Other than that, this week Brazilian Portuguese language was added (thanks @rutantan). Interestingly, depending on the system it might appear simply as "português" in the menu (instead of eg. "português do Brasil"). Not sure how much of an issue is that, or if that's actually what's expected. Not a bug in Pegasus itself, but I can add a workaround if it turns out to be confusing.

                                    1 Reply Last reply Reply Quote 3
                                    • P
                                      PlayingKarrde
                                      last edited by 13 Dec 2018, 19:34

                                      @fluffypillow I'm experiencing a strange problem loading arcade roms (both FBA and MAME) on one PC (but not another). It stems from the launcher using forward slashes in {file.path} rather than backslashes which Windows typically uses for directory paths. If I manually change the argument to be all backslashes then it will work from the command line, but that doesn't really help me with Pegasus.

                                      What's most strange is that it works fine on my primary PC. Either way it might make sense to change this for the windows build so it uses backslashes instead?

                                      F 1 Reply Last reply 14 Dec 2018, 14:53 Reply Quote 0
                                      • F
                                        fluffypillow @PlayingKarrde
                                        last edited by fluffypillow 14 Dec 2018, 14:53

                                        @PlayingKarrde That's certainly interesting, as according to the source code of MAME, both slashes are accepted. But other than that, yes, using backslashes on Windows sounds like a good idea.

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          fluffypillow
                                          last edited by fluffypillow 15 Dec 2018, 18:16

                                          Okay, after quite some time one of the largest weekly updates has landed! This is yet another breaking change, so feel free to keep an older version around if any of these changes affect you negatively.

                                          • Major changes in the theme Api
                                            • It is now possible to present games and collections in multiple locations with custom ordering and filtering
                                            • It is now possible to present a list of all existing games, and similarly, sort or filter it with custom parameters
                                            • See below for implementation details
                                          • Updated the 9999999 and ES2 Simple themes to these themeing changes (I should really make an updater eventually)
                                          • Bugfixes and optimizations
                                            • Fixed a bug where Pegasus crashed on exit
                                            • Fixed a bug where log files weren't saved properly before reboot/shutdown
                                            • Fixed a bug where the ES2 support could cause a crash during loading

                                          The bad news:

                                          • Custom filters support and searching/filtering in the default theme is temporarily disabled (haven't finished updating that part yet)
                                          • At the moment, Pegasus doesn't remember the selected game and its position in the menu when you return from playing. This will be fixed in the future, likely when theme options get added.

                                          Theme Api changes:

                                          • Previously, collection list objects and game list objects had index, current, increment/decrementIndex() fields and methods (eg. api.collections.current). Because the lists can now appear in multiple places with different sorting and filtering, having one index isn't particularly meaningful anymore, and thus all these fields and methods were removed.
                                          • Because the only remaining field would have been model (eg. api.collections.model), the whole intermediate object got removed, and the object itself can now be used as model (eg. api.collections).
                                          • These models are no longer JavaScript arrays, but so called "item models". They can be used without any difference in List/Grid/PathViews' model property. As for manual operations,
                                            • to get a single item, instead of themodel[anindex], you'd use themodel.get(anindex)
                                            • to get the count of items, instead of themodel.length, you'd use themodel.count
                                          • In addition, the list of all games is now accessible as api.allGames, which is a list of game objects similarly to a single collection's games field.
                                          • With these changes, the current data structure is:
                                            • api.collections is a list of collections, which is an item model
                                            • each collection has the same fields as before (see the Api docs)
                                            • each collection has a games field, a list of games, which is an item model
                                            • each game has the same fields and launch() method as before
                                            • api.allGames is a list of all games, independent of collections. Also an item model.
                                          • For inspriation with updating theme code, you can take a look at the different ways it's handled in the commits of ES2 Simple and 9999999-in-1. The main theme is a mess, but if you wish, you can take a look at these commits too.

                                          Sorting and filtering:

                                          • SortFilterProxyModel is now available. Take a look at the example there to see how it's used. You can find the list of sorters/filters here.
                                          • For example, to get the list of all games ordered by play time, you could write something like
                                          import SortFilterProxyModel 0.2
                                          
                                          ...
                                          
                                          SortFilterProxyModel {
                                              id: mysorter
                                              sourceModel: api.allGames
                                              sorters: RoleSorter { roleName: "playTime" }
                                          }
                                          
                                          ListView {
                                              model: mysorter
                                              ...
                                          }
                                          
                                          • Because filtering can now be done in themes, api.filters is now removed. In the future, it might be updated to hold the user-defined custom filters instead.
                                          P 1 Reply Last reply 15 Dec 2018, 23:14 Reply Quote 4
                                          1025 out of 1711
                                          • First post
                                            1025/1711
                                            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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received