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.0m 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.
    • fluffypillowF
      fluffypillow @spartan
      last edited by

      @spartan This cannot be done automatically on Android because apps are not allowed to change other apps' settings. It may be possible with a custom script however, if RA is set up to load the settings from eg. the SD card then that can be modified with a script, and Pegasus can be set up to call this script on config change.

      At least, in theory; haven't tried it yet but I plan to make a similar script for RetroPie in the future, which might also work on Android too.

      1 Reply Last reply Reply Quote 0
      • lilbudL
        lilbud
        last edited by

        I ran into some trouble with Pegasus.

        So I'm trying to import a game, Popful Mail, it has multiple wav files. An ISO and a cue sheet.

        I keep all of the Popful Mail files in their own folder for organization purposes. And when I try and edit the metadata file to read the other directory, it won't show any metadata (the media folder is in the root of the rom folder.) It will all show if I move the metadata file and media folder to the popful mail folder, but that wouldn't work if I want to add more games.

        Sega CD -> ROMs -> Popful Mail folder, metadata.txt, media folder.

        (Sidenote: I wrote this at 1am, and am tired. So if anything needs clarification, lemmie know)

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

        Backlog: http://backloggery.com/lilbud

        DarksaviorD 1 Reply Last reply Reply Quote 0
        • DarksaviorD
          Darksavior @lilbud
          last edited by Darksavior

          @lilbud Not the answer you're looking for, but why not convert them to .chd? It'll be a single file and be smaller in size. You don't mention what pi you're using, but chd only works with genesis plus gx.

          lilbudL 1 Reply Last reply Reply Quote 0
          • lilbudL
            lilbud @Darksavior
            last edited by lilbud

            @Darksavior I'm actually on PC, and Genesis plus Gx didn't play audio the last time I tried.

            It will either play static or no sound at all

            Update: My save doesn't work with a CHD file and Genesis Plus GX

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

            Backlog: http://backloggery.com/lilbud

            1 Reply Last reply Reply Quote 0
            • lilbudL
              lilbud
              last edited by

              Figured it out, I have to have a metadata txt file and a media folder in every subfolder for every sega cd game I want to add.

              There probably is a better way, but this works for now

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

              Backlog: http://backloggery.com/lilbud

              1 Reply Last reply Reply Quote 0
              • PlayingKarrdeP
                PlayingKarrde
                last edited by PlayingKarrde

                @lilbud Have you tried referencing the rom file (in this case the .cue) including the subfolder name in the path? The metadata.txt does support folder paths.

                So instead of

                file: Popful Mail.cue
                

                it would be:

                file: ./<folder name>/Popful Mail.cue
                

                I can't remember if it's forward slash or backslash so try both.

                lilbudL 1 Reply Last reply Reply Quote 0
                • lilbudL
                  lilbud @PlayingKarrde
                  last edited by

                  @PlayingKarrde I've tried that, but that causes the art and metadata to disappear. The only way to show the art and metadata is the move the both into the "Popful Mail" subfolder. Then add each folder as a rom path within pegasus.

                  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 so you have the following structure, right?

                    roms
                    +-- metadata.pegasus.txt
                    +-- popful
                        +-- game.cue
                        +-- game.iso
                        +-- track01.wav
                        +-- track02.wav
                        ...
                    

                    In this case, the metadata file would look something like this:

                    collection: Sega CD
                    files:
                      popful/game.cue
                      ...
                    
                    game: Popful Mail
                    file: popful/game.cue
                    description: Some details here
                    

                    And, because popful/game.cue is under the sudirectory popful, the media files would be looked under media/popful/Popful Mail/, eg. like this:

                    roms
                    +-- metadata.pegasus.txt
                    +-- media
                    |   +-- popful
                    |       +-- Popful Mail
                    |           +-- box_front.png
                    |           +-- logo.png
                    |           +-- video.mp4
                    +-- popful
                        +-- game.cue
                        +-- game.iso
                        +-- track01.wav
                        +-- track02.wav
                    

                    This setup should work fine, but feel free to report it if you run into any troubles.

                    1 Reply Last reply Reply Quote 0
                    • lilbudL
                      lilbud
                      last edited by lilbud

                      I may have brought it up before (can't really remember), but would it be possible to add support for the how long to beat website as a metadata tag? The site shows how long each game takes to beat, normally and completing everything.

                      I found this searching around, it is an api wrapper for the site, not sure if it'd be of any help though.

                      https://github.com/ckatzorke/howlongtobeat

                      The Python one is a little more up to date: https://github.com/ScrappyCocco/HowLongToBeat-PythonAPI

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

                      Backlog: http://backloggery.com/lilbud

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

                        @lilbud that's a good idea, I could imagine seeing that at the game details. However getting the metadata for a particular game would have to be handled by a scraper, as that can't be done in Pegasus without guesswork (as games can be present in multiple collections, can have multiple files, etc.). [I wonder if there's someone who'd like to write a modular scraper?]

                        DarksaviorD 1 Reply Last reply Reply Quote 0
                        • DarksaviorD
                          Darksavior @fluffypillow
                          last edited by Darksavior

                          @fluffypillow Have you tried the latest dev image? https://files.retropie.org.uk/images/weekly/retropie-buster-4.5.8-rpi4.img.gz

                          It now supports hdmi modes/groups where it previously didn't. So the boot process, emulators, and ES now use the resolution that's set in config.txt.
                          Well, pegasus doesn't :). It ignores those settings and will still display at 4k30hz.
                          I've been using hdmi_ignore_edid=0xa5000080 for a few months now to force it all to 1080p.

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

                            @Darksavior hm what exactly happens? Pegasus shouldn't change the current resolution, just use whatever currently is active. Does it happen on Pi 4 and non-4 too? Will see if I can try it the afternoon.

                            DarksaviorD 1 Reply Last reply Reply Quote 0
                            • DarksaviorD
                              Darksavior @fluffypillow
                              last edited by

                              @fluffypillow So if I set the resolution on my pi4 to 1080p in the config.txt, boot and emulators are 1080p, Pegasus will change to 4k on my 4k TV.

                              I haven't tried it on a pi3.

                              mituM 1 Reply Last reply Reply Quote 0
                              • mituM
                                mitu Global Moderator @Darksavior
                                last edited by mitu

                                @Darksavior Does tvservice -s still lists the 4k video modes ?
                                Try adding to config.txt:

                                hdmi_max_pixel_freq:0=200000000
                                hdmi_max_pixel_freq:1=200000000
                                

                                This should exclude the 4k video modes from being included
                                (from https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=255970&p=1579140&hilit=4k+disable#p1579140)

                                DarksaviorD 1 Reply Last reply Reply Quote 0
                                • DarksaviorD
                                  Darksavior @mitu
                                  last edited by Darksavior

                                  @mitu I'll try that, but the point that I'm trying to make is, ES will change what res is in config.txt. Pegasus does not. I bet if I try it on my 1440p monitor that Pegasus will change to that res as well. It's ignoring it.

                                  mituM 1 Reply Last reply Reply Quote 0
                                  • mituM
                                    mitu Global Moderator @Darksavior
                                    last edited by

                                    My guess is that QT picks the first video mode (as detected by KMSDRM, which gets it via EDID from the display) instead of using the current video mode - while SDL2 (which EmulationStation uses underneath) will keep the current video mode.

                                    Try running with QT_QPA_EGLFS_DEBUG=1 from the command line and see if you get some information on how QT picks the current video mode.

                                    DarksaviorD 1 Reply Last reply Reply Quote 0
                                    • DarksaviorD
                                      Darksavior @mitu
                                      last edited by Darksavior

                                      @mitu

                                      [i] EGL_BUFFER_SIZE: 24
                                      [i] EGL_ALPHA_SIZE: 0
                                      [i] EGL_BLUE_SIZE: 8
                                      [i] EGL_GREEN_SIZE: 8
                                      [i] EGL_RED_SIZE: 8
                                      [i] EGL_DEPTH_SIZE: 24
                                      [i] EGL_STENCIL_SIZE: 8
                                      [i] EGL_CONFIG_CAVEAT: 12344
                                      [i] EGL_CONFIG_ID: 20
                                      [i] EGL_LEVEL: 0
                                      [i] EGL_MAX_PBUFFER_HEIGHT: 4096
                                      [i] EGL_MAX_PBUFFER_PIXELS: 0
                                      [i] EGL_MAX_PBUFFER_WIDTH: 4096
                                      [i] EGL_NATIVE_RENDERABLE: 1
                                      [i] EGL_NATIVE_VISUAL_ID: 875713112
                                      [i] EGL_NATIVE_VISUAL_TYPE: 12344
                                      [i] EGL_SAMPLES: 0
                                      [i] EGL_SAMPLE_BUFFERS: 0
                                      [i] EGL_SURFACE_TYPE: 4
                                      [i] EGL_TRANSPARENT_TYPE: 12344
                                      [i] EGL_TRANSPARENT_BLUE_VALUE: 0
                                      [i] EGL_TRANSPARENT_GREEN_VALUE: 0
                                      [i] EGL_TRANSPARENT_RED_VALUE: 0
                                      [i] EGL_BIND_TO_TEXTURE_RGB: 0
                                      [i] EGL_BIND_TO_TEXTURE_RGBA: 0
                                      [i] EGL_MIN_SWAP_INTERVAL: 1
                                      [i] EGL_MAX_SWAP_INTERVAL: 1

                                      I also tried tvservice-s with hdmi_group=1 and hdmi_mode=16 (1080p60) and it lists state 0xa [HDMI CUSTOM RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive

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

                                        @Darksavior tried out the image you linked, for my 1080p TV I've set the resolution to 720p through raspi-config for the testing. For me this makes the image appear only at the upper left corner of the screen (ie. no resolution change), ES displays a black screen and Pegasus' UI doesn't appear (log says Failed to commit atomic request (code=-22)). Terminal works fine though.

                                        As for logging, you can get even more details if you run it with QT_LOGGING_RULES="qt.qpa.eglfs.kms=true". This prints out the HDMI info and KMS details too for me.

                                        DarksaviorD 1 Reply Last reply Reply Quote 1
                                        • DarksaviorD
                                          Darksavior @fluffypillow
                                          last edited by Darksavior

                                          @fluffypillow Odd. No issues here. I add the resolution manually from config.txt I do tend to update the retropie-setup script to latest before testing anything. I also tend to update core packages from source too.

                                          Here's the log. This is with forcing raspbian to 1080p. I tested beforehand and boot,emulators, and ES boot to 1080p (or 720p, whatever res I choose it's used)
                                          https://pastebin.com/P8r0QsSK

                                          mituM 1 Reply Last reply Reply Quote 0
                                          • mituM
                                            mitu Global Moderator @Darksavior
                                            last edited by

                                            @Darksavior If you're up-to-date, you should have a new package used by runcommand installed - mesa-drm. This provides a cli utility that prints the video resolutions supported and the current one - /opt/retropie/supplementary/mesa-drm/modetest. Can you run it and post also the output on pastebin.com ?

                                            DarksaviorD 1 Reply 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.