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

    Please Test: Adding support for "All", "Favorites" and "Last Played" systems

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatiofavouritescustom system
    226 Posts 19 Posters 96.1k 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.
    • CapemanC
      Capeman
      last edited by Capeman

      I found a conflict with FAVORITES and the retropie powerblock driver (and likely all 3rd party pi power circuits).

      When a favorite is marked via the controller button shortcut or the metadata updater, the gamelist is updated in memory. Gamelists aren't saved to disk until ES is exited (not news to anybody).

      Powerblock drivers appear to simply stop the ES process when the powerblock is switched off, not allowing gamelist.xml files to write back (similar to crashing ES), losing any new Favorites marked during that session as a result.

      Given most 3rd party power control circuits and the 1 button gpio shutdown circuit use a similar hard stop function to shutdown the pi, a fix to ES to write the favorite tag to the gamelist.xml on disk at the time a favorite is marked might clean this up for people who use software controlled power switches.

      Vector Artist, Designer and Maker of Stuff: Laser Cut Atari / Pixel Theme Bartop

      J 1 Reply Last reply Reply Quote 0
      • J
        jdrassa @Capeman
        last edited by

        @capeman This is likely an issue with editing metadata as well. The gamelists are only saved on exit because it can be a slow process. A workaround for now, is that you can restart EmulationStation from its menu to ensure any metadata changes are saved, before shutting down.

        Get latest build of EmulationStation for Windows here

        CapemanC 1 Reply Last reply Reply Quote 1
        • CapemanC
          Capeman @jdrassa
          last edited by

          @jdrassa that's what I've been doing, quit ES out to a command line then flip the power switch. It works well enough but it's easy to forget to do.

          Vector Artist, Designer and Maker of Stuff: Laser Cut Atari / Pixel Theme Bartop

          pjftP 1 Reply Last reply Reply Quote 0
          • pjftP
            pjft @Capeman
            last edited by

            @capeman thanks. Yeah, either that or adjusting the shutdown script to make that happen - or even the driver. Probably that will be the best.

            Read up on this entire thread, with a proposed solution:

            https://retropie.org.uk/forum/post/95214

            As well as the problems of saving metadata immediately. It's not that we can't add an option for that, but there's specific reasons why that isn't happening, mostly performance related.

            CapemanC 1 Reply Last reply Reply Quote 0
            • CapemanC
              Capeman @pjft
              last edited by Capeman

              Makes sense to me, lots of users are doing whole romsets with full discriptions. That would likely take time to save every time. All of my gamelists are ultra simplified so they weigh in at a whopping 20 to 40k a piece, so i guess im spoiled in that regard.

              Adjusting the script for the powerblock might be best, i might need to read up on that post to see if i can do that.

              Vector Artist, Designer and Maker of Stuff: Laser Cut Atari / Pixel Theme Bartop

              cyperghostC 1 Reply Last reply Reply Quote 2
              • alphatoanantA
                alphatoanant
                last edited by

                Hi @pjft I have a possibly odd use-case to run by you for the new "All", "Favorites" and "Last Played" system themes

                Figured it might be easier to explain in video form:

                I have a fallback approach in place now using a more general layout which I think could work fine but wanted to see if there was a different approach I was missing.

                Knowing this use-case kind of came up because of the layouts I am shooting for (e.g. I am doing it to myself) please consider this mainly a question of "what if" :)

                Thank you for your time

                My RetroPie Themes:
                Art Book https://github.com/anthonycaccese/es-theme-art-book
                Art Book Next https://github.com/anthonycaccese/art-book-next-retropie
                TFT https://github.com/anthonycaccese/es-theme-tft

                pjftP 1 Reply Last reply Reply Quote 2
                • pjftP
                  pjft @alphatoanant
                  last edited by

                  @alphatoanant Thanks for the detailed explanation :)

                  I answered it in your theme's topic.

                  Keep up the great work!

                  1 Reply Last reply Reply Quote 0
                  • cyperghostC
                    cyperghost @Capeman
                    last edited by

                    @capeman You can use the extended shutdown script from here currently v1.5 is working best!

                    1 Reply Last reply Reply Quote 0
                    • S
                      saddys
                      last edited by

                      Hi! I have a problem.. All is ok, i can add/remove favorites.. But when i restart the system, the list is empty!

                      mediamogulM 1 Reply Last reply Reply Quote 0
                      • mediamogulM
                        mediamogul Global Moderator @saddys
                        last edited by

                        @saddys

                        Do you have "Save game list on exit" selected in Emulation Station?

                        RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                        1 Reply Last reply Reply Quote 0
                        • S
                          saddys
                          last edited by saddys

                          I don't have this options in the menù, i have only Save metadata.

                          Anyway, i try to shutdown system by the menu and now save the gamelist. If i perform a shutdown by pressing a button that is connected in gpio and with a scripts make the shutdown, the list is not saved, like @Capeman.

                          mediamogulM 1 Reply Last reply Reply Quote 0
                          • mediamogulM
                            mediamogul Global Moderator @saddys
                            last edited by mediamogul

                            @saddys

                            i have only Save metadata.

                            That's it. It's been a while since I last looked at it.

                            If i perform a shutdown by pressing a button that is connected in gpio and with a scripts make the shutdown, the list is not saved!

                            Sounds like the script is killing Emulation Station rather than shutting it down and giving it the opportunity to save the metadata. You may be able to alter the script, but I don't know if Emulation Station allows an outside command to initiate it's shutdown.

                            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                            S cyperghostC 2 Replies Last reply Reply Quote 0
                            • S
                              saddys @mediamogul
                              last edited by

                              @mediamogul thanks, i will try the solution of @cyperghost.. thanks a lot.

                              1 Reply Last reply Reply Quote 0
                              • cyperghostC
                                cyperghost @mediamogul
                                last edited by

                                @mediamogul ES can be initated to do a shutdown/restart by outside call :)
                                Read here
                                and here

                                cyperghostC 1 Reply Last reply Reply Quote 1
                                • cyperghostC
                                  cyperghost @cyperghost
                                  last edited by cyperghost

                                  @mediamogul @saddys
                                  The magic to force ES to shutdown/restart is

                                  1. create a file es-restart or es-shutdown in /tmp folder (we use touch command) take care of user. The file must belong to user:group pi:pi
                                  2. kill the ES binary process only! (we use pkill or pgrep "/opt/retropie/supplementary/.*/emulationstation([^.]|$)") call to kill or optain ES binaries PID ONLY!!! Never use killall command!

                                  voila ES will shutdown or restart

                                  EDIT:
                                  The modified part is the code block between the both
                                  #End Emulationstation if condition of running binary is true (v1.5) lines

                                  mediamogulM S 2 Replies Last reply Reply Quote 1
                                  • mediamogulM
                                    mediamogul Global Moderator @cyperghost
                                    last edited by

                                    @cyperghost

                                    Very nice! I have a script of my own that would benefit from this. Thanks.

                                    RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                    1 Reply Last reply Reply Quote 0
                                    • TMNTturtlguyT
                                      TMNTturtlguy
                                      last edited by

                                      @cyperghost this looks familiar! :)

                                      cyperghostC 1 Reply Last reply Reply Quote 1
                                      • cyperghostC
                                        cyperghost @TMNTturtlguy
                                        last edited by cyperghost

                                        @tmntturtlguy Not at all
                                        Since we have tons of mausberry users here they loose favourites and last played list of they push the button. So indeed I exchanged the es-restart file simply with es-shutdown and it works like a charm (That was version 1.2)

                                        But now we ( @meleu and me) want to 100% kill all emulators if you are within a game and press the shutdown button. So we kill the emulators, wait a few seconds so that ES can save XML-files and then shutdown ES with familiar method :)

                                        But we know it was YOU that asked for a "simple" method to restart ES via bash :D

                                        btw. @meleu is working on a new version (1.7) on this script that will asure that really all emulators will be catched up. In 1.5 there might be emulators (ScummVM for ex.) that can't be properly closed.

                                        1 Reply Last reply Reply Quote 1
                                        • S
                                          saddys @cyperghost
                                          last edited by

                                          @cyperghost Thanks but it seems too much complicated for me, i'm new in this world :) i will use systems quit and amen

                                          cyperghostC 1 Reply Last reply Reply Quote 0
                                          • cyperghostC
                                            cyperghost @saddys
                                            last edited by cyperghost

                                            @saddys Also a solution but @meleu is a talented code writer and I think he is willing to help you - if you ask.

                                            pjftP 1 Reply Last reply Reply Quote 2
                                            • 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.