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.4m 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.
    • mituM
      mitu Global Moderator @Magma
      last edited by

      @Magma I think I know what's the issue - you're running Pegasus as root or via sudo, while Emulationstation runs as the user pi. As a consequence, the auto-configuration folder - where the gamepad configs are stored - are different.
      Don't run Pegasus as root / via sudo - it's not advisable and it will break other configurations also.

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

        @fluffypillow said in Announcing Pegasus Frontend:

        @carlhungus74 @AndersHP the playback volume is based on the system's main volume. I think it'd be possible to change that with eg. amixer when Pegasus starts up or launches a game.

        But wouldn't lowering the main volume lower the volume in the games also, so the issue will remain the same?

        My "Bubble Bobble" Themed Bartop Arcade
        My Gameboy

        fluffypillowF 1 Reply Last reply Reply Quote 0
        • M
          Magma @mitu
          last edited by

          @mitu Perfect that did the trick. Thanks so much.

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

            @AndersHP You could work around that by first reducing the volume before Pegasus starts, raising when a game is launched (by eg. writing a game-start script), reducing again when you return from a game (game-end), and finally raising again when Pegasus is closed.

            Other alternatives could be changing the code of the theme to play the videos less loud, or changing videos themselves (eg. some kind of volume normalization), though I haven't tried that yet.

            AndersHPA 1 Reply Last reply Reply Quote 0
            • M
              Magma
              last edited by

              Ok new question. I want to play around with what images Pegasus uses. Originally I was using the setting from EmulationStation. I went and converted my gamelist.xml's to Pegasus' metadata.txt using https://pegasus-frontend.org/tools/convert/. I then disabled EmulationStation in the list of data sources.

              After relaunching Pegasus 0 games were found. I believe this is because there is no Collection info at the top of the metadata.txt in each rom folder. Here is an example of the top of one metadata.txt https://pastebin.com/LUiMPWX0

              I'm not sure how to configure it correctly to work with Retroarch. Currently only have the following systems, SNES, NES, Genesis, and FinalBurnAlpha.

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

                @Magma Yes, a Collection is required for the games to be found, but fortunately it's also possible to get them from EmulationStation's es_systems.cfg too. Here's a guide I've wrote for a similar case, hope this helps.

                M 1 Reply Last reply Reply Quote 0
                • J
                  jerzeeloon @fluffypillow
                  last edited by

                  @fluffypillow said in Announcing Pegasus Frontend:

                  @jerzeeloon there have been reports of slow USB access, but it seems to be depending on the device. Do you see anything out of order in the log file (<storage>/pegasus-frontend/lastrun.log)?

                  Sorry it took so long to get back to you but nothing strange in the last run log. Seems dependant on the sheer amount ROMs/assets on initial load. I decreased the amount of ROMs by a few thousand it loaded quicker just doesn't seem like any advantage in speed between a standard USB hdd and my Samsung T5 SSD. That said I can live with the initial load time when taking into consideration that I have boxart, screenshots, fanart, logos and videos in addition to thousands of ROMs it's probably a lot to mull over. What's important is that once in the frontend when I exit an emulator to pick another game the front end pops right back up. So again I appreciate all your work and continued support especially for the Android system, definitely my favorite frontend even in this alpha stage. Also recently got an odroid n2. Would be awesome if I can get it to run on that as well.

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

                    @fluffypillow Thanks that did the trick.

                    I'm really enjoying Pegasus over ES but there's one last thing I'd like to get working.

                    Currently I'm using a Retroflag SuperPi case (http://retroflag.com/SUPERPi-CASE-U.html) and the Power and Reset buttons are functional in ES (and RecalBox) due to this script https://github.com/RetroFlag/retroflag-picase

                    Any ideas on how I can get similar functionality with Pegasus? Would it be as simple as changing the sudo killall emulationstation to pegasus-fe?

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

                      @jerzeeloon That's too bad :( Hope I can improve load times in the future!

                      Also recently got an odroid n2. Would be awesome if I can get it to run on that as well.

                      Yeah it would be nice to have Odroid releases eventually. It should be possible to build Pegasus for the N2 already, but might need to do some manual setup to make everything work.

                      @Magma Yes, simply replacing emulationstation with pegasus-fe should work fine. You could also make it work for both the same time:

                      os.system("sudo killall emulationstation pegasus-fe; sleep 5s && sudo reboot")
                      
                      1 Reply Last reply Reply Quote 0
                      • K
                        KryPtAlIvIaN
                        last edited by

                        Could you please explain how to launch retroarch and its core. I'm trying to configure the snes metadata.txt to launch the game, but I'm not having any luck. I would think the android example would be different since they're not the same OS.

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

                          @fluffypillow
                          Seems like a lot of work to change the code with scripts that way, and editing all videos will be a ton of work.

                          Seems like the theme-based volume adjustment would be the best solution. Can a non-coder do this (fairly easy)?

                          My "Bubble Bobble" Themed Bartop Arcade
                          My Gameboy

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

                            @KryPtAlIvIaN Sure,

                            • On RetroPie, using Runcommand the format is

                              /opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ <systemname> "{file.path}"
                              

                              eg. in the case of SNES, the launch command would be

                              /opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ snes "{file.path}"
                              
                            • On desktop Linux/Windows/macOS the format is

                              "/path/to/retroarch" -L "/path/to/core" "{file.path}"
                              

                              for example,

                              "C:\retroarch\retroarch.exe" -L "C:\retroarch\cores\snes9x_libretro.dll" "{file.path}"
                              

                              (cores are .so files on Linux/macOS)

                            • On Android, it's documented here (just mentioning it in case someone is looking for it).

                            @AndersHP It could be done I think. First download the main theme as a standalone theme, then at this location add the following line:

                            volume: 0.5
                            

                            (the value should be between 0.0 and 1.0). Then select this downloaded and edited theme in Pegasus' settings menu, and the volume should change.

                            1 Reply Last reply Reply Quote 0
                            • AndersHPA
                              AndersHP
                              last edited by

                              Cool, thanks.
                              I'm backing up my entire setup, so is it not possible to just edit the PanelRight.qml file directly from the pi?

                              My "Bubble Bobble" Themed Bartop Arcade
                              My Gameboy

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

                                @AndersHP Sure, but you still have to download it first. You can

                                cd ~/.config/pegasus-frontend/themes/
                                wget https://github.com/mmatyas/pegasus-theme-grid/archive/master.zip
                                unzip master.zip
                                nano pegasus-theme-grid-master/layer_gameinfo/PanelRight.qml
                                

                                and edit the file there.

                                AndersHPA 1 Reply Last reply Reply Quote 0
                                • K
                                  KryPtAlIvIaN
                                  last edited by

                                  Quick question. If someone wanted to use an xbox one controller with pegasus, would it have native support or require you to do something like exit and launch emulationstation to program the controller and hotkey?

                                  Thanks!

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

                                    @KryPtAlIvIaN While it should work out of the box in Pegasus, the emulators unfortunately won't pick up the gamepad configuration yet. At the moment it is still necessary to configure in EmulationStation too.

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      KryPtAlIvIaN @fluffypillow
                                      last edited by

                                      @fluffypillow Thanks!

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        KryPtAlIvIaN @KryPtAlIvIaN
                                        last edited by

                                        @KryPtAlIvIaN said in Announcing Pegasus Frontend:

                                        @fluffypillow Thanks!

                                        If someone used a wired switch controller, they could get it to work by configuring it with emulation station first, and then pegasus will read the same config file?

                                        Some of these questions I ask, I don't mind making up a Q&A for your site since you already took the time to answer these.

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

                                          @KryPtAlIvIaN No, Pegasus doesn't read ES's input config files, it would be necessary to configure it in both programs.

                                          Generally gamepad support is not really perfect at the moment, I'd like to improve it in the future (it's just a bit complicated with so many platforms). Eventually support for sharing the button config with the emulators would be also possible (and maybe with ES too).

                                          I'm fine with a Q&A, just note that Pegasus is still under development so things may change quickly :)

                                          1 Reply Last reply Reply Quote 0
                                          • B
                                            bleuge
                                            last edited by bleuge

                                            New user here, I am trying to build a Pegasus portable+Retroarch in Windows10.
                                            Sorry if this is too long :D

                                            I currently launch Pegasus with --portable, this is my folder structure:

                                            \config
                                            p.bat
                                            pegasus-fe.exe
                                            \ra... retroarch unpacked here, updated, cores downloaded, etc
                                            README.md
                                            \roms
                                            \roms... roms in subfolders
                                            \skraper... skraper.net i am using here
                                            \themes

                                            My game_dirs.txt (works nice this way)

                                            ./roms/zxspectrum
                                            ./roms/snes
                                            ...

                                            The problem I am having is with paths in the launcher I think.
                                            I use this for example for Snes

                                            launch: "..\ ..\ra\retroarch.exe" "-L i:/00noah2/ra/cores/snes9x_libretro.dll" "{file.path}"

                                            Retroarch is launched ok because when Pegasus launch it, it's ran from the rom folder where you have the roms are, (check cwd config option).

                                            But it seems RA can't see the dll once launched.
                                            I thought the default folder could be \ra instead of \roms\snes, but don't work

                                            launch: "..\ ..\ra\retroarch.exe" "-L .\cores\snes9x_libretro.dll" "{file.path}"

                                            And get the same error:

                                            [ERROR] RetroArch is built for dynamic libretro cores, but libretro_path is not set. Cannot continue.
                                            [ERROR] Fatal error received in: "init_libretro_sym()"

                                            Now lets see variations in the launch line, the point here are the "s
                                            This launchs RA ok
                                            launch: "..\ ..\ra\retroarch.exe" "-L .\cores\snes9x_libretro.dll" "{file.path}"
                                            log:

                                            2019-05-13T20:24:17 [i] Executing command: [I:/pegasus/ra/retroarch.exe,-L ..\..\ra\cores\snes9x_libretro.dll,I:\pegasus\roms\snes\3x3 Eyes - Juuma Houkan (Japan)-english.zip]
                                            2019-05-13T20:24:17 [i] Working directory: I:/00noah2/ra

                                            But then RA only exits, cant' see the dll, I've tried ....\ra\cores instead of .\cores (thinking that RA changes default folder once it's ran), but the same problem.

                                            This faults Pegasus (werfault is called in my machine and it exits)
                                            launch: "..\ ..\ra\retroarch.exe -L .\cores\snes9x_libretro.dll" "{file.path}"
                                            log:

                                            2019-05-13T20:35:14 [i] Working directory: I:/pegasus/ra/retroarch.exe -L /cores
                                            2019-05-13T20:35:14 [w] Could not launch I:/pegasus/ra/retroarch.exe -L /cores/snes9x_libretro.dll. Either the program is missing, or you don't have the permission to run it.

                                            It messes completely folders and executable to launch?

                                            Finally, this also exits pegasus
                                            launch: "..\ ..\ra\retroarch.exe -L .\cores\snes9x_libretro.dll {file.path}"
                                            log:

                                            2019-05-13T20:36:57 [i] Working directory: I:/pegasus/ra/retroarch.exe -L /cores/snes9x_libretro.dll I:/pegasus/roms/snes2019-05-13T20:36:57 [w] Could not launchI:/pegasus/ra/retroarch.exe -L /cores/snes9x_libretro.dll I:/pegasus/roms/snes/3x3 Eyes - Juuma Houkan (Japan)-english.zip`. Either the program is missing, or you don't have the permission to run it.

                                            Has anyone build a portable pegasus+ra installation? how did you make RA to work with non fixed paths?

                                            edit: I've also used this in settings file
                                            cwd: ..\ ..\ra
                                            launch: "retroarch ..."
                                            but paths got messed again

                                            @fluffypillow some other things you may consider,

                                            Pegasus it's eating 30% of my i5 4cores, just idling? Nothing I care, but ? Some debug stuff?

                                            portable mode in settings.txt?

                                            general.portable: true

                                            Would be nice.

                                            I got a lot of problems scraping, I finally used Skrape.net program with generic scraping. But for example videos didn't play with gameOS theme. After some digging in source code (providers code), I found how you expected some folder names, and then map them to your stuff. This solved my problem:

                                            SkraperAssetsProvider::SkraperAssetsProvider(QObject* parent)
                                            : Provider(QStringLiteral("Skraper"), PROVIDES_ASSETS, parent)
                                            , m_asset_dirs {
                                            // NOTE: The entries are ordered by priority
                                            { AssetType::ARCADE_MARQUEE, QStringLiteral("screenmarquee") },
                                            { AssetType::ARCADE_MARQUEE, QStringLiteral("screenmarqueesmall") },
                                            { AssetType::BACKGROUND, QStringLiteral("fanart") },
                                            ...etc

                                            I think it could be useful for other users to put this in the documentation, as I spent a lot of time googling pegasus scraping and found many people having problems with folders. Also with others providers.

                                            If a launch process lasts 1-2 seconds, obviously something went wrong.
                                            Instead of showing again the list of games, maybe it's useful to report some error, and instead of just logging it to file, show last lines of log in a dialog or something like that. Maybe this is just too user friendly? But I think it could help a lot in complex installations.

                                            fluffypillowF 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.