Announcing Pegasus Frontend
@andershp Actually I have an idea for improving the seamless launching, I'll see if I can try it out the weekend. The other two issues are somewhat different though:
- The startup delay can be reduced by optimizing some lower-level code, which is a bit time consuming, but I've started working on it already (as a side-side-side project).
- Pegasus reloads the UI when the launched program says "Ok, I'm done!". Not sure how much that could be improved, but I'll see what can be done. Perhaps it'll also speed up when the startup time gets optimized.
AndersHP last edited by
@fluffypillow I didn't mean reducing the delay to zero, just hiding the code alltogether, either with a black screen or maybe using the launch-image for a few seconds longer. Similar to these functions.
Sounds cool that you're willing to test this :)
So this week I've updated the Qt version (ie. the UI code); this should make Pegasus start up somewhat faster and may fix a color depth issue someone mentioned earlier. It's a big change under the hood, so feel free to report if something's broke. The changes are not available on Android/Windows yet, there are still some build errors to be fixed there.
I've also put up some actual content to pegasus-frontend.org, so you can find the latest downloads there too. Also started working on more seamless game launching, there are just some silly bugs left to fix.
- Finished the work on the seamless launching; the UI now disappears only when the launched program has started successfully. Any delay left now is up to the launched program.
- Added a
--silentcommand line parameter, which will make Pegasus not print anything to the terminal. Might come handy for startup, or in case a launched program itself shows the terminal.
- Updated the Android release too with the new Qt libs.
Aand the Windows build got the update as well.
Darksavior last edited by Darksavior
I couldn't get any games to show up in the windows version. Steam games automatically showed up. I'm probably doing it wrong, even after reading the documentation. I'd like better examples. I converted my
gamelist.xmlfrom my pi to
metadata.txtand made a
game-dirs.txtthat it doesn't care to see. I'm not sure how
collections.txtwork and did it like the example but got nothing as well.
I also tried the windows version of ES to see if that might get me anything but Pegasus will only see that in a specific place and even then it tells me it can't parse
es_systems.cfgor something but I'd rather not use this method..seems like extra work.
game_dirs.txt, with an underscore; fixing that should solve the collection/metadata loading. But yeah, providing some actual example configs would be a good idea.
BJRetro last edited by
What is the effect of adding this package to a RetroPie Raspberry pie already running emulation station? Do you just not see emulation station any more and this front end replaces it? If so is there any way to “go back” or switch between them easily or at that point do you have to reload a backup image/fresh install? Thanks! (Looks very nice by the way, which is why I might want to try it, but on the other hand I finally have a 128gb setup that I can “just play” for the last month or two and am a bit worried about screwing that up).
BJRetro last edited by
I see there is a front end chooser and that you can edit a certain file to run Pegasus automatically but I didn’t see instructions on how to do that or what you need to do in that file to change back to emulation station running automatically. Also seems from some posts (though hard to read all 700) that if you change front ends you might need to change the locations of RomS and their metadata so that is the sort of thing I am getting at - once you download this how hard from a practical standpoint is it to switch back and forth or “go back” to the ES version even with the front end chooser or editing of the startup file? Thanks - I am sure this is a noob question.
@bjretro The RetroPie installer will just download the release for your device -- it doesn't change your settings, so ES2 will start the next time you boot too. You'll be able to launch Pegasus from the terminal then. If you want to change which frontend to start automatically on boot, you can either edit the autorun file manually, or use the frontend chooser that does this for you (and can do the installation as well) -- you can find it here, or in the first post too.
If you already have Emulationstation set up, Pegasus will automatically (try to) detect your games, metadata and assets, no configuration needed. The ES2 files will not be changed, only read. If you want to use Pegasus without ES, then you can do that too, Pegasus' own file format is documented here, and the asset detection is described here (I should move this to the documentation site too).
AndersHP last edited by AndersHP
@bjretro It's a good question. Pegasus only "installs" by getting placed on the sd card and nothing else changes. So, EmulationStation still runs as normal, and to test Pegasus, you have to quit ES and type the code mentioned in #1 under Retropie Package. If you like Pegasus and would like your Pi to boot directly into this frontend instead of EmulationStation, add the code in the autostart.sh, also mentioned there.
I have not tinkered with the frontend chooser, as I only use Pegasus now, but I'm using gamelist and metadata the default places (as Universal XML Scraper does) and this works in both frontends.
My suggestion is; give it a whirl, you can always go back to ES. Me, I'm staying with Pegasus.
Edit: Ah, @fluffypillow - beat me to it :)
And another update for the week, Pegasus now keeps track of play times (except it's not displayed on the main theme yet, but that will be added later). I've also updated the list of changelogs of the first post.
jonathandownin last edited by
@fluffypillow I just wanted to say thank you for the dedication. The professionalism of the regularity of updates and documentation is top notch, and frankly, something that is amazing for a free piece of software. UX and design aesthetics are top-notch as well. I'm looking forward to making this my main launcher. I really hope this becomes the standard frontend for RetroPie in the future. Kudos!
@jonathandownin You're welcome :)
AndersHP last edited by
I second this.
And people shouldn't be scared off by the fact that you call it "alpha" versions. This frontend is more stable than EmulationStation as far as I'm concerned.
fluffypillow last edited by fluffypillow
Thanks, it means a lot :)
Also I've just added a visible play time counter to the main theme, you can check it on the game details panel. There's a bug though, the value will only update when Pegasus is (re)started -- fixing this will need some minor structural changes, but if that's done, it'll also pave the way for achievement support.
nemo93 last edited by nemo93
Hello All. I'm quite impressed after the installation of Pegasus from experimental. It works beautifully. What a fluid, fast and clear frontend. Thanks to @fluffypillow for this amazing piece of software.
Now I understand this is alpha but is there a better official way to report issues? Or should I just post anything in there?
I have issue with my "gamelist.xml" export/import. The outcome being for Pegasus to not display image/description of games. This is output from "lastrun.log". I'm running Retropie 4.4.2 on a Pi3b+.
Found locale 'American English' (`en`) Found locale 'español de España' (`es`) Found locale 'français' (`fr`) Found locale 'magyar' (`hu`) Found locale 'magyar (rovás)' (`hu-Hung`) Locale set to 'American English' (`en`) Found theme 'Pegasus Grid [built-in]' (`:/themes/pegasus-grid/`) Theme set to 'Pegasus Grid [built-in]' (`:/themes/pegasus-grid/`) ES2: found `/home/pi/.emulationstation/es_systems.cfg` ES2: found `/home/pi/.emulationstation/gamelists/psx/gamelist.xml` ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: found `/home/pi/.emulationstation/gamelists/segacd/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/megadrive/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/amiga/gamelist.xml` ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: found `/home/pi/.emulationstation/gamelists/sega32x/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/mame-libretro/gamelist.xml` ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: found `/home/pi/.emulationstation/gamelists/nes/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/mastersystem/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/fba/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/neogeo/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/snes/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/pcengine/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/pcecd/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/retropie/gamelist.xml` ES2: found `/home/pi/.emulationstation/gamelists/scummvm/gamelist.xml` ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: Expected '#' or '[a-zA-Z]', but got ' '. ES2: found `/home/pi/.emulationstation/gamelists/n64/gamelist.xml` Data files loaded in 5230ms 6164 games found qrc:/themes/pegasus-grid/layer_platform/PlatformCard.qml:73:5: QML Image: Cannot open: qrc:/themes/pegasus-grid/assets/logos/mame-libretro.svg qrc:/themes/pegasus-grid/layer_platform/PlatformCard.qml:73:5: QML Image: Cannot open: qrc:/themes/pegasus-grid/assets/logos/pcecd.svg Executing command: `/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ nes "/home/pi/RetroPie/roms/nes/1942 (Japan, USA).zip"` Process 1220 started ---------------------------------------- The external program `/opt/retropie/supplementary/runcommand/runcommand.sh` has crashed ---------------------------------------- The external program has crashed on exit, with exit code 15
After some digging I found out thanks to the conversion tool here that possibly the special character "&" (ampersand) is messing up with the frontend. This character in the description or anywhere in the "gamelist.xml" file generates those errors. I do not want to amend all my "gamelist.xml" files. Is there a way to bypass this please?
Another feedback is that I got a mix of vertically as well as horizontally-oriented box cases. Best showcase of this is with the NES. Japanese games mostly come with vertically-oriented boxes whereas rest of the world, cases were horizontal. It doesn't look that good with the default theme (which I truly love btw). I don't know how to explain this better but it's like having some "holes" in the pictures wall.
I'll post in this space should I have more feedback by default. Please keep on the good work this is brilliant.
fluffypillow last edited by fluffypillow
@nemo93 glad you like it :)
is there a better official way to report issues? Or should I just post anything in there?
Yeah the thread might've got a bit too long for bug tracking. You can report issues on GitHub; I also tend to create entries for the stuff that's mentioned here in the forum too.
the special character "&" (ampersand) is messing up with the frontend
Yes, the XML specification does not allow
&in the text:
The ampersand character (&) and the left angle bracket (<) MUST NOT appear in [text sections]. If they are needed [in text sections], they MUST be escaped using either numeric character references or the strings "&" and "<" respectively.
I'd prefer to avoid frontend-specific hacks in the code; most text editors support mass text replace across multiple files (eg. Notepad++, Sublime, or even plain
sed), so this should be relatively easy to fix in the files themselves. If a scraper generated this file for you, you might want to report this as an issue for the devs.
It doesn't look that good with the default theme
Yeah, mixed cases tend to look ugly with the current layout, but I'm not sure yet what would be the best way to solve that (maybe by cropping portraits?). This one also has an issue report here.
A huge internal update has just landed, where I've redesigned the way everything is loaded, and also optimized the memory and CPU usage. In practice this means play time (and in the future, achievements) now update correctly when you return to Pegasus from a game. It may improve the loading times too.
Now this affects pretty much everything that loads, games, assets, ES2 support, favorites... While most things are tested in Pegasus, there may always be unexpected cases, so please report if anything's missing.
I've also made a new loading screen:
(The progress bar is not particularly accurate yet, but that can be improved later)
Also I'll be away for a few days, so there might be no new updates this week. After that, the next area I'll likely work on is improving the gamepad support and the settings menu, and some documentation. (also feel free to remind me if you think I've forget to add something promised before, and it doesn't have an issue either)
halfmanhalfcake last edited by
Great work again, love the new loading screen :)
I should really go back to working on themes, just haven't had the time to finish them off.