Announcing Pegasus Frontend
-
I just read through everything in around 2h and I'm so excited to try this tomorrow!
I would love to see a theme in the style of the switch nes theme and these texts from the Sonic Mania trailer.
So it would be a clean look with some nice bouncy/sliding animations and maybe jumping letters for the loading screen in the bottom right corner when booting up. and the same-ish color scheme like in the trailer (around 0:55):
-
Here's the first release of my theme, gameOS. I am still considering it alpha as it is missing the filters and game details, but I feel like it's ready for testing (and I've been working on it for too long already).
https://github.com/PlayingKarrde/gameOS
This is definitely a theme that requires more media than the default EmulationStation scrape. I recommend Skraper.net to scrape and using @fluffypillow 's metadata converter to build your metadata.txt files. After that, place the exe I have provided inside each rom folder and run it to organise your files.
The metadata that you should be scraping for is:
- screenshot (gameplay)
- wheel
- video
- boxfront2d
- fanart
You can obviously scrape more media if you like but those are the bare minimum for this theme. Scraping like this will also benefit any other theme on Pegasus since it will organise the files into the correct format Pegasus is looking for so it is worth putting the effort in in my opinion.
Definitely welcome all feedback.
-
@PlayingKarrde Ooooh, i'm so excited to test a new theme.
For myself, i not really understand Qt - i could edit some themes, or even make the "simple theme"-tutorial theme (that didnt work w/o some changes for some reason) ... but for example the ES2 Simple theme do not work for longer time, and i can't get whats wrong with it..So happy to see a new theme out here :D
edit: if some-one have the time, i would like to see a theme from ES2 in pegasus, it looks quite simple, but for me it would take months i think to make it work ^^ ... it called Art-Book. It's a simple greyish theme, but i like it much.
-
@PlayingKarrde so, i just tested the theme, both on windows and my android box.
Great work so far!On Windows machine i did not notice performance issues.
For the media / assets: think you should include some own "standard" media - kind of a placeholder - for cases when there is no marquee/scrennshot/background/artwork file for a certain game - but i think in future you already planned this. At this moment, when a artwork (background image) is not available, the theme seem to use one of a nearby game..
For alpha/beta you maybe could use just a black image or smth.On Android (6.x) i have some performance issues,
the one i noticed first is, the big number within the decoration (game rating) is not readable. I'm not sure what the problem is, Qt is known for looking exactly the same on every platfrom i think...a smartphone foto on my googledrive
the other one is a big performance drop when i open the "menu" (systems list), i believe it is because of the blur effect, because the drop in performance is not just few seconds, it stays slow while the menu is open
Next one is maybe not an issue, but your side-menu uses the same key (Button B) like Pegasus uses for the main menu, but that's less a problem, the button "Start" still work i see now ^^
Next, just some thaughts: I LOVE the way your grid is organized, when select a game, the marquee/grid-image is replaced by video, the the popup and the golden-yellow border and the way to mark favorites by a simple button press! (im not sure if it just optical for now or the games really get marked / added to favorites?)
That's for now from me - hope to test new stuff soon! :)))
-
@Purg-Derren Great feedback - thanks! Interesting your windows didn't have performance issues. I've tried it on 3 different machines and every one performs not fantastically. I wonder if it's because you're comparing it to your Android version? Just out of interest what hardware are you running? My Shield runs it buttery smooth.
I was expecting the blur to maybe cause some concerns. I will either wait for the theme options additions that @fluffypillow said is thinking about adding so I will allow for turning stuff like that off or maybe make a separate version for lower end systems. I need to test this on a Pi3 - if that has performance issues I think that's a pretty good indicator of needing to fix that across the board.
Everything else you mention I'll definitely get around to in the next release I think (the font one is weird though. Not sure how that could happen - although I do see it render as a different font on MacOS. But my Shield version is fine. I'll try on the Pixel and see if I can recreate it there).
Thanks again.
-edit- ok I was able to reproduce the font issue on my pixel. Very strange it's a portable android only issue.
-
@PlayingKarrde
No, really, on Windows it is really smooth. Only sometimes, if there is much media and i scroll fast through your 3x4 grid, and the next one is loaded there is a milisecond freeze, but thats normal i think, when media is loaded.My android box.. you cannot compare it to an shield of course, as far i know, the shield is still the most powerful android platform out there. My box is a Xoro HST 260 - with a Amlogic 905D (quad cortex a53 @2.00 ghz), a mali 450MP4 gpu and 2 gb of ram. the roms are stored on a 64gb usb (3.0, but the box supports only 2.0 i think) stick.
But on the android box, i have performance issues with the in-built theme, too. At least since alpha9 or so, first tries - with alpha8 where much better, for some reason ... but that's an other topic.
The Font issue looks different nearly every time i start pegasus.. second time i could see the whole Rectangle colored in white or golden, third time it seem like all ratings (from all games of the active platform) overlapped.
An other thing i just noticed is, on my Windows machine - in your side-menu, the n64 is listed as "Nintendo 64" and on the android as "n64"
... i was not sure if you just made the menu out of the shortName of the platforms, so i didnt mentioned it.Windows:
- Game Boy Advanced
- Nintendo 64
- NES
- Super NES
- psx
- psp
- Sega Dreamcast
Android:
- Game Boy Advanced
- NES
- Super NES
- n64
- psp
- psx
-
@Purg-Derren ok that's very strange with the rating. I think I have an idea though so I'll give it a shot a little bit later.
Its very weird to me that your windows performance is so good when mine is so bad. I wonder if it's something to do with the media I'm using. Or perhaps the codecs I've installed. I used k-lite for each of my builds fwiw.
The n64 thing is definitely strange also. Im not using the shortname at all. I am manually shortening nes and snes due to their longname sizes just being ridiculous but n64 (and the others you listed) shouldn't be affected...
-
@PlayingKarrde Im also using K-Lite, and i notice, that when i run Pegasus, the LAV Video, LAV Audio Decoders and the LAV Splitter is running
-
Could we actually get the theme choosing application as an install script for RetroPi-Config as well and maybe Pegasus and the FE chooser as an option in ES itself?
And a Themes Installer in Pegasus?
-
I love your theme on my android phone.
It runs pretty smooth and is very nice with the logos over the videos that i have.
Its pretty silent not hearing my videos though so is it possible to have background music playing like DIG or Arc Browser? -
@SephirothX2004 I plan on leaving them off by default but want to add theme options so I can add that as one of them. I know @fluffypillow is planning on adding this in but if it's not on the immediate roadmap I might look into adding something temporary as there are several options I want to add before the final release.
-edit- oh you're asking for background music? Hmm I guess it's possible although my intention for this is for it to act much like a tvOS type application (think Netflix or Plex). It's not common for those to have them. However, I can probably add it as an option once that feature is implemented also.
-
@PlayingKarrde Very nice job! Looks great, tested on Linux and Android, working fine so far.
I've also noticed the performance drop with the menu, which also happens on my (perhaps slightly old) desktop PC. Taking a very quick look into the code, perhaps you could play around with the
radius
andsamples
parameters to improve the perf. In general, GraphicalEffects can be very demanding[1], and Android in particular tend to have troubles there as there are a bunch of video chips with various degree of performance and feature support (as in OpenGL shaders, that most GraphicalEffects are in fact). The game score corruption could happen for similar reasons too, it's possible that something in the ColorOverlay doesn't work properly with Mali 4xx chips, but replacing the shader with a colored variant of the image could be a workaround.[1] In the case of the 9999999-in-1 ("beach") theme for example, for the text shadow it was faster and less buggy to just draw the text again in black than adding a drop-shadow effect.
@Purg-Derren do the other themes (eg. the ES one) show the collection names correctly?
As for the codecs, eventually I'd like to use something built-in (so no codecs need to be installed), but it's a bit difficult to implement, so that's still on hold.
@Cederick something like the ES theme chooser in the RetroPie setup script could be done for Pegasus as well. Ideally there'd be also some website or online theme list, which would then be integrated into Pegasus too, so you could install/update themes from it as well.
theme options
So many things to work on, so little time :) But yeah, it might take a while until I reach that part. In the meanwhile, for saving the settings I think the QML Settings item might work and save the settings somewhere on the system. Might be useful as a workaround until proper support.
-
@fluffypillow said in Announcing Pegasus Frontend:
Taking a very quick look into the code, perhaps you could play around with the
radius
andsamples
parameters to improve the perf.Thanks I'll take a look into that. If the drop shadow has a performance his that could be problematic as I'm using it for several things (all the text at the top as well as the highlighted option). I may need to have a low-spec option that turns all that off. Speaking of which:
In the meanwhile, for saving the settings I think the QML Settings item might work and save the settings somewhere on the system. Might be useful as a workaround until proper support.
Yeah this is where I was planning on looking. If it works I'm sure the work involved will be easily ported over to your theme settings when you get around to it. Definitely understand you're probably swamped so I don't want to keep pestering you for this one as I'm sure it's not a small amount of work. I'll implement my screen for now.
-
@fluffypillow ES theme doesn't work for me at all, since alpha9 or even longer, on android and windows.
I thought it's just not up-to-date, like the code of the "simple-theme-tutorial" ...i needed to change some lines, to make it work for me.
I looked into the qml, but im a noob, and for me everything looked ok... i only see the grey base-line, no texts or logos at all and when i hit "accept" the details of the first game are mostly ok, but i can not switch between the platforms or between the gameBut the rest of the themes work well. IF there is a text-base platform list, they are showed in full-form (not a mixed short/full one)Ok, correction, the Flixnet and 99999-in1 themes also print the psp and psx in short :o
Yesterday i also noticed scaling issues with all themes, when switching between fullscrean and windowed. (and restarting pegasus in between etc.) ...first i thought it's an issue with gameOS theme, but then testen with other themes, and it's definetly not the themes fault :)
-
@Purg-Derren Interesting. ES2 theme works fine for me and I'm on the latest version. Could something have gotten messed up in your settings file? Maybe back it up and try deleting it and see if that fixes anything? (I have no idea just grasping at straws).
-
the drop shadow has a performance his that could be problematic
Really depends on the use cases. I've tried to apply it on a list of game titles, and noticed its heavy perf drain. But it could work for just a few elements. If you have some old phone or a Raspberry lying around, they could come useful for testing.
@Purg-Derren it sounds as if the theme files have been damaged/corrupted for some reason. Could you post the whole log file (for both platforms)? Perhaps we might find something in it. You could also try redownloading/reinstalling the themes from scratch.
-
For the ES2 theme I will note that some of the logos are appearing black. I've had this issue before when saving .svgs from Illustrator CC. I haven't figured out the exact cause yet but I'm currently fixing most of them by copying the lines into Gravit Designer and exporting from there. Annoying to be sure and it doesn't work in every case but will likely work for these.
-
@fluffypillow said in Announcing Pegasus Frontend:
The game score corruption could happen for similar reasons too, it's possible that something in the ColorOverlay doesn't work properly with Mali 4xx chips, but replacing the shader with a colored variant of the image could be a workaround.
Yep you were right. Have fixed and pushed the update. Good to know.
Have also switched to using FastBlur instead of GaussianBlur. Seems to be a lot better performance wise. I originally didn't use it as it makes text look sort of ghostly (rather than blurred) but since I turned it off for GaussianBlur anyway (didn't look great there either), FastBlur seems fine.
-
Heya @fluffypillow I just want to reopen the media location discussion.
I know that I was the one that suggested to use folders with the game name and the assets inside. And this still is my preferred way to do it, but the problem is that creating such layout is very annoying because there is no easy way to scrape files and automatically apply that layout. At least not one that I know of and is also available on windows.
So for now I would suggest to use the layout that Skraper creates../media /box2dfront /gamename1.png /....... /gamename100.png /screenshot /gamename1.png /....... /gamename100.png /wheel /gamename1.png /....... /gamename100.png /whatever else skraper can do (haven't checked all media types) /gamename1.png /....... /gamename100.png
As an addition to that, it would be great if we could set the RetroArch thumbnail folders as location. There is a positive and a negative side to that option that i can currently think of.
Plus: We could use the asset downloader from RetroArch to get box art, screenshots and title screens without the need to scrape them manually.
Negative: The roms must have the same names as the images.But for someone like me, who spend the last 4 days manually creating that RetroArch system, it would be a nice option and I don't have to maintain two separate locations.
On the other hand, if we could get that Skraper layout I mentioned, it would be also easier to duplicate that by just copying/renaming the folders.
Maybe it would be possible to have two locations that Pegasus could check.
box2dfront(skraper) = Named_Boxarts(RetroArch)
,screenshot(skraper) = Named_Snaps(RetroArch)
andwheel(skraper) = Named_Titles(RetroArch)
.
Then we could just copy the system folder from the RetroArch thumbnail folder to the rom folder and rename it tomedia
. -
@EctoOne My preference is also the Skraper layout but you can just use the tool I made (it's included with my theme above, check the link) to auto-organise them into the format Pegasus reads. This works fine for me, however the big downside is if you want to add games, Skraper will download everything again since they've been moved from where it looks.
Short term though, my tool will save you a lot of time.
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.