RetroPie forum home
    • 最新
    • 標籤
    • 熱門
    • Home
    • Docs
    • 註冊
    • 登入

    Announcing Pegasus Frontend

    已排程 已置頂 已鎖定 已移動 Ideas and Development
    frontendpegasusc++developmentqml
    1.7k 貼文 145 Posters 6.3m 瀏覽
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • fluffypillowF
      fluffypillow @dudleydes
      最後由 編輯

      @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 條回覆 最後回覆 回覆 引用 0
      • D
        dudleydes @fluffypillow
        最後由 編輯

        @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 條回覆 最後回覆 回覆 引用 1
        • D
          dudleydes @fluffypillow
          最後由 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 條回覆 最後回覆 回覆 引用 0
          • fluffypillowF
            fluffypillow
            最後由 編輯

            @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 條回覆 最後回覆 回覆 引用 0
            • fluffypillowF
              fluffypillow
              最後由 編輯

              Or maybe a "Rescan" option.

              1 條回覆 最後回覆 回覆 引用 0
              • fluffypillowF
                fluffypillow
                最後由 編輯

                @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 條回覆 最後回覆 回覆 引用 0
                • lilbudL
                  lilbud @fluffypillow
                  最後由 編輯

                  @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 條回覆 最後回覆 回覆 引用 0
                  • fluffypillowF
                    fluffypillow
                    最後由 編輯

                    @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 條回覆 最後回覆 回覆 引用 0
                    • HurricaneFanH
                      HurricaneFan @fluffypillow
                      最後由 編輯

                      @fluffypillow One thing with ES though is it doesn't need a suffix to show an image. My gamelist has box art and videos in ES and they are the exact name as my rom. Just with a .png or .mp4 extension.

                      1 條回覆 最後回覆 回覆 引用 0
                      • lilbudL
                        lilbud @fluffypillow
                        最後由 編輯

                        @fluffypillow said in Announcing Pegasus Frontend:

                        The "grid icons" (wide images used by eg. Steam/Ice) are from consolegrid.com

                        consolegrid.com is somewhat dead, try using retrogaming.cloud

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

                        Backlog: http://backloggery.com/lilbud

                        1 條回覆 最後回覆 回覆 引用 0
                        • fluffypillowF
                          fluffypillow
                          最後由 fluffypillow 編輯

                          @HurricaneFan yup, that's also supported; suffix-less media/<romname>.png/jpg maps to the box front image, and video files to -- oh, looks like I've actually forgot that, thanks. ES loads whatever it sees in the image/video tag; Pegasus too can read the same XML files, which is why if an asset works in ES, it should work in Pegasus as well.

                          @lilbud indeed it is, but its interface was easier to work with and I was lazy.

                          1 條回覆 最後回覆 回覆 引用 1
                          • D
                            dudleydes @fluffypillow
                            最後由 編輯

                            @fluffypillow Thanks for the info. I have updated the mapper file so that I can switch between themes and navigate them with my controller.

                            I have also updated the flixnet theme and the RetroPie menu icons now appear. I used ImageMagick to resize the icons to a 16:9 aspect ratio. @HurricaneFan I can confirm that gamelists and boxart from ES2 work fine without any further work.

                            On exiting Pegasus, there is a segmentation fault and the error evdevkeyboard: Failed to query led states in the lastrun.log. I don't know if this is an issue.

                            I would like to play around with themes as I would prefer to have box art in the flixnet theme rather than grid icons. Do you have any links that may be useful to get to grips with QML?

                            Finally what does Live Theme Reload refer to? And how do I get the clock in the corner?

                            fluffypillowF 1 條回覆 最後回覆 回覆 引用 1
                            • fluffypillowF
                              fluffypillow @dudleydes
                              最後由 編輯

                              @dudleydes "On exiting Pegasus, there is a segmentation fault": yeah it's quite annoying, but luckily not critical. Some underlying component seems to crash at exit sometimes; I'd suspect one of the GStreamer plugins. I'll see if I can find out what fails exactly.

                              Personally I've found most QML guides somewhat lacking/incomplete (at least if you wish to build a full program from the ground up), but the language isn't hard and you can get the hang of it after a while. There's a short tutorial here and a longer one here (mainly chapters 4-6), and the QML documentation is useful as well when you have to look up a component. In practice you won't need to know that much to create a simple theme, but you can also make it very fancy if you wish.

                              Live Theme Reload

                              Well I've planned to add a function to reload the current theme on a key press (eg. F5), but I haven't implemented it yet.

                              And how do I get the clock in the corner?

                              Heh yeah that's still missing, I'll start experimenting with it the weekend.

                              D 1 條回覆 最後回覆 回覆 引用 0
                              • D
                                dudleydes @fluffypillow
                                最後由 編輯

                                @fluffypillow Thanks for the links. Can I use Qt Creator on my Linux Mint desktop to create a theme?

                                No rush on the Theme Reload or the clock. I think learning QML will keep me occupied.

                                fluffypillowF 1 條回覆 最後回覆 回覆 引用 0
                                • fluffypillowF
                                  fluffypillow @dudleydes
                                  最後由 編輯

                                  @dudleydes sure, I'm using Qt Creator too, it works really well for Qt/QML projects.

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • fluffypillowF
                                    fluffypillow
                                    最後由 編輯

                                    Weekly recap:

                                    • added support for calling scripts before and after launching a game
                                    • added support for suffix-less video file assets
                                    • the Flixnet theme can now use box art images

                                    Other than that, I was tidying up the source code; this should make it easier to read, extend and test it in the future.

                                    D 1 條回覆 最後回覆 回覆 引用 2
                                    • D
                                      dudleydes @fluffypillow
                                      最後由 編輯

                                      @fluffypillow After spending the past week looking at using the Linux Joystick Mapper program (loadmap) with the Pegasus Frontend, I don't believe it will work seamlessly as I would've hoped. After running a rom and exiting back to Pegasus, if I then try to exit Pegasus, then Pegasus reloads and I cannot use my PS3 controller. I can usually exit Pegasus with a keyboard and in the console, there will be the following messages relating to the earlier attempt to exit Pegasus:

                                      evdevmouse: Could not read from input device (No such device)
                                      Gamepad: Could not read from input device (No such device)
                                      evdevkeyboard: Could not read from input device (No such device)
                                      evdevkeyboard: Failed to query led states
                                      

                                      This is an issue for users who share their PS3 controller between their Pi and their console or other device(s). With the Linux Joystick Mapper program, it's not possible to unplug the controller from the Pi and then replug it and expect it to work. The loadmap process must be killed and restarted for the controller to work in Pegasus. What I have been doing is to have a script to kill loadmap in the quit scripts folder so that I can exit Pegasus and then am free to unplug my controller.

                                      I'm thinking using xboxdrv is a better solution and then maybe create a udev rule to force Pegasus to use js1 while xboxdrv is running. Having looked through some documentation, I really have no idea how to get started.

                                      1 條回覆 最後回覆 回覆 引用 0
                                      • fluffypillowF
                                        fluffypillow
                                        最後由 編輯

                                        @dudleydes I think I can get a PS3 controller for testing this weekend. I have a few ideas to improve the gamepad handling, I'll see if I can solve this problem. Ideally Pegasus should work without any udev hacks.

                                        After running a rom and exiting back to Pegasus, if I then try to exit Pegasus, then Pegasus reloads

                                        You mean, you press Quit, and instead of quitting, Pegasus restarts? How did that happen? :) Or you mean after Pegasus reloads, you cannot quit, because you can't use the PS3 controller?

                                        DarksaviorD D 2 條回覆 最後回覆 回覆 引用 0
                                        • DarksaviorD
                                          Darksavior @fluffypillow
                                          最後由 編輯

                                          @fluffypillow hopefully analog can work as well.

                                          AkiAfrooA 1 條回覆 最後回覆 回覆 引用 0
                                          • AkiAfrooA
                                            AkiAfroo @Darksavior
                                            最後由 編輯

                                            i still dont know how to run pegasus on windows. (when launch show me black screen) what i could read is because need a setup file or i have to indicate where to look. (thats the problem i have.)

                                            i have my emulationstation full configure any tips where/how start. ?

                                            thanks in advance.

                                            1 條回覆 最後回覆 回覆 引用 0
                                            • 第一個貼文
                                              最後的貼文

                                            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.