Announcing Pegasus Frontend
-
@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.
-
@fluffypillow said in Announcing Pegasus Frontend:
If you can send me a fully scraped LaunchBox XML that would help! (@PlayingKarrde I think you too used LB?)
-
@lilbud ah I see; do other frontends have such plugins? I guess this would also need some way to detect where Pegasus is installed, and a settings panel too for proper configuration.
@PlayingKarrde thanks!
Also a weekly update!
- Updated the Qt libs on all platforms for performance improvements. Please report if anything seems to be wrong.
- In addition, the JavaScript engine used by the themes now supports ECMAScript 7.
- New Raspberry Pi 3 optimized releases. In theory these should also perform slightly better than the Pi 2 builds, but I haven't compared the two in-depth yet. I'd be interested if you experiences.
- When adding game directories,
metadata.txt
files are also selectable - Memory optimizations
- Extended the documentation of Linux dependencies
- Website updates
- Added Logiqx support to the metadata format converter
EDIT: forgot to mention the converter site
-
@fluffypillow said in Announcing Pegasus Frontend:
@lilbud ah I see; do other frontends have such plugins?
I guess, I don't really have much knowledge on the topic. I would think so.
It would work similar to apps on a PS4. There is a base frontend and everything launches from that.
For a while, I had OSMC set up on my pi to watch anime, and I would have a shortcut that would load up emulation station. Just made it simpler to use. Instead of having to break out a keyboard and run ES from the CMD.
That would be a great feature to have with Pegasus.
Here is a github I found real quick which adds ES as an app, maybe that'll help you figure this out.
https://github.com/BrosMakingSoftware/Kodi-Launches-EmulationStation-Addon -
@fluffypillow This is my entire data file from launch box, all of the collection.xml's were made using skraper you'll notice two Nintendo entertainment system xml's the one with (launchbox edits) was originally scanned and i then edited game info in launchbox (consolidated games and alike) the other is the original scan before edits HERE
Ive tested your suggestions ill run through things a bit more before i completely reply to that either in edit to this or new comment, thanks so much for your quick reply, better "customer" service than most paid companies. you F***ing ROCK!
As for the Kodi thing, as it sits right now they currently are beginning to use libre cores to run games from withing kodi, as far as i know they plan to implement a similar structure for games as they have for movies, meaning how they are displayed. which is nice, but it is not at the same level as a big box frontend. i use current kodi and estuary mod. i can see myself going through the categories on the left (movies tv shows and games) i go to movies and tv shows, move to the right and view the collection as always, i backspace out, go to games and move to the right to view, but instead of the same view as videos (as they plan) its right into Pegasus, backspace enough to a close warning and then right back to kodi main menu. if done right i could honestly see that being the biggest thing since kodi itself, the user friendliness\mass appeal of kodi (sorta)mixed with your clearly amazing program, will cause the same trend in these games as nes originally did.
EDIT
OK I've spent some time on it now. im not sure what my original problems were. i say this because i updated to the new alpha, and kept my same collection.txt, it found the games and images. i checked the log from the previous version (when i originally did it, not now) and there were never any errors to post here so IDK. (regardless of portable or not)Ive re scraped with the new format, and converted, everything shows up it looks great, i now have 3 issues
-
First: in default theme the screenshot in main view shows and disappears immediately, re appears on moving to another game and back to it. no screenshot at all in info panel/view (im gonna switch themes eventually anyway)
LOG: [w] DirectShowPlayerService::doRender: Unresolved error code 0x80040266 ()
-
Second i can only imagine is my own incompetence I cant get it to launch the emulator log says path doesn't exist (it does) ive use the following as suggested, and a few variations not shown and a personalized version of the real life examples
launch: retroarch ""{file.path}"" launch: retroarch "Q:\Media\- Games\Programs\Retroarch\retroarch.exe" launch: Q:\Media\- Games\Programs\Retroarch\retroarch.exe "{file.path}"
-
are dualshock 4's not supported, i cant get mine working, xbox one is fine though
lastly i forgot to say, dont be sorry. if anything im sorry for taking your time thanks for you help, and your awesome work.
-
-
Kodi
Hmm so something like this?
Unfortunately that'd require merging Pegasus and Kodi on the source code level, I think doing that in a plugin is not technically possible :(
First: in default theme the screenshot in main view shows and disappears immediately, re appears on moving to another game and back to it. no screenshot at all in info panel/view (im gonna switch themes eventually anyway)
This DirectShow error usually means "the video file needs a codec that is not currently installed" (yeah, Microsoft likes cryptic error messages). The common solution is to use a codec pack like K-Lite that plays them all, or one specific to the particular video format (eg. Steam needs Xiph codecs).
Second i can only imagine is my own incompetence I cant get it to launch the emulator log says path doesn't exist (it does) ive use the following as suggested, and a few variations not shown and a personalized version of the real life examples
Have you tried
launch: "Q:\Media\- Games\Programs\Retroarch\retroarch.exe" "{file.path}"
? Spaces and relative paths tend to be problematic, but should work with quotes. If not, please post the log and the metadata file, I'll try to reproduce the error then. I guess launching may also fail if
Q:
is not a regular drive, eg. it's a network share or some online service.are dualshock 4's not supported, i cant get mine working, xbox one is fine though
Should work, but I can't test it at the moment. Anyone else have this issue?
-
@fluffypillow If you were to create a way to have both Kodi and Pegasus. Kodi would launch pegasus, not run over top of it. You'd select the shortcut and pegasus would open as a completely seperate program.
-
@lilbud yes that can be done, it's just the Pegasus-inside-Kodi approach that would be troublesome.
-
@fluffypillow said in Announcing Pegasus Frontend:
the Pegasus-inside-Kodi
Last I checked there were add ons for Kodi that let you launch external programs from within Kodi, so it wouldn't be too difficult to just have the add on launch Pegasus. Wouldn't require anything on your part as far as I know.
I don't see any point of running Pegasus within Kodi.
-
Hmm so something like this?
Yeah Basically. ill try to form a better description later.
This DirectShow error usually means "the video file needs a codec that is not currently installed" (yeah, Microsoft likes cryptic error messages). The common solution is to use a codec pack like K-Lite that plays them all, or one specific to the particular video format (eg. Steam needs Xiph codecs).
I didnt even think to google it i assumed it was something you made for debugging, another oof for me. odd i have alot of codecs installed. this drive is moved a lot, always on a windows machine id like to avoid any possible need for installs while portable will switching formats or to a container still be readable, or could a portable vlc in the pegasus root directory be made to run videos
Have you tried
launch: "Q:\Media\- Games\Programs\Retroarch\retroarch.exe" "{file.path}"
Yes i did, since my last message i discovered i had a service that got stuck in a loop so problem has been solved, though should i be adding a command to the meta txt to instruct which core should be used, i noticed in the android real world example in docs there are a few added.
launch: am start --user 0 -n com.retroarch/.browser.retroactivity.RetroActivityFuture -e ROM "{file.path}" -e LIBRETRO /data/data/com.retroarch/cores/fceumm_libretro_android.so -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch/files/retroarch.cfg -e IME com.android.inputmethod.latin/.LatinIME -e DATADIR /data/data/com.retroarch -e APK /data/app/com.retroarch-1/base.apk -e SDCARD /storage/emulated/0 -e DOWNLOADS /storage/emulated/0/Download -e SCREENSHOTS /storage/emulated/0/Pictures -e EXTERNAL /storage/emulated/0/Android/data/com.retroarch/files --activity-clear-top
Are those android specific? if not are they specific variables you've established or is it a standard with documentation you can point me to. (not the paths, the -n, -e, etc.)
Should work, but I can't test it at the moment. Anyone else have this issue?
I figured it was supported i could see the button logos. just wanted to make sure. it could be my hardware, i think ive been having issues with the onboard USB root hub.
-
@TempTest said in Announcing Pegasus Frontend:
I didnt even think to google it i assumed it was something you made for debugging, another oof for me. odd i have alot of codecs installed. this drive is moved a lot, always on a windows machine id like to avoid any possible need for installs while portable will switching formats or to a container still be readable, or could a portable vlc in the pegasus root directory be made to run videos
Pegasus currently uses the system's built-in media playback features, which is why installing codecs is necessary. Though, if the codec DLLs are placed next to the EXE, in theory that might also work. Haven't experimented with that before.
There are also plans to add standalone video playback support, but since that won't be a small task it's a long term goal for now.
Are those android specific? if not are they specific variables you've established or is it a standard with documentation you can point me to. (not the paths, the -n, -e, etc.)
Yes, those are Android-specific, on Windows and Linux it looks like this:
launch: path/to/retroarch.exe -L path/to/somecore.dll "{file.path}"
example:
C:\retroarch\retroarch.exe -L C:\retroarch\cores\fceumm_libretro.dll "{file.path}"
-
This is definitely the best frontend brought to Android hands down! And a pretty neat too for other platforms, you did an awesome job!
Although I feel like it definitely could be even better. As a matter of fact, the only downside (to me) is that Pegasus lacks of an home screen... I mean, it automatically select the first (alphabetically) platform available and focus it. It would be awesome to have a Home section with :
- "Recently Played" games (20 to 60 entries).
- "Recommended Games" based on our gaming history (Genre, Year, Developper, Platform, Number of player... all together in a Netflix style algorithm).
- "Because you played [Game name]" recommending games based on the most played game.
Making the frontend more custom tailored to each players and making it easy to find a game the user might like when they have a massive game library (full romsets and so on).
Just throwing some ideas here, but that'd be awesome!
-
@Moukrea sure, ideas are welcome! In fact the "recently played" list is already possible, if I remember correctly the gameOS theme will have something like that.
As for recommendation systems, they require lots of data to be accurate, but unfortunately I haven't seen a database yet that'd have enough information for that. Things like people who worked on the game, whether it's part of a series or whether it received any awards, these would have an impact on the result, but no site provides them as far as I know. Without proper data, it would be like recommending TV series based on the air date, number of actors and the channel it aired on... But, with enough information, this would be an interesting feature.
-
@fluffypillow That's actually all I can do, throw some ideas! So far Pegasus became my main Frontend on my Android TV box (Shield) and I'd love to see it becoming the go-to solution for it... For the recommendation, I don't think it could be as accurate as Netflix algorithm that's for sure! What I meant was maybe it could confront informations from previously played games, for exemple:
I played Mario Kart 64 (6 times), Mario Kart Double Dash!! (20 times) and Crash Team Racing (2 times). The three of them are Racing games (Played this genre 28 times in total), two are developped by Nintendo, the three are 4 players games... The recommendation system would then know that I play multiplayer games, moslty racing ones with a preference for Nintendo as a developper! The recommendation after this data could be Mario Kart Wii etc etc... It's all after data scraped in my collection data, so there's no need for more data. Very much like it's done in Kodi for movies... If for exemple I watch mostly Action movies made by... let's say Marvel Studios, it will suggest more of them in its recommendations. All it has to do (which is actually a lot) is to process the watched history data (Genre, Studio, Year, Actors) and blend them together regarding to how many times it has been watched.Much like my exemple with Racing games, I played this genre like 28 times while I played Platform (for exemple) 10 times and Adventure 4 times in total, then the recommendation system would know that Racing would be more recommended than Platform, which is going to be more recommended than Adventure. To be perfect, as you said it would require hell of a lot of data such as people involved, awards and so on... But I think having this system with just Genre, Developper, Year, Platform and Number of Players would be already to off the line.
That would require to build a (custom) secondary database tracking gaming history, after the data contained in collections database. I'm pretty sure it's doable, however as you said, it's hell of a work to put in place!
As for the recently played thing, one other thing that could be cool would be to be able to set the Recently played section as an Android TV Channel to have it on the Android TV main menu, but now I'm daydreaming!
-
I'm in the process of adding a home screen to gameOS but other things have been taking up my time lately. Recently played, recommendations per genre (random genres filtered by rating unfortunately since I don't think it would be a good idea implementing a deeper PLEX like system at the theme level for this) as well as a few other things.
Unfortunately it's a pretty big task though and I haven't had a big chunk of time to dedicate to this in the last couple of months.
-
@PlayingKarrde that's awesome! I didn't think stuff like this could be achieved at the theme level actually, but if briging recommendations based on ratings is possible, wow that's good news! Not as rich as I stated before but it's a good idea to highlight most popular games, and therefore the potentially most interesting ones! Looking forward to this, keep up the good work
-
@Moukrea I would keep expectations in check a little though. There's not a whole lot of granularity in the ratings pulled from screenscraper (and I am not even really sure where those ratings come from tbh). I think if the launchbox support does come that might give better results but we'll see. All in all the best endgame solution I feel would be some kind of PLEX like database service, but that would be both time consuming and expensive so I'm not sure we'll ever see something like it.
-
@fluffypillow I don't notice the differences with the pi3 version, but just be aware the retropie-setup script points to the pi2 build. Anyone wanting to use the pi3 build will need to edit the pegasus-fe script and change
rpi2
torpi3
.
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.