Announcing Pegasus Frontend
-
Phew, all right, the metadata changes are finally here! There are still a few missing things, but the file format part is done and the rest will come as follow-up patches. This is a breaking change, so feel free to remain on an older version if you don't want to mess with the update right now. The previous-latest version (up until yesterday) for all platforms is also still available here.
Here's what changed:
- The format of
collections.txt
andmetadata.txt
is now united- You can now define both collections and games in the same file and only one of them is enough to be present in a directory.
- Pegasus will try to open
collections.pegasus.txt
,metadata.pegasus.txt
,collections.txt
andmetadata.txt
(in this order) and stops at the first file it founds. (I've putcollections
first so at least your collections will be found after the update. I'll movemetadata
first in the next, more stable release.)
- Metadata file format changes
- Haven't finished the documentation yet, but a draft is available here.
- Games can now consist of more than one file, and as such
game
entries are defined by their title (game:
), and not a filename. - A cleaner difference between text values and lists
- Empty lines now have to be marked with a single dot. This makes the multiline texts, like long descriptions continuous, avoiding the "text flying in the middle of nowhere" kind of effect. It also makes the format closer to the Debian config format (on which it is based on in the first place).
- Updated the format converter tool
- It's available here
- You can now convert between the old ("alpha 10") and the new format
- Fixed some minor bugs as well
Here's what's still missing:
- Documentation
- Actual launching support for games with multiple files
- Custom names and properties for the individual files
- Theme support for accessing the launchable entries
Now these changes involved changing quite a large part of the internal code; I've tried to test most of the things, but there might be still bugs lurking around (including the converter page). Testing would be much appreciated!
Developers: the commit before this change is
9f38c2b
. - The format of
-
@fluffypillow I noticed builds are still meant for the pi2. Will building specifically for the pi3 offer any performance benefits?
-
@Darksavior actually it may! In addition an update to Qt also comes out next month, which might bring some performance improvements, so I do plan to do some experimenting with additional build targets then.
-
I know this is a huge task so really just curious about this right now, but do you have any plans to integrate adding/modifying etc collections or roms into Pegasus itself at some point?
It's still alpha I know but I have to assume that ease of adding systems and roms would be one of the huge main wants from the majority of users. Needing extensive documentation for creating game lists surely isn't sustainable long term so just wondering what your thoughts are on this.
-
@fluffypillow
forgive me for asking maybe a bit of a stupid question.
I'm a Retropie user, running Pegasus from my RPi.Pegasus is awesome for me, therefore I'm reluctant to update to newest version, since these last many updates have been regarding metadata and pc/android things that I don't understand. I was glad to have the launch menu with "favorites" toggle, and the pageup/pagedown functionality (week 67 'ish)... Since then I don't think I have updated Pegasus.
If you compare the metadata of EmulationStation (my games are all scraped so they work in ES also) and these new metadata for Pegasus, what will the difference/benefits be?
I'm not interested in manually adding metadata to thousands of games..
I'm just trying to ask; what am I missing out on, if I don't use these new metadata possibilities?
-
@fluffypillow
By the way; did anyone else ever have issues getting into the runcommand launch menu? (buttonpress after launch image).
I can't enter these menus to save my life, so I have to use emulationstation to test other emulators etc. Very frustrating. -
@PlayingKarrde well that's an interesting topic; personally I'd prefer the "one program does one thing" kind of approach, but I do see that'd be uncomfortable in a frontend's case (similarly to the lack of built-in scraper). So in the long term, yes, it'd be a feature nice to have, but at the moment I still see several areas in our current state which could be improved before then.
Creating a small management tool sounds like a fun project though, so I'll likely start with that first. Then, if it turns out well, it could be also merged into Pegasus itself eventually.
@AndersHP yeah I was trying to group a bunch of breaking changes together this time between Alpha 10 and the next, Alpha 11 to get them done (with Android TV being a small extra). With this many changes I certainly plan to write a summary page before the stable release as well.
Most of the last update changes only a few points of the existing format's text style. The major difference however is that Pegasus' metadata format now support multiple files per game. If you have lots of multi-disc games for example, you can make them appear only once, as a single game, then select the actual disc on launch. It could be used for other creative things, like listing arcade clones under one main game too.
There are still a few missing bits though, so no need to hurry. You also don't need to write files manually from scratch, you can use the format converter tool linked above to help converting between the formats. Pegasus' format is kind of like ES' systems config and gamelist in one file, but local to a particular directory.
runcommand
I'm afraid I can't test it this weekend, but I can take a look next week.
-
@fluffypillow said in Announcing Pegasus Frontend:
Creating a small management tool sounds like a fun project though, so I'll likely start with that first.
I think that would be ideal. I sort of agree with your philosophy of one program does one thing well, but I'm mainly thinking about the people who run this from Pis or Android devices where having another tool isn't really possible. An external tool would be fantastic for me personally though.
-
No updates this week because I've got cold :/
-
@AndersHP sorry for the late reply,
runcommand
seems to work fine for me, using Pi3 + Logitech F310. The button layout was slightly off though, but that's probably fixable. -
No updates this week either, but likely there'll be in the next one! I've also started experimenting with the new Qt release, the builds are complete but I'll want to test them on real hardware before pushing an update.
On a related note, I also plan to make some maintenance-related changes:
- Raspberry: Debian Wheezy reached its end-of-life last year, and thus it's no longer supported (did that even work?). By "not supported" I mean the official builds will likely not run out of the box there, but you can still build it manually if you wish. Jessie may continued to be supported on ARM.
- Desktop Linux: Ubuntu 14.04 reaches its end-of-life soon, and it's no longer supported (16.04 still is). For other desktop distros: the Linux release now requires C++14 support (GCC 5.1+ or Clang 3.4+). Shouldn't be a problem in 2019, but do tell me if it's an issue.
- Maintainers: In the future, Qt 5.12 will become the minimal required Qt version for Pegasus. (If you aren't building Pegasus from source, this doesn't affect you)
-
@fluffypillow Have you had any luck with implementing the other video wrapper you were looking into? Performance is still an issue with me on all my machines running Windows and I can't help but feel it's due to k-lite.
-
@PlayingKarrde not yet, that'll be quite a big topic to work on. It's surprising that the Windows performance is so slow though, I'll see if I can improve it somehow. You could also try selectively installing parts of K-Lite, perhaps there are some components that slow down the rest?
-
@fluffypillow said in Announcing Pegasus Frontend:
You could also try selectively installing parts of K-Lite, perhaps there are some components that slow down the rest?
To be honest I wouldn't know where to start. K-lite has so many options when installing I generally just go for defaults.
-
Wow, really cool! You have far too much time on your hands, ha ha. Ah, I see the Cuphead game in your screenshots -- coolest looking game.
-
Can someone please give me a complete idiots guide to getting Pegasus up and running on a windows machine. I mean as complete and as detailed as possible, Ive been scrolling through this forum for days and don't seem to be making
much progress, no ANY progress. I would like the program to be portable (it will be on an external drive). I use Skraper,net BTW.
I would prefer the media to be saved with the roms for future update to Kodi when available but this is not essential. meaning- game console\
- collections.txt
- game 1\
- game1.rom
- game1screenshot.png
- game1screenshottitle.png
- game1box front.png
etc
or if that's not possible this:
- game console\
- collections.txt
- game 1\
- game1.rom
- media\ %art-type%\ ..etc
but again i can use the standard structure.
i need the most detailed, user friendly way possible to get this front end running properly. telling it how to find the roms, how to tell it what emulator to run the games in along with special commands, how to have multiple games listed as the same ((for example) game1 contains game1 North America, game1 Europe, game1 Asia), what folders should i be putting in the Pegasus root folder (.config, etc) Literally everything
A launch box xml convertor would be pretty great. i wish i possessed your guys coding knowledge
UNRELATED
On another note being as Kodi is about to implement game management (its sorta out now), I think it would be a great opportunity for you to take advantage of, by making Pegasus an add-on. i know id use it!! Though i have no idea how hard that would be, i know they like their python and if i cant get this running, there's no way I know what I'm talking about. just my thoughts. Thanks again - game console\
-
@TempTest Did you look at the documentation available at http://pegasus-frontend.org ?
-
@mitu absolutely. i did 3 scrapes and attempts in the process of typing the previous message. Ive tried multiple versions of the alpha, went through all the docs, gone through this thread ALOT. Ive run through scrapers with suggested settings, converted gamelist.xml's on the site, batch renaming of files to conform to the standards stated here. i have over 30,000 roms. i will not do them manually. just no. so unless the docs has been completely changed in the last hour Ive got that info. Also the website docs are outdated as only one txt file is now required, and the draft one posted before helped none. both of which i actually have open now and have all day. thanks though.
-
@TempTest I'm sorry to hear your troubles; yes, the initial setup is far from user friendly at the moment, but improving that is one of the goals for the near future. The multi-file support is also not 100% complete yet, but I'm working on it (the metadata file format already supports them, there's just a game selector missing).
Now as for the topics you've mentioned,
- Portable mode
This is supported, Pegasus has a
--portable
flag. To launch it like that, you can create alaunch_portable.bat
with the following contents:pegasus-fe.exe --portable
, place the file next to
pegasus-fe.exe
and use that to launch Pegasus. The config directory will get created on first start. Unfortunately there's also a Windows-specific bug where relative paths to emulators and working directories may not work, but this will get fixed.- Kodi-like directory structure
This is not supported at the moment but I'd really like to add it sometime! The current directory structure is to have the ROMs in one directory, and the media files in another, per game. See these examples. Subdirectories are supported, it's just that the media files are placed separately.
- LaunchBox converter
Yes, it was requested before, just haven't had the time yet to implement it. If you can send me a fully scraped LaunchBox XML that would help! (@PlayingKarrde I think you too used LB?)
- Kodi addon
I'm afraid I'm not familiar with Kodi to that extent... Besides, if we then view Kodi as a game frontend, I'm not sure what should a frontend-in-a-frontend plugin do?
- User friendly guide
Yeah, as mentioned earlier the user friendliness part is still lacking, but it will get better eventually. Meanwhile here's a short guide:
-
- In Skraper, select "Generic" as the output frontend format, and scrape your roms. Skraper will produce a
media
directory next to the ROMs (or, in your case, game directories) and a DAT file (egFamily Computer.dat
) in the parent directory. (If you wish, you can rename themedia
dir toskraper
too -- see here) - Open the DAT file in some editor (it's a regular XML file)
- Open the metadata converter site, and select "Logiqx XML" on the left top. Paste the contents of the DAT file in. The results should appear on the right.
- Create a new text file, paste the converted text from the webpage in and save it as
metadata.pegasus.txt
(or justmetadata.txt
) in your ROM directory. - Now, the metadata file doesn't yet know how to launch the games. Add a new line like this to the Collection definition in the metadata file:
launch: C:/emulators/something.exe "{file.path}"
. See the example here. - Get the very latest alpha release of Pegasus (
alpha10+128
as of today). Set up a portable launching script if you wish, then launch it. - Under Settings -> Set game directories, find and add the newly created metadata file
- Under Settings -> Enable/disable data sources, enable Skraper Assets
- Restart Pegasus. Games should now appear.
- In Skraper, select "Generic" as the output frontend format, and scrape your roms. Skraper will produce a
If something's not clear or doesn't work, feel free to ask! If the format conversion doesn't work, please send me the file (support was just added today so there might be cases I've not implemented).
-
@fluffypillow said in Announcing Pegasus Frontend:
I'm not sure what should a frontend-in-a-frontend plugin do?
For people who use their Pi as a media player, it just consolidates everything under one roof and makes it easier to switch between frontends. Like having ES launch from Kodi, or on PC having a Steam shortcut.
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.