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

    Request: Add an Instant Transition [SOLVED]

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstationtransitions
    66 Posts 10 Posters 22.8k 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.
    • cafarellidigitalC
      cafarellidigital @TMNTturtlguy
      last edited by cafarellidigital

      @TMNTturtlguy ahh, yea thought so.

      What might also be interesting is if there can be an option where a theme or user can define whether the system view background changes between systems. If the goal is to use the same background for every system, why not just define a single background and then reuse that for everything? That would certainly cut down on loading images. Also for those themes that use custom help legends on the bottom of the screen, it always a little sad to see it slide or fade out of view just to come back on the next selection. I'd love to be able to define certain elements that didn't change between systems (background, help legends, perhaps a special logo, etc).

      Console Stripe Video Splashscreen | Mushberry Splatter Splashscreen

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

        @cafarellidigital This would definitely accomplish the goal i was hoping to achieve.

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

        1 Reply Last reply Reply Quote 0
        • cafarellidigitalC
          cafarellidigital
          last edited by cafarellidigital

          What if you could do something like this...

          <view name="system">
          	<image name="background" extra="true" static="true">
          	</image>
          </view>
          

          With "static" meaning that it does not move or change from system to system (no new image loading). Whichever system encounters the static first, that's the one it uses. You could use it on any element in any view (I'd use it for the help legend).

          I'm sure this isn't as easy as it sounds to implement, just thought I'd give the concept a try. Thoughts?

          Console Stripe Video Splashscreen | Mushberry Splatter Splashscreen

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

            @cafarellidigital said in Request: Add an Instant Transition:

            Whichever system encounters the static first, that's the one it uses.

            If you were going to have a static image, you would not have more than one background specified. In the main .xml for the theme you would have the system background called out one time to a single location in the .art folder, or wherever theme creator places it. You would not call this out again anywhere in the theme, so you wouldn't need a static tag. This is true for any element you would want to stay in the same location for every system. Simply call it out once in the main .xml and it won't move. This is how it works now, but ES reloads the same image The only thing that needs to be done is to have Emulationstation not reload the image when system is switched so that it does not fade or slide. I agree with you, not sure how to do it, or how easy that might be?

            cafarellidigitalC 1 Reply Last reply Reply Quote 0
            • cafarellidigitalC
              cafarellidigital @TMNTturtlguy
              last edited by

              @TMNTturtlguy said in Request: Add an Instant Transition:

              @cafarellidigital said in Request: Add an Instant Transition:

              Whichever system encounters the static first, that's the one it uses.

              If you were going to have a static image, you would not have more than one background specified. In the main .xml for the theme you would have the system background called out one time to a single location in the .art folder, or wherever theme creator places it. You would not call this out again anywhere in the theme, so you wouldn't need a static tag. This is true for any element you would want to stay in the same location for every system. Simply call it out once in the main .xml and it won't move. This is how it works now, but ES reloads the same image The only thing that needs to be done is to have Emulationstation not reload the image when system is switched so that it does not fade or slide. I agree with you, not sure how to do it, or how easy that might be?

              I agree, you won't have more than one background specified because you would put it in the main/common xml, but technically that main/common xml is "included" in each system xml, so that line of code would appear on any and every system.

              The reason I would want a static tag is because it might be useful to have this happen with only one or a few elements in the view. Without a tag, you could not specify only certain elements to have this function.

              For instance, in the system view, say I had a background and a custom help legend that never changed, no matter what system you were on. However, I also have an outline of the system controller above the system logo, which obviously changes for every system.

              What I would want is for the background and help legend to not slide/fade when you change systems, but the controller outline would. You could only do this if you could define which elements were static and which were not. By default no elements would be static.

              Console Stripe Video Splashscreen | Mushberry Splatter Splashscreen

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

                @cafarellidigital so your not really asking for a new transition at all, you still want some elements to transition, you just want some elements static and not to be effected by the transition.

                cafarellidigitalC 1 Reply Last reply Reply Quote 0
                • cafarellidigitalC
                  cafarellidigital @TMNTturtlguy
                  last edited by cafarellidigital

                  @TMNTturtlguy correct. At first thought the idea of a new "instant" transition was great, then as I thought about it, I realized what I really wanted was a new function/tag that elements could have. So I guess I hijacked the thread a bit didn't I?

                  Console Stripe Video Splashscreen | Mushberry Splatter Splashscreen

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

                    @cafarellidigital Hijack away! It's the same goal in the end.

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

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

                      @Capeman Would you be interested in testing ?

                      I have pushed changes correspoding to No Transition/Animation to my repo:

                      https://github.com/hex007/EmulationStation

                      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

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

                        @Hex can you provide me with some more information on what is in your build? How up to date is it with the main ES build? Thanks

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

                          As of now it is 4 commits behind. Those commits were pushed today i guess.

                          The build is optimised for Pi zero and 1. Has problems with video as the program sleeps till user input.

                          Has music player incorporated for which you have to follow some instructions to get running. If you are testing on Linux and not Pi then you will have to change "audio-server/player.py" file to change music directory.

                          I have added None as a Transition today.

                          Thats all

                          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

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

                            @Hex Right now all of my gamelists have video, should i avoid testing at this point?

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

                              @TMNTturtlguy You can test it. Just that I dont know how it might behave. Only two options either the video continues playing or it stops after some time. It certainly wont crash or damage your lists/data

                              On the plus side if it works I will put it on the Readme that videos work

                              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

                              TMNTturtlguyT pjftP 2 Replies Last reply Reply Quote 0
                              • TMNTturtlguyT
                                TMNTturtlguy @Hex
                                last edited by

                                @Hex I just ran through your build. I have to say the theme transition NONE, is pretty slick. My only question is if it would be possible to allow the carousel to still transition. I like the static background, but and the carousel images pop up really fast, so it isn't an issue, but i think it would look really cool if the carousel logos could slide or fade over the static backdrop. As for videos, the videos played for 2 seconds and just paused. No other performance issues, they just paused.

                                I would seriously consider making a branch of the main ES Build and only incorporating the NONE transition into it. Like I said, if he carousel could still transition, it would be perfect. If you isolate this update and submit a PR, a lot of people would be really excited about it.

                                Thanks for the awesome work

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

                                  @Hex would you consider bringing your changes over to the main repository? The optimizations could come either as a compilation option (if compiled on a pi zero or 1), emulationstation option (for users to select) and/or command line option (and have RetroPie Setup add that option on a pi zero or 1 to the emulationstation startup script).

                                  The rest could come as normal options for everyone.

                                  I suspect that'd be the best to avoid fragmentation, bring your work to a wider audience and bring another good emulationstation developer to the project.

                                  Do consider that. Happy to help.

                                  Also, you could certainly make videos work by forcing the screen to refresh in the video view only, which I agree isn't needed for anywhere else on emulationstation as everything is static.

                                  Oh, and that won't be an issue with OMX player, as rendering is handled in a separate process.

                                  Still, good work!

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

                                    @TMNTturtlguy I will try that tomorrow. Also read ahead.

                                    @pjft If you have a Pi Zero or 1, I would appreciate if you can measure CPU consumption of Emulation station (mine and stock) when doing nothing on Carousel.

                                    ssh into Pi
                                    top

                                    I noticed a constant ~60% usage on the stock on pi zero

                                    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 don't have one, but I notice similar regular CPU consumption (unsure if at 60%, but certainly not idle) when emulationstation is idle. I haven't read your code but from what you described you're avoiding refreshing the screen - including reading and processing the textures - unless there's an input. That's a wise change, as very little of it is animated. You probably have a few seconds of buffer to accommodate animations, inferring from the fact that videos play for a few seconds.

                                      The reasons video views would need to be refreshed is because they are rendered in a normal texture, so if emulationstation doesn't refresh the screen it won't render more frames.

                                      But for the time being that's the only exception that comes to mind.

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

                                        @pjft said in Request: Add an Instant Transition:

                                        @Hex would you consider bringing your changes over to the main repository? The optimizations could come either as a compilation option (if compiled on a pi zero or 1), emulationstation option (for users to select) and/or command line option (and have RetroPie Setup add that option on a pi zero or 1 to the emulationstation startup script).

                                        The rest could come as normal options for everyone.

                                        I suspect that'd be the best to avoid fragmentation, bring your work to a wider audience and bring another good emulationstation developer to the project.

                                        Do consider that. Happy to help.

                                        Also, you could certainly make videos work by forcing the screen to refresh in the video view only, which I agree isn't needed for anywhere else on emulationstation as everything is static.

                                        Oh, and that won't be an issue with OMX player, as rendering is handled in a separate process.

                                        Still, good work!

                                        @pjft Can you update the clone and test it? I have set it to disable powersavings if Videos are present.

                                        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

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

                                          @Hex I haven't tested it yet, but I don't think the power saver flag is going to work properly. On startup, getGameListView is called for each system and the view is cached. As implemented, I believe the power saver flag will be set based on the last view created vs. the current view. Instead of setting and returning a boolean, you could test the name of mCurrentView to see if it is video.

                                          Get latest build of EmulationStation for Windows here

                                          HexH 2 Replies Last reply Reply Quote 0
                                          • J
                                            jdrassa @TMNTturtlguy
                                            last edited by jdrassa

                                            @TMNTturtlguy I agree changing the view transition style shouldn't effect the animation in the carousel itself.

                                            Get latest build of EmulationStation for Windows here

                                            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.