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.
    • fluffypillowF
      fluffypillow
      last edited by fluffypillow


      UPDATE: The project now has a website: http://pegasus-frontend.org


      ORIGINAL POST

      I've started writing a new frontend from scratch, called Pegasus, to allow more customization and theming options, and make adding new features (eg. video previews) way more easy. It's currently in the alpha stage, here's how it looks right now:

      Features

      Open source and cross platform: runs on Linux, Windows, Mac, all Raspberries, Odroids and possibly on other devices. Hardware accelearted and works with or without X11. It may even run on phones and tablets too.

      Full control over the UI: you can completely change everything that is on the screen, add or remove UI elements, menu screens, whatever. Want to make it look like Kodi? Steam? Any other launcher? No problem. You can even run your custom shader code.

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

      Features you'd expect: Gamepad support and config. Multiple aspect ratio support. Portable mode support. Live theme reload. Visible system informations. A clock in the corner.

      Technical details

      • Pegasus uses QML/QtQuick2 for the UI (example code), C++ for the backend. Yes, it's more complex than an ES2 theme (since you can do more), but (in my opinion) easier than AttractMode/Hyperspin.
      • Source code will be available after I finish implementing some core features, like a proper main menu and such. It'll be most likely under GPLv3 license.
      • I'm in GMT+2/CET
      • Yes, it does work on the Pi 1
      • The media files you can see on the video/screenshots are from the ES2 theme toolkit

      UPDATES

      RetroPie package

      Pegasus is now available from the RetroPie setup menu, under the experimental packages. After the installation, you can either call /opt/retropie/supplementary/pegasus-fe/pegasus-fe manually, or edit /opt/retropie/configs/all/autostart.sh to launch Pegasus on boot (instead of eg. ES2).

      Alternatively, you can also use this tool to install Pegasus and set it to start on boot (the frontend chooser itself calls the RetroPie install script).

      frontend chooser screenshot

      Other platforms

      Pegasus is cross-platfort and works on Windows and Android too. It auto-detects Steam games (with all the assets and metadata), and can be set to launch pretty much any other program or app.

      steam screenshot

      of Pegasus running on Android.

      Documentation and Themes

      Documentation is now available at http://pegasus-frontend.org, including build guides and theme customization tutorials.

      For questons about theme development and customization, you can also use this topic.

      Screenshots of example themes :

      simple theme screenshot

      flixnet theme screenshot

      9999999-in-1 theme screenshot

      Changelogs

      Pegasus is now open source! (GitHub repo) Here is the list of weekly changelogs, some significant changes for that week, and also additional demo videos and screenshots:

      Since latest stable

      Alpha 13

      • week 122 working on pi4
      • week 121 korean tl, bugfixes, flatpak preparations
      • week 120 macos gamepad improv
      • week 119 windows gamepad improv
      • week 118 gamepad improv
      • week 117 launchbox improv (multifile, video)
      • week 116 launchbox improvements, video and music support
      • week 115 gamelist reloading, launchbox improvements

      Alpha 12

      • week 114 pi4 improvements
      • week 113 initial launchbox support
      • week 112 initial Pi4 support
      • week 111 nothing
      • week 110 bughunting, launchbox preparations, metadata editor
      • week 109 nothing
      • week 108 metadata editor release, bughunting
      • week 107 metadata editor
      • week 106 nothing
      • week 105 usability and ui improvements
      • week 104 bugfixes, gamepad and theme improvements
      • week 103 low level bughunting
      • week 102 launch improvs, mame improvements, small improvs
      • week 101 android improvements, various small improvs and opti
      • week 100 working directory fix, launching fixes
      • week 99 launch cmd improvements per-game asset dirs

      Alpha 11

      • week 98: bugfixes, internal
      • week 97: documentation, various updates
      • week 96: multifile selector
      • week 95: Qt update, Pi 3 build, documentation
      • week 94: distro support changes
      • week 93: nothing
      • week 92: metadata format changes
      • week 91: internal
      • week 90: Android TV support, internal
      • week 89: theme memory support
      • week 88: bugfixes, holidays
      • week 87: theme-side sorting and filtering
      • week 86: internal changes, brazilian-portuguese translation
      • week 85: internal changes
      • week 84: key modifiers, Skraper
      • week 83: bugfixes, metadata planning

      Alpha 10

      • week 82: Android metadata, translations
      • week 81: holidays
      • week 80: macOS release, Android app support
      • week 79: bugfixes
      • week 78: API updates, new theme
      • week 77: changed asset searching, new theme
      • week 75-76: custom controls and related API changes
      • week 74: GOG support, file format updates

      Alpha 9

      • week 73: data source settings, documentation
      • week 72: search dir settings, help screen
      • week 69-71: minor fixes
      • week 68: redesigned loading, new loading screen
      • week 67: seamless launching, play time tracking
      • week 66: optimizations, site update

      Alpha 8

      • week 65: frontend chooser
      • week 64: lots of Android improvements + video
      • week 63: internal changes
      • week 62: jump-to-letter, custom filters
      • week 61: nothing
      • week 60: favorite support, game info UI redesign
      • week 59: nothing
      • week 58: French translation
      • week 57: Android builds, portable mode
      • week 56: better builds for Windows, Android testing

      Alpha 7

      • week 55: Spanish translation, bunch of fixes
      • week 54: asset detection fix, Debian repo
      • week 53: page up/down, icons, small details
      • week 49-52: finalizing metadata format, converter site

      Alpha 6

      • week 48: 3D support, Stretch support, all kinds of fixes
      • week 46-47: debugging stuff
      • week 45: documentation release
      • week 42, 43, 44: documentation
      • week 41: configfile implementation, bugfixes, documentation
      • week 39-40: winter holidays
      • week 38: optimizations
      • week 37: faster loading

      Alpha 5

      • week 36: config file propsal, alpha 5
      • week 35: windows fixes, internal restructuring
      • week 34: api stabilization
      • week 33: new logo and loading screen
      • week 32: Steam support, Qt update
      • week 31: optimizations, ES2 fixes
      • week 30: nothing
      • week 29: bugfixes

      Alpha 4

      • week 28: ui improvements: settings menu redesign, alpha4
      • week 27: ui improvements: error messages, confirmation dialogs
      • week 26: minor improvements and optimizations
      • week 25: nothing interesting
      • week 24: gamepad improvements
      • week 23: scripting improvements, various fixes
      • week 22: favorites, filtering + video
      • week 21: testing and maintenance

      Alpha 3

      • week 20: bugfixes, alpha3
      • week 19: improved ES2 compatibility, audio support, faster loading, netflix theme (video, screenshot)
      • week 18: external theme support, file logging
      • week 17: external scripting support
      • week 16: summer break
      • week 15: scripting
      • week 14: translations
      • week 13: bugfixes, scrolling details, translations + video

      Alpha 2

      • week 12: alpha2 release
      • week 11: gamepad config screen functional + video
      • week 10: build guide, initial gamepad config screen
      • week 9: build system improvements
      • week 8: main menu, mouse support, reboot and shutdown + video
      • week 7: open sourcing, automatic build testing
      • week 6: gamepad support, optimizations, tweaking + screenshot + video
      • week 5: more asset support, full ES2 metadata support
      • week 4: announcement + video (this post)
      mattrixkM meleuM BuZzB PokeEngineerP B 6 Replies Last reply Reply Quote 29
      • mattrixkM
        mattrixk @fluffypillow
        last edited by

        @fluffypillow It looks interesting.

        • Is Grid View the only option or can you do a normal gamelist like current ES?
        • How does the grid handle different box sizes (eg: if you have SNES and Famicom boxes together)?
        • How many <image> meta tags are there? Is it just <image>, <video> and <marquee> like current ES, or do you have them separated into <boxart>, <fanart>, <logo>, <screenshot>, etc?

        Also, it's always nice to find people making use of the Toolkit.

        My ES themes: MetaPixel | Spare | Io | Indent

        1 Reply Last reply Reply Quote 0
        • RookervikR
          Rookervik Global Moderator
          last edited by

          From what I've heard, you can make the front end look any way you want. Add menus, add animation, full layering support. Shader support (like CRT-Pi and such). You should also be able to access Wifi setup and some other Raspberry Pi settings from the menus of the front end.

          1 Reply Last reply Reply Quote 0
          • N
            nitrogen_widget
            last edited by

            what about C.H.I.P. ?
            It's only single core.

            A 1 Reply Last reply Reply Quote 0
            • meleuM
              meleu @fluffypillow
              last edited by

              @fluffypillow please, consider making an on-screen keyboard. ;-)

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

                this looks and sounds, pretty promising!
                really looking forward on how this will turn out, great going!

                RPi 3 - RetroPie + 500gb HDD [consoles] + Razer Onza Tournament
                RPi 3 - RetroPie + 32gb USB [computers] + Keyboard
                both with AttractMode + FuzzBoxx Layout

                1 Reply Last reply Reply Quote 0
                • A
                  ABrugsch
                  last edited by

                  Yay! C++
                  My native language :)

                  1 Reply Last reply Reply Quote 0
                  • A
                    ABrugsch @nitrogen_widget
                    last edited by

                    @nitrogen_widget said in Announcing Pegasus Frontend:

                    what about C.H.I.P. ?
                    It's only single core.

                    Same as pi 1/0
                    I'm sure it'll compile just fine as long as there are no pi specific dependencies which it sounds like there aren't. I can give it a try (when I get back from easter...)
                    This might be perfect for my chipstation portable :)

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

                      @mattrixk

                      • You can do whatever kind of layout you want - the layout is part of the theme too. Here's movie cover-like layout I've just hacked together: https://snag.gy/ma15Yk.jpg
                      • At the moment, you have to manually set the width/height of the cells, which you can fine tune by adding some logic; for example in the video I've set the number of columns to 5 when the current platform is NES. On the long term, I'd like to make the sizes of the cells dynamic, so you could just set a max width or height and it'd align properly.
                      • Currently front/back/spine/full 2D boxart, cartridge/disc image, logo, Steam grid image, fanart, multiple screenshots and videos. I can add more if you wish.

                      @nitrogen_widget it looks like both the regular and the pro CHIP uses Mali GPUs, like the Odroids, so yes, it should run fine and fast.

                      @meleu Ok!

                      1 Reply Last reply Reply Quote 2
                      • E
                        EctoOne
                        last edited by

                        I would love to to see the possibility to merge different systems into one. I have only a handful of Roms for Game Gear, Master System, Mega Drive and Sega32x and really wish I could merge them into just Sega. Since this seems so highly customizable, I would probably would use only one System and try to recreate a Kodi Skin.

                        1 Reply Last reply Reply Quote 0
                        • InsecureSpikeI
                          InsecureSpike
                          last edited by

                          what language will the Theming/Skinning/Layouts be in?

                          RPi 3 - RetroPie + 500gb HDD [consoles] + Razer Onza Tournament
                          RPi 3 - RetroPie + 32gb USB [computers] + Keyboard
                          both with AttractMode + FuzzBoxx Layout

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

                            @InsecureSpike

                            @fluffypillow said in Announcing Pegasus Frontend:

                            Pegasus uses QML/QtQuick2 for the UI

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

                              @EctoOne this sound more like something you would set in a gamelist file; I could add support for something like a <systemGroup> tag, where you'd put <system>s you want to handle together. Or a special system attribute, if we want to maintain strict ES2 compatibility.

                              1 Reply Last reply Reply Quote 1
                              • InsecureSpikeI
                                InsecureSpike @meleu
                                last edited by

                                @meleu said in Announcing Pegasus Frontend:

                                QML/QtQuick2

                                thank you, whats it like to learn?
                                sorry it's a little off topic,
                                i have very limited coding knoledge, can pick things up pretty easily tho, can anyone recommend any reading material?
                                thanks

                                RPi 3 - RetroPie + 500gb HDD [consoles] + Razer Onza Tournament
                                RPi 3 - RetroPie + 32gb USB [computers] + Keyboard
                                both with AttractMode + FuzzBoxx Layout

                                1 Reply Last reply Reply Quote 0
                                • BuZzB
                                  BuZz administrators @fluffypillow
                                  last edited by

                                  @fluffypillow nice one :-) Look forward to trying it.

                                  To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    nitrogen_widget @ABrugsch
                                    last edited by

                                    @ABrugsch Thanks.
                                    I got attractmode compiled on my chip but it was dog slow and i couldn't get sfml with accelleration to compile.

                                    emulationstation was a little laggy on chip.
                                    was considering advmenu but if this works....

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

                                      @InsecureSpike well QML itself can be used for a lot of things, so it can look very complex at first. It can even be used for writing mobile games or web browsers, but fortunately for theming you won't have get familiar with all the components. In my opinion, the somewhat harder part is setting up the scrollable/moving elements (like a grid or a cover list) the way you want. After that, styling the elements is easy.

                                      I'm going to write some tutorials when it gets released, in the meantime you might find this guide useful.

                                      InsecureSpikeI 1 Reply Last reply Reply Quote 0
                                      • InsecureSpikeI
                                        InsecureSpike @fluffypillow
                                        last edited by

                                        @fluffypillow awesome, thank you

                                        RPi 3 - RetroPie + 500gb HDD [consoles] + Razer Onza Tournament
                                        RPi 3 - RetroPie + 32gb USB [computers] + Keyboard
                                        both with AttractMode + FuzzBoxx Layout

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

                                          I'm really impressed. I've tried Attract Mode on my Pi, and it's kinda hard to use, at least for me, so I'm ready to see a new frontend.
                                          I'm also excited to make some themes for this as well. :D
                                          One thing though: Will it be an easy setup for the Pi? I don't want to go through the hassle of changing so much code and stuff.

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

                                            @itsnitro in practice, a Pi release should "just work". The only problem is that Debian/Raspbian currently uses an outdated, 3 years old version of Qt, from which a bunch of features and optimizations are missing. As such, I'll include the required Qt libs with the releases, and also host the build tools and libraries too if you want to build on the board or cross compile.

                                            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.