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

    [Merged] Power Saver feature

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatiotestingpowersaver
    164 Posts 10 Posters 62.0k 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.
    • Z
      Zigurana @Hex
      last edited by

      @Hex said in Testers needed :: Power Saver features :: PR #172:

      @Zigurana said in Testers needed :: Power Saver features :: PR #172:

      I've made this comment earlier on the Github thread:

      There are several ways to cope with the scrolling text issue. For instance, you could think of linking it with the screensaver time-out. This to me seems the more natural solution, going into PS mode only once the screensaver kicks in.

      So you are suggesting that scrolling occur when screensaver starts? that wont help.

      No, what I meant is that if it's somehow difficult to combine PS mode with normal usage because of the scrolling text and other animations, it could always be apllied in situations where no such animations occur, i.e. when either of those two screensaver modes is activated.

      That way, we also circumvent the video display issue: If you select a dim/black screensaver, you also get PS, if you select video-screensaver, you're better wired to a wall...

      Not necessarily. Power savings reduces overhead processing and hence heating of cpu. Even walled devices are helped. BTW ES utilizes 60% on Pi zero while OMX hovers on 10% with video. So you see.

      I'm not denying that, and we should strive to create a leaner, less power-hungry, ES whenever possible. It will benefit everyone if we are not heating up the Rpi's unnecessarily.
      My remark was intended to adress the possible confusion for users when they have options for both video-screensavers and a Power Saving mode, when these two options are really mutually exclusive (leaving out the OMX argument for now).

      All in all I think we should strive to limit the amount of options, especially for features that are supposed to work under-the-hood like this one. If we want to signal it explicitly, we could consider renaming the dim/black screensaver types to "DIM (POWERSAVER)" and "BLACK (POWERSAVER)".

      On one hand I do not think combining options is a good way to proceed. On the other I am against increasing options in ES

      You say combining options, I say fixing an implementation bug, potayto, potahto 😜.

      I think a lot of this hinges on the question if we are able to come up with a PS mode that is functionally equivalent to the current ES. If that's the case, then there is no reason not to enable it by default. If not, users should have the option to switch off the feature, and you are back at the discussion of how to make it into an understandable menu item, given the caveats that that design would have. (Not with video's, sacrifice scrolling text, whatever).

      In any case, I still think that an 'invisible' PS enhancement is possible, but it might take some work in the rendering department. That will likely take some more time to mature. In de meantime we should consider 'just' linking your enhancements to the screensaver, as that would be a quick win for those of us running on batteries.

      If tetris has thought me anything, it's that errors pile up and that accomplishments dissappear.

      1 Reply Last reply Reply Quote 0
      • HexH
        Hex @pjft
        last edited by

        @pjft said in Testers needed :: Power Saver features :: PR #172:

        @Hex Sure.

        I'm not sure I'm being clear, though. What I'm saying is that if you have the "UseOMXPlayer" option set to true, you can pretty much keep PS on rather than keeping it off because of VLC. Especially, if you're coming from the angle that this is useful for lower-power devices, they certainly won't be using VLC anyways. Meaning, if that setting is on, you can treat video view as a Detailed view.

        And I'm not sure if that's what you're referring to, but I believe we do not support animated GIFs in ES.

        @ruckage This information is quite useful. Only libvlc needs PS on. I will implement this

        I have also made some progress regarding description not scrolling. How about it scrolling only once?

        Sent from 20,000 leagues under the sea.

        Powersaver Emulation station : https://github.com/hex007/EmulationStation
        ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

        SanoS 1 Reply Last reply Reply Quote 1
        • SanoS
          Sano @Hex
          last edited by

          @Hex said in Testers needed :: Power Saver features :: PR #172:

          I have also made some progress regarding description not scrolling. How about it scrolling only once?

          That was @dankcushions suggestion, and I second that :)

          1 Reply Last reply Reply Quote 0
          • HexH
            Hex
            last edited by Hex

            Game description is now scrolling once or more . I have tweaked the timings. So need to test it on all systems before finalizing.

            I shall find an elegant solution for this later. At present I have delayed the time taken from the last event to when PS kicks in and reduced time description text waits to scroll.

            EDIT : Please update the repo and build again

            Sent from 20,000 leagues under the sea.

            Powersaver Emulation station : https://github.com/hex007/EmulationStation
            ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

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

              Sorry for the delay in getting back here.

              I am supportive of a "scroll once, then reset (i.e. go back to the original state) and stop animating" approach. In fact, if there's a way to detect if the description text will even scroll or not (i.e. if it's bigger than the container), I'm sure that in several occasions it will fit it so there's no scrolling involved, which means PS can be on from the start on those cases.

              1 Reply Last reply Reply Quote 0
              • dankcushionsD
                dankcushions Global Moderator
                last edited by

                just to clarify, it's not just the descriptions that scroll, but also the game titles, depending on your theme. for example, street fighter games on mame, with their crazy subtitles and version info :) i'm not sure if any other ES elements scroll.

                just making sure the game titles don't get left out...

                1 Reply Last reply Reply Quote 1
                • pjftP
                  pjft
                  last edited by

                  Agreed, good call. Any text that's larger than the container will scroll, I think.

                  But if it scrolls once and then stops at the beginning, I don't have much of an issue for the moment.

                  1 Reply Last reply Reply Quote 1
                  • HexH
                    Hex
                    last edited by

                    Game names were working well before. Descriptions were not. Now they are working but it is a hack as i had some work and needed it tested before that. Can everyone who can test it, GIT pull and then build.

                    Sent from 20,000 leagues under the sea.

                    Powersaver Emulation station : https://github.com/hex007/EmulationStation
                    ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

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

                      @Hex I'll look into it in the coming days, if not sooner. Thanks!

                      1 Reply Last reply Reply Quote 0
                      • dankcushionsD
                        dankcushions Global Moderator
                        last edited by

                        tested (pi3). builds and looks fine to me! descriptions and game titles scroll fine. i don't use a video theme, so can't comment on that.

                        idle cpu went from 6-7% (dimmed) to 3% (dimmed/not)

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

                          @Hex
                          There is still issue with removing favorite by pressing Y button if you are alredy in favorite - even with your newest branch and pjfts newest commit.

                          All your features... Dimming, Blanking and CPU savings work
                          Scrolling I didn't test
                          Gamelist shows number of game entries without pressing button.

                          I load binary to my github repo: This is a merged branch @pjft favorite and your newest commits (4 times cherry pick). Is there a better way to reload all cherry picks with only one command? I used the command git cherry-pick abcdef12345678790 4 times

                          https://github.com/crcerror/emulationstation-binary-archive

                          1 Reply Last reply Reply Quote 0
                          • HexH
                            Hex
                            last edited by Hex

                            @cyperghost you should use git pull --rebase to update your repository. You dont need to cherry pick every time

                            I have not tested my changes with the branch you are testing. If that PR gets merged first then i can test it. I will not test it on unmerged code.

                            Sent from 20,000 leagues under the sea.

                            Powersaver Emulation station : https://github.com/hex007/EmulationStation
                            ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

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

                              @Hex I agree. That's the wise approach to take.

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

                                @pjft said in Testers needed :: Power Saver features :: PR #172:

                                @Hex I agree. That's the wise approach to take.

                                Is it rather about:

                                1. Don't trust a binary compiled by someone else
                                2. Don't do working on a fix that may never be needed because the branch isn't merged into main release?
                                3. Annother codex or good practice I don't know about it?

                                @Hex
                                I think fix is easy ... but needs some work in looking @pjfts routines.
                                Anyway, I hope that my posting can be treated as alpha test.

                                ah.. and thanks for helping in using gitcommands

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

                                  @cyperghost No, no, don't get this wrong :)

                                  It's just that:
                                  a) he won't have the source code to exactly debug it, by just using the binary -- we trust you that it crashes, but without the exact code, it's a bit of guesswork on his end as he doesn't know what code to look at exactly.
                                  b) given that my current branch (and his branch) are both currently being developed, it may be that any time invested at this stage will be rendered obsolete - either because the bug may disappear, or because it may resurface while we keep developing.

                                  As such, after one of them is merged, it's easier for everyone to have a stable code-base to use for actual runtime debugging. The best he could attempt to do right now would only be to try to replicate it on his current code base, seeing if deleting an entry from the list would trigger the same error. That way he would be able to narrow it down to the code to remove an entry from the list.

                                  But if that doesn't work, he's kind of flying blind :)

                                  Thanks for testing!

                                  HexH 1 Reply Last reply Reply Quote 1
                                  • HexH
                                    Hex
                                    last edited by

                                    @cyperghost #3 definitely. You see features should inherently be isolated. Convoluted features should either be worked in a single PR or sequentially . This maintains the stability of the system. Simultaneous testing two PRs is very unwise.

                                    Consider you are cooking two dishes. What do you think is better, making them one after another or at the same time? The prior is easier if you are making elaborate dishes that need great attention and timing. The later is easier if you are making scrambled eggs and toast because they are not convoluted; as in they dont require the same resources. Got it now?

                                    Sent from 20,000 leagues under the sea.

                                    Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                    ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

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

                                      @Hex @pjft
                                      Sounds like you both are really know what you are doing. Thank you for clearing out :)

                                      1 Reply Last reply Reply Quote 0
                                      • HexH
                                        Hex @pjft
                                        last edited by

                                        @pjft said in Testers needed :: Power Saver features :: PR #172:

                                        @cyperghost No, no, don't get this wrong :)

                                        It's just that:
                                        a) he won't have the source code to exactly debug it, by just using the binary -- we trust you that it crashes, but without the exact code, it's a bit of guesswork on his end as he doesn't know what code to look at exactly.

                                        @pjft I can easily reproduce the code that he is working with. I know which commands were used to get a working copy. Problem is if that doesnt exhibit the bug.

                                        b) given that my current branch (and his branch) are both currently being developed, it may be that any time invested at this stage will be rendered obsolete - either because the bug may disappear, or because it may resurface while we keep developing.

                                        @cyperghost This is the main reason and my post above elaborates on this idea with an example ;)

                                        As such, after one of them is merged, it's easier for everyone to have a stable code-base to use for actual runtime debugging. The best he could attempt to do right now would only be to try to replicate it on his current code base, seeing if deleting an entry from the list would trigger the same error. That way he would be able to narrow it down to the code to remove an entry from the list.

                                        But if that doesn't work, he's kind of flying blind :)

                                        Thanks for testing!

                                        Also I am completely unaware on what they are developing and what is the expected functionality. So for me everything is unexplored territory.

                                        If i am able to find a stable solution how would you recommend me going back to my code to implement it? I might not have the interface with his code to apply the fix.

                                        Sent from 20,000 leagues under the sea.

                                        Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                        ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                        1 Reply Last reply Reply Quote 1
                                        • HexH
                                          Hex
                                          last edited by

                                          BUG : PS should be disabled while Scrapper is running

                                          Sent from 20,000 leagues under the sea.

                                          Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                          ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

                                          1 Reply Last reply Reply Quote 0
                                          • HexH
                                            Hex
                                            last edited by Hex

                                            Guys I thought of a solution. Instead of having a switch how about having options(List)

                                            PowerSaver Mode :-

                                            • None ~~~~~~No power Saving/Full performance
                                            • Minimal ~~~Power savings kicks in after Description has scrolled once, same time-out for Systems view)
                                            • Full ~~~~~~~PS kicks in after Game name has scrolled, description may not scoll
                                            • MAX ~~~~~~Experimental; Works well with Instant transition and no carousel animation

                                            All of these will work fluidly with all Screensavers and with Video Previews.

                                            This is the only way I can think of that will allow proper PowerSavings settings and allow user to decide till which level is the compromise acceptable.

                                            Sent from 20,000 leagues under the sea.

                                            Powersaver Emulation station : https://github.com/hex007/EmulationStation
                                            ES dev script : https://github.com/hex007/es-dev/blob/master/es-tests.sh

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