Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Announcing Pegasus Frontend




  • 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 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

    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

    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)


  • @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.


  • Global Moderator

    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.



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



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



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



  • Yay! C++
    My native language :)



  • @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 :)



  • @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!



  • 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.



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



  • @InsecureSpike

    @fluffypillow said in Announcing Pegasus Frontend:

    Pegasus uses QML/QtQuick2 for the UI



  • @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.



  • @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


  • administrators

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



  • @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....



  • @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.



  • @fluffypillow awesome, thank you



  • 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.



  • @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.



  • This week's main features:

    • added bezel, marquee and flyer image asset support
    • added support for all ES2 game metadata tags
    • gamelist reading and asset finding speed optimizations: currently loading ~1000 games, all with videos, box front, screenshot and logo takes less than 2 seconds on a Pi 3, and less than 10 seconds on a first gen Pi 1; these numbers may improve later
    • improved asset loading speed, added loading screen and loading indicators
    • implemented basic custom theme loading support
    • confirmed video support working on Pi 3 and 1

 

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.