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.2k 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

      Hey good looking developers! I also have another request for an addition to ES.

      We currently have 2 transitions, fade and slide.

      I would like to request that we add a third transition type for the carousel called INSTANT. That would make the image change instantly without a slide or a fade.

      Seems odd until you want to make a theme where every carousel image is the same, if the transition is INSTANT, then it will appear that the image is not changing at all when selecting systems in the carousel - the fade could still be used for the transition from carousel to gamelist though, since that transition might be to abrupt if it happens instantly.

      I think this could make the carousel look really cool if you want the background images to not change between systems.

      Thanks again, and sorry if I'm spamming the ideas section today. I just had some thoughts and felt like getting them on paper... or, um... digital or something.

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

      HexH 1 Reply Last reply Reply Quote 2
      • HexH
        Hex @Capeman
        last edited by

        @Capeman Do you mean No animatons? I was planning to do that

        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
        • cafarellidigitalC
          cafarellidigital
          last edited by cafarellidigital

          I'd like to see this option as well. Not sure if I'd use it, but I can see where it'd be useful. Plus it's always good to have more options with transitions, and this sounds like an easy one.

          Although I have a feeling the reason why it hasn't existed so far is because the transitions are hiding image loading, which might become really apparent when there's no transition. Hopefully I'm wrong!

          Also, obligatory
          Also, obligatory

          Console Stripe Video Splashscreen | Mushberry Splatter Splashscreen

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

            @cafarellidigital you are correct, the transitions help with image loading. Now that @pjft has dramatically improved how ES reads and remembers the backgrounds, there may be additional opportunities to do something as requested. I am imagining however that to make this work the theme background would have to be identical for every theme, just like carbon is. We probably would also be limited to only having the carousel change, meaning other images probably won't be able to be present on the system selection view, otherwise there would be some flashing and black image boxes while the new graphics load. But who knows, with the newest improvements it might work, i just worry that we just fixed an issue, and now we might try to push the limits of ES once again!

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