Please do not post a support request without first reading and following the advice in

Announcing Pegasus Frontend

  • @fluffypillow Hey just a few inquires.

    To start since I am running a CRT I have a run command script when launching a game is switched to 240p though while "outside" of a game it sets it to 480p (makes reading text much easier). I can launch games fine from the Pegasus FE it's when I exit the games is when I get this error: EGL Error: Could not create the egl surface: error = 0x300b What's even more weird after that error the command line says "Aborted" in which none of my controls work. I have to SSH in to reboot the system. Image

    My Google searches return stuff I don't know about though it's all for a Linux PC.

    Second I am having trouble following the links to find the information I am looking for. I am just trying to learn how to resize things. As you guessed everything is too small to read with my setup in Vertical. I followed all the links but I still can't find the documentation on how to customize everything.


  • @deadstretch Hm that's an error in the low-level graphics code, happens when the driver couldn't create the program's window for some reason. Is this on a Pi right? How exactly do you change the resolution?

    For the vertical setup, I think you'll likely need to create a new theme (or modify the default one), as it's been designed mostly for larger resolutions. You can find the theme development documentation here, with two examples. If you want to hack the default theme (this will get ugly), it's code is here (look for pixelSize values).

  • I've just merged this week's progress, there's what changed:

    • Added favorite support
      • you can set them on the game info panel (see below)
      • technically, they are stored in a config file (~/.config/pegasus-frontend/favorites.txt); the intention with the standalone file is to separate the static game data (gamelists) from the user preferences
      • ES2 files are not changed, so if a game is marked as favorite there, it'll also keep staying favorite in Pegasus too. ES2 support will be disableable in the future.
      • The setting is saved in the background when you press the button
      • Theme API changes: the game.favorite field is now writable
      • Translators: the button labels are not translateable yet, but will be in the future (there'll likely be a set of common strings, like "Developer" and such)
    • Changed the game info panel (
      • it can be opened with Ctrl/Square/XBox-X/Nintendo-Y
      • the filter menu can now be opened with Shift/Triangle/Y/X
    • Fixed formatting not working in error messages

  • @fluffypillow On a Pi 3b. The resolution switch happens from a run command on start/on end script.

    tvservice -c "NTSC 4:3 P" ; fbset -depth 8 ; fbset -depth 32; tvservice -s
    tvservice -c "NTSC 4:3" ; fbset -depth 8 ; fbset -depth 32; tvservice -s

    I followed this guide to set it all up.

    I will look into the rest. Thanks.

  • No updates last week due to all kinds of unrelated issues, hopefully this one will be more productive. Maybe I could finally add that letter jump feature.

  • @fluffypillow Look forward to it.

  • This weeks progress:

    • Added jump-to-letter feature
      • currently can be used by pressing Alt + [letter key]
      • on the long term though something like in ES2 would be better
    • Added custom filters support (experimental)
      • similarly to AttractMode
      • the file is <configdir>/filters.txt, the format is the same key: value pair text file like with the metadata files
      • use filter to define a new filter (eg. filter: My Awesome Filter Name)
      • use rule to set which games should be included
        • rules look like rule: game-property comparison comparison-parameter or rule: game-property comparison (for example, rule: title contains Mario or rule: favorite is_true)
        • the possible game properties you can check are listed here
        • the possible comparisons are contains, not_contains, equals, not_equals, is_true/is_false (mainly for checking the favoriteness), is_empty/not_empty (for checking whether a property has value)
      • if the file does not exist, the default filters (Favorite and Multiplayer) will be used; they are, for example, can be described like this:
    filter: Favorite
    rule: favorite is_true
    filter: Multiplayer
    rule: players not_equals 1

  • @fluffypillow On the controllers, can we not use the back trigger (R2 or LT for example) to jump letters? I think that's how Steam BPM does it.

    Otherwise, good work again.

  • @halfmanhalfcake Oh, didn't know Steam had such feature. Will check it out, thanks.

  • This week there have been a large amount of internal changes. It shouldn't have any visible effects, but in some cases, you might perhaps see a slight performance improvement.

  • Weekly changelog!

    • Fixed game launching (which I accidentally broke last week)
    • Fixed Raspberry build sometimes not uploading correctly
    • A number of mouse, touchscreen and Android related improvements
      • The main menu and the default theme is now fully usable with only mouse or touch too
      • Game launching confirmed working on Android - expect the documentation this afternoon
      • Video playback now works on Android
      • Config files on Android are now stored under <storage>/pegasus-frontend, where storage is the internal storage if you have one, otherwise the SD card. (Previously configs were stored in some internal system dir)
      • The package version is now displayed correctly in the Android settings menu
    • Minor fixes

    I've also made a video:

  • @fluffypillow Probably the coolest thing I've seen in a long time.

  • Update: The Android docs are now online here.

  • Just updated to latest version, after a long break away from my arcade build - but now Pegasus won't launch. The splash screen is replaced with the text about locales, games found and after the last line stating how many games are found, nothing else happens... Does not respond to inputs either.

    Does the newest version require something like a special version of RetroPie installed or..?

    Edit: a few hints maybe; it states;
    QQmlApplicationEngine failed to load component
    qrc:/frontend/main.qml:101 Type MenuOverlay unavailable
    qrc:/frontend/menuoverlay.qml:122 Type SettingsScreen unavailable
    qrc:/frontend/menu/SettingsScreen.qml:85 Type MultivalueOption unavailable
    qrc:/frontend/menu/settings/MultivalueOption.qml:78 Cannot assign to non-existent property "cursorShape"

  • @andershp Thanks, that's a bug, I'll fix it right away.

  • @andershp Ok, should be fixed now!

  • @fluffypillow Sure is! Thanks!

  • I started writing a small frontend chooser app:


  • Hi :) @fluffypillow

    I recently tried to test your app on android, but I was unable to make the roms shows up :/, tried everything but with no success.
    I did make the config file and test various path but nothing, test the internal on external drive. I'm pretty that I followed carefully the config guide.

    Keep up the good work, and thanks in advance if you have any suggestion.

  • @fluffypillow said in Announcing Pegasus Frontend:

    I started writing a small frontend chooser app:

    Oh meohmy. :) This looks wonderful.

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.