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 23.9k 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.
    • 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
                  • HexH
                    Hex @jdrassa
                    last edited by

                    @jdrassa Can you test it. I dont have Videos so i cant test it. I will change the implementation if it doesn't 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

                    J TMNTturtlguyT 2 Replies Last reply Reply Quote 0
                    • J
                      jdrassa @Hex
                      last edited by

                      @Hex I will try to get it tested in the next couple of days will report back.

                      Get latest build of EmulationStation for Windows here

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

                        @Hex did you make changes to the carousel transition or just the video playback? Thanks

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

                          @TMNTturtlguy power savings is suspended if Game lists have video. I also want to see what jdrassa meant that all views are cached.

                          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 I just reinstalled your ES build and did not notice much a change in the video. It may play for about a second longer than it did before, but it still stalls out after 2-3 seconds. Thanks

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

                              @TMNTturtlguy Can you send me the video preview files/gamelists and a small how to so i can get video preview set up and testing

                              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 I can't send you any files, but I can tell you how to set it up.

                                • create a gamelist for a rom you have that looks like this. You can just copy this and use it in your current game list for whatever system you have. Replace "romnamehere" with the exact name of the rom you have, also make sure the extension matches, like .zip or .nes. Make sure the vidoe .mp4 name matches exactly with the name in the gamelist. Place your video in a folder named "downloaded_images"

                                  <game id="" source="">
                                        <path>./romnamehere.zip</path>
                                        <name>romnamehere</name>
                                        <desc />
                                        <image>./downloaded_images/name.png</image>
                                        <marquee>./downloaded_images/name.png</marquee>
                                        <video>./downloaded_images/name.mp4</video>
                                        <releasedate />
                                        <developer />
                                        <publisher />
                                        <genre />
                                   </game>
                                  
                                • place the gamelist.xml in your rom folder for that system.

                                • create a folder named "downloaded_images" in your rom folder for that system and place the .mp4 video file in that folder.

                                Use a theme with video preview. Carbon is a light weight theme that has video enabled. You can update it from the retropie menu just to be sure you have the most recent copy.

                                Restart ES and now when you go to the system with the rom and gamelist, the view will automatically open to video view. You should see the .mp4 playing when the game is highlighted. Please note you will want to have a video that is fairly small a resolution of 320x240 at 30fps is probably max size.

                                Hope this helps

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

                                  @TMNTturtlguy You running ES on Pi 0,1,2,3 ?

                                  I installed latest from binary (official) and the video stops after 2 secs on Pi 0 and 1. I tried the same on 3 and it runs nicely. I am currently compling it on 3. If it works then it is a playback performance issue.

                                  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 I am on a pi 3

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

                                      @TMNTturtlguy I tested it on Rpi 3 now and it is working. I had some git troubles and that might be the issue. Can you git pull and make again and let me know.

                                      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
                                      • HexH
                                        Hex @jdrassa
                                        last edited by Hex

                                        @jdrassa said in Request: Add an Instant Transition:

                                        @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.

                                        Now I understand what you mean. Currently my setup is such that if you have even a single video then the power saver is not implemented. I am not going to mess with video back-end as they are implementing OMX player support.

                                        I am trying to figure out where power saver needs to be disable for proper functionality.

                                        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
                                        • J
                                          jdrassa @Hex
                                          last edited by

                                          @Hex I would try to enable it here:
                                          https://github.com/hex007/EmulationStation/blob/master/es-app/src/views/ViewController.cpp#L118

                                          That is where the current view is set. The tricker part if figuring out if mCurrentView is a video view. You should be able to check using getName, but you will need to cast it first.

                                          You will also want to set mPowerSaver to false here, since SystemView does not have video.
                                          https://github.com/hex007/EmulationStation/blob/master/es-app/src/views/ViewController.cpp#L75

                                          Get latest build of EmulationStation for Windows here

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

                                            @jdrassa This was really helpful. I have implemented the changes here.

                                            https://github.com/hex007/EmulationStation/commit/fd613418a04630c64a0e3e58170202f7dafcef9c

                                            mCurrentView is instance of GuiComponent which doesnt have getName()
                                            getGameListView(system) returns IGameListView (Child of GuiComponent) which does.

                                            @TMNTturtlguy Thanks for all the help, now you can test what mode it is on in Menu where it shows ES version

                                            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
                                            • 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.