RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Announcing Pegasus Frontend

    Scheduled Pinned Locked Moved Ideas and Development
    frontendpegasusc++developmentqml
    1.7k Posts 145 Posters 5.1m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DarksaviorD
      Darksavior @fluffypillow
      last edited by Darksavior

      @fluffypillow Yay. I appreciate it. Analog controls are detected and responding in the controller settings so pegasus sees something..

      Also, loading times went down again when I moved pics back to the microsd. :D

      1 Reply Last reply Reply Quote 0
      • fluffypillowF
        fluffypillow
        last edited by

        I've played around with the GStreamer packages:

        • if gstreamer1.0-omx is installed (which enables hardware acceleration), h264 videos play fine, but others get corrupted picture
        • updating GStreamer to the latest stable (1.10) doesn't fix the issue
        • gstreamer1.0-libav (which is the FFMPEG wrapper/plugin) with gstreamer1.0-plugins-good plays all tested video files (h264 from screenscraper, handbrake-ified mp4 files from es-toolkit)
        • gstreamer1.0-libav or gstreamer1.0-plugins-good alone doesn't produce good result (black picture/decoder errors), but together they work nicely, I didn't need other plugin packs

        So it seems something's broken in the Qt Multimedia module's hardware acceleration support; I'll probably have to write a custom plugin or see if I can patch it. Until then, you can get the best results with the gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-plugins-good packages.

        1 Reply Last reply Reply Quote 2
        • fluffypillowF
          fluffypillow
          last edited by

          On the previous week I was mostly testing things, like the GStreamer packages, and writing an automatic test suite.

          This week, however:

          • added support for the <favorite> ES2 tag
            • has no visible effect yet, I'll probably add a heart or something
          • added filter panel
            • you can filter by name (or name parts), to favorites or to multiplayer games
            • others might come later (eg. custom tags)
            • video

          The filter panel is work in progress, will be available in a few days.

          R 1 Reply Last reply Reply Quote 3
          • R
            retrolang @fluffypillow
            last edited by

            @fluffypillow I hadn't thought about filtering based on number of players. I ran into that the other day when trying to figure out which games were 2 player with a friend. Thanks for your work, I've been using the alpha builds and they keep getting better.

            1 Reply Last reply Reply Quote 0
            • fluffypillowF
              fluffypillow
              last edited by

              Ok, the filter panel is now available in the latest alpha, you can press Ctrl to toggle it.

              It's also something that a theme can change, so currently it's only in the main theme. I wonder how does a search panel look in Netflix?

              1 Reply Last reply Reply Quote 0
              • fluffypillowF
                fluffypillow
                last edited by

                Oh and Pegasus is now available from the RetroPie menu (experimental section)!

                AndersHPA 1 Reply Last reply Reply Quote 6
                • D
                  dudleydes
                  last edited by

                  I have installed Pegasus on my Pi 2 from the RetroPie setup script. I am using a wired PS3 controller so have also installed xboxdrv.

                  In the file /opt/retropie/configs/all/autostart/sh, I have replaced the line to launch ES with the following:

                  sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --detach-kernel-driver --mimic-xpad -s >/dev/null & /opt/retropie/supplementary/pegasus-fe/pegasus-fe; sudo killall >/dev/null xboxdrv #auto
                  

                  The PS3 controller now works fine in Pegasus but when I launch a rom in lr-mame2003, RetroArch tells me that it's using a Microsoft Xbox 360 pad, which is not configured.

                  How do I kill xboxdrv after I launch a game so that I can use the RetroArch config for PS3 controller?

                  I use xboxdrv for FPS ports and adding the line sudo killall >/dev/null xboxdrv kills xboxdrv after I exit the port so that I can use the PS3 controller in ES as configured.

                  1 Reply Last reply Reply Quote 0
                  • fluffypillowF
                    fluffypillow
                    last edited by

                    @dudleydes I think I can add support for running a custom script before launching/after finishing a game. I'm actually surprised I haven't done that yet.

                    BuZzB 1 Reply Last reply Reply Quote 0
                    • BuZzB
                      BuZz administrators @fluffypillow
                      last edited by

                      @fluffypillow assuming people are launching via runcommand, it can launch a bash script before/after launching a game - https://retropie.org.uk/docs/Runcommand/#runcommand-onstart-and-runcommand-onend-scripts

                      To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                      1 Reply Last reply Reply Quote 1
                      • fluffypillowF
                        fluffypillow
                        last edited by

                        I've ended up implementing it (for cross platform support and because why not), it's now available in the alpha. The relevant directories are game-start and game-end; you can add scripts just like for the other events.

                        Note that unlike the runcommand method, the scripts Pegasus calls do not receive any additional information (at least, not at the moment).

                        D 1 Reply Last reply Reply Quote 1
                        • AndersHPA
                          AndersHP @fluffypillow
                          last edited by AndersHP

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • D
                            dudleydes @fluffypillow
                            last edited by

                            @fluffypillow Thanks for implementing this so quickly.

                            I have updated Pegasus and I am now running version pegasus-frontend alpha3-36-ge792314. I have removed ; sudo killall >/dev/null xboxdrv from autostart.sh and restarted my Pi.

                            I created a script kill-xboxdrv.sh in the game-start folder with the following contents:

                            #!/bin/bash
                            sudo killall >/dev/null xboxdrv
                            

                            Then I created a script start-xboxdrv.sh in the game-end folder with the following contents:

                            #!/bin/bash
                            sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --detach-kernel-driver --mimic-xpad -s >/dev/null
                            

                            I have made both scripts executable.

                            Now when I launch a rom in lr-mame2003, no text appears informing which controller is configured. Checking the processes running using top, xboxdrv is being killed and retroarch is running without it but it doesn't seem to be picking up the PS3 controller config.

                            fluffypillowF 1 Reply Last reply Reply Quote 0
                            • fluffypillowF
                              fluffypillow @dudleydes
                              last edited by

                              @dudleydes so the scripting part works correctly (kills xboxdrv before the game, restarts on end), but RetroArch does not recognize the PS controller? And everything works fine using ES2?
                              Hm, Pegasus should not "own" the devices or deny access to them... I wonder how RetroArch detects controllers...

                              D 2 Replies Last reply Reply Quote 0
                              • D
                                dudleydes @fluffypillow
                                last edited by

                                @fluffypillow I've had a further look at this and I believe the issue is with configuring xboxdrv rather the Pegasus frontend.

                                If I run cat /proc/bus/input/devices with the setup above, then the virtual Xbox 360 pad appears as js0 with no sign of the PS3 controller.

                                In my xboxdrv configurations for the Doom ports, I include the following flag

                                --evdev /dev/input/by-id/usb-Sony_PLAYSTATION_R_3_Controller-event-joystick
                                

                                If I include this in autostart.sh, then the PS3 controller appears when I run cat /proc/bus/input/devices as js0 while the virtual Xbox 360 pad is js1. Of course, this means I can't use my PS3 controller in Pegasus though the controller is fine in lr-mame2003.

                                I'll take a further look at the xboxdrv documentation to see if there is a way of making the virtual Xbox 360 pad js0 while Pegasus is running and reverting to js1 when a emulator is launched.

                                1 Reply Last reply Reply Quote 1
                                • D
                                  dudleydes @fluffypillow
                                  last edited by dudleydes

                                  @fluffypillow I have managed to get the PS3 controller working in Pegasus and in emulators using the Linux Joystick Mapper. I have used this utility previously to map the mouse to the left analogue stick and face buttons for use in DOSBox. It doesn't use jsX assignments but creates extra events for each mapping in /dev/input/.

                                  I will write up some documentation in the wiki on how I set this up but I would like to do some more testing before I do so.

                                  I have mapped the arrow keys, Enter and Esc. Are there any other keystrokes in Pegasus I should be aware of?

                                  While I am here, I am impressed with the flixnet theme. In the built-in theme, I get icons appearing in the RetroPie menu but when I switch to flixnet theme, they don't appear. Could you advise how I can get images to appear in this theme?

                                  Also, if I add roms or add images/metadata, what is the best way for these to appear in Pegasus without rebooting? In ES2, I have the option to restart ES.

                                  1 Reply Last reply Reply Quote 0
                                  • fluffypillowF
                                    fluffypillow
                                    last edited by

                                    @dudleydes here's the current input scheme:

                                    Keyboard Gamepad Effect
                                    arrows dpad navigation
                                    enter Cross select/ok
                                    escape Circle cancel/back
                                    ctrl Square filter menu (used in the main theme)
                                    A or Q L1 or L2 previous platform (used in the main theme)
                                    E or D R1 or R2 next platform (used in the main theme)

                                    For some operations multiple keys/buttons are provided to support multiple layouts and play styles.

                                    when I switch to flixnet theme, they don't appear

                                    That sounds like a bug, will take a look on it.

                                    restart

                                    A hotkey for reloading the theme was planned, but yeah a whole restart might be useful too.

                                    1 Reply Last reply Reply Quote 0
                                    • fluffypillowF
                                      fluffypillow
                                      last edited by

                                      Or maybe a "Rescan" option.

                                      1 Reply Last reply Reply Quote 0
                                      • fluffypillowF
                                        fluffypillow
                                        last edited by

                                        @dudleydes the Flixnet theme didn't show the RetroPie icons because it was set to only show the "grid icon" picture. I've just added support for the box art image, which should now show up instead if there's no grid icon. The result isn't as nice, but I guess it's better than having no image at all.

                                        0_1503592331795_Screenshot from 2017-08-24 18-31-44.png

                                        lilbudL D 2 Replies Last reply Reply Quote 0
                                        • lilbudL
                                          lilbud @fluffypillow
                                          last edited by

                                          @fluffypillow What do you use to scrape the images for Pegasus? I'll have games with scraped art that show up as nothing.

                                          Creator of the Radiocade: https://retropie.org.uk/forum/topic/6077/radiocade

                                          Backlog: http://backloggery.com/lilbud

                                          1 Reply Last reply Reply Quote 0
                                          • fluffypillowF
                                            fluffypillow
                                            last edited by

                                            @lilbud I've used Universal XML Scraper to get the box art images, then added the -boxFront suffix to the files (with the linux tool rename) and moved them all into <romdir>/media. Similarly did the same for the logo, screenshot and video files. The "grid icons" (wide images used by eg. Steam/Ice) are from consolegrid.com, for which I've manually wrote a simple scraper. I'm also using the files from https://github.com/mattrixk/es-toolkit for testing as well.

                                            If you have troubles loading some images, make sure they have the right suffix. If ES can show the box art of a game, it should also work in Pegasus; if not, that's likely a bug.

                                            HurricaneFanH lilbudL 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.