mmatyas / pegasus-frontend Goto Github PK
View Code? Open in Web Editor NEWA cross platform, customizable graphical frontend for launching emulators and managing your game collection.
Home Page: http://pegasus-frontend.org
License: Other
A cross platform, customizable graphical frontend for launching emulators and managing your game collection.
Home Page: http://pegasus-frontend.org
License: Other
Like system backgrounds, as an alternative to game screenshots.
On certain events, the program should iterate over a related config directory and execute scripts found there, in alphabetic order.
The UI should have access to some basic system information, like OS, CPU cores, RAM, and also dynamic information, like the amount of free memory, CPU load or temperature.
I finally managed to get Pegasus running on my Amlogic S905 device, and I am super excited for this FE is amazingly fast and it looks very cool already!
however I seem to be having a problem when I launch an emulator, it crashes after about 1 minute inside, here are some examples, one launching Advmame and the second launching Retroarch.
Executing command: `/usr/bin/advmame.sh /storage/roms/mame-advmame/dbreed.zip`
Process 3098 started
The external program `/usr/bin/advmame.sh` has crashed
The external program has crashed on exit, with exit code 15
Executing command: `/usr/bin/retroarch -L /tmp/cores/snes9x2010_libretro.so "/storage/roms/snes/2020 Super Baseball (USA).zip"`
Process 3003 started
QProcess: Destroyed while process ("/usr/bin/retroarch") is still running.
The external program `/usr/bin/retroarch` has crashed
The external program has crashed on exit, with exit code 9
I understand this is in alpha but I am jut letting you so you can be aware.
not sure if there is some sort of debugging log I can provide to help with this.
To make the frontend more seamless, I'd love for it to be able to not show the launching / return to Pegasus linux text. Also when booting up and turning the system off.
When the game data changes (favorite, play count, ...), the gamelist file should be updated. This should be done keeping plugins in mind. If there are unsupported tags and properties, it should retain them.
Previous issue text:
# Increase play count when a game ends
The play count field should be increased in the config files after a game ends.
This involves (re-)writing the config file.
I know this sounds silly, but it would be awsome if pegasus could handle the GetGameInfoAndUserProgress( 'user', game_id );
function from retroachievements API. Pressing a button could show earned achievements and total progress on that game :)
Login information is stored at /opt/retropie/configs/all/retroarch.cfg
on RetroPie as an example.
This looks like an awesome project, although very wip (no idea how to add emulators or games, my steam games were auto detected but I couldn't seem to launch them, and holding down the enter button on a game makes tons of instances of this program). However im sure that will all be fixed eventually, and so I just wanted to let you know that themes for the platforms I listed in the title would be great. Keep up the good work!
The program should check this directory first for the system config file and for the rom directories.
I've broke something in e7b5060.
In particular with SNES games; European games are in landscape and Japanese games are in portrait.
It would be nice if Pegasus recognized aspect ratio and fixed the height of the portrait boxes.
Another solution could be to rotate the portrait boxarts to make them landscaped.
An essential feature I'm currently working on.
I tried to look for this on the wiki but I could not find it, right now when I compile QT+Pegasus it takes about (I think) 200mb in total, which is a bit too much for a FE on an embedded system, so I've been trying to reduce it to the bare minimum, I already skip a lot of QT modules that are not needed.
-skip qtxmlpatterns -skip qtx11extras -skip qtwinextras -skip qtspeech -skip qtdatavis3d -skip qtcharts -skip qtandroidextras -skip qt3d -skip qtlocation -skip qtmacextras -skip qtdoc -skip qtdatavis3d -skip qtpurchasing -skip qtnetworkauth -skip qtscript -skip qtwebengine -skip qtwebview"
The problem seems to be that I also need the gst-plugins-base, gst-libav and gst-plugins-good for Gstreamer to be able to show videos, so I assume that is what is taking most of the space, but how do I know which plugins to delete as to not affect Pegasus?
if I don't use the plugins Pegasus runs but it doesn't show videos (at least not the mp4 videos I have).
Another solution, which I am not sure if its possible with QT, would be to use FFMPEG (or VLC) to show the videos, like ES does it. FFMPEG is used a lot on my system so it would not require more space.
On errors,
Playstation controllers are not natively supported by Qt but can work with xboxdrv to emulate a Xbox 360 controller.
The command suggested in the Qt Gamepad documentation is
sudo xboxdrv --detach-kernel-driver --mimic-xpad -s
A wired PS3 controller works in the Pegasus frontend with this command but it's not available in emulators. Running cat /proc/bus/input/devices
, the virtual Xbox 360 pad appears as js0 with no assignment for the PS3 controller.
I can add a flag --evdev /dev/input/by-id/usb-Sony_PLAYSTATION_R_3_Controller-event-joystick
but the PS3 controller does not work in Pegasus. It works fine once a rom is launched. This is because the PS3 controller is assigned js0
and the virtual Xbox 360 pad js1
.
I do have a solution working using Linux Joystick Mapper.
Sometimes on Raspberry Pi, the "no games" message appears before the theme is fully loaded, but after the splash screen.
"file:C:/Users/Me/AppData/Roaming/pegasus-frontend/themes/flixnet/theme.qml:48:5: Details is not a type"
Haven't checked the API docs yet, but in general Pegasus should be able to
One does not simply release a beta without style.
Some QML components have annoying limitations. For example, grids:
It'd be nice to provide some easy to use utility components, instead of asking themers to hack their layout.
Hi, I followed your instructions and succeeded in MacOS to build the executable into /opt/pegasus-frontend -> there I have the following directory structure
Something changed on Travis, again. Yay.
I'm collecting some smaller task here, that are not bugs, new features, or may not have a serious impact on the program, but nevertheless I don't want to forget doing them. It's kind of a todo list.
The list of rom directories that are checked for a metadata file should be manageable on a settings screen and save to a config file (ie. under ~/.config
). If there are ES2 system config, this list can be initially filled with that.
themes
and maybe scripts
too.
Also platform-specific assets, like background, default icon, etc.
Depends on #14
I tried out the latest automated build for rpi3 and cam across a missing usability features that would make nice enhancements.
If you have a large list of games, it takes quite a while to scroll through the list. It appears R2/L2 are mapped to switch between systems. It would be nice to use L1/R1 for paging up/down in the game list view like it does in emulation station.
Also it would be nice to have similar functionality in emulation station where you can jump to a letter.
Finally, it would be nice if when you exited a game that you would be back to the system with the game you were playing highlighted. Currently if you are playing a game that begins with a Z
and exit, you will be all the way back at the top of the game list when the front end returns.
As stated by Fluffypillow at RetroPie Forum I'm opening this issue, as I cannot get images and description to show, even though they do in ES.
RetroPie v. 4.3, RPi Model 3B. Pegasus Alpha4-1 (2017-04-10)
Here's what I did:
Where my Gameboy Advance gamelist is located
Desc, image and marquee references in the Gamelist
Controlled that the filenames and location matches
How it looks in Pegasus
How it looks in ES
I'm sorry if I'm wasting your time here, I just cannot seem to find out why it works in ES and not in Pegasus.
Especially when the files are stored on USB, loading might be slow even for 2-3000 games.
"Ideally, I'd expect a scraper plugin to work and communicate with the frontend asynchronously, using a well defined API for reporting the current state and progress, or to allow cancelling the scraping. This would allow me to create a nice progress bar / scraping progress interface, or send the scraping it to the background while the user can continue playing, etc.
This would probably require significant changes in most scrapers, so I'd also add a regular "start this program and wait for it to end" kind of launching too."
If you have say 3 consoles and you are on any tab but the first:
Launching console tools on RetroPie makes them unresponsive to USB keyboard input. Games work fine.
For example, gamepad buttons or arrow keys.
Pegasus should not depend on ES2. Ideally, the format should be a plain, INI-style config file, or something like the Debian control
file.
The most requested feature!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.