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

                                        @Capeman I apologise for hijacking your thread like this.

                                        I have finished incorporating what you wanted. Looks like this

                                        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

                                        R CapemanC 2 Replies Last reply Reply Quote 3
                                        • R
                                          robertybob @Hex
                                          last edited by

                                          @Hex love it!

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

                                            @hex - nice work! The video is now playing perfectly. The Instant and None transitions are realy cool and they both work so well. I am excited to try to build a new theme based on this.

                                            You may want to look into the screensaver on your build. They are not currently working.

                                            Thanks so much for coming up with the new transitions. I now this takes a lot of time. Again, if you have the time and desire, it would be really cool if you submitted a PR to the man branch to incorporate the "instant" and "none" transitions. I know they would be really well recieved by the community.

                                            Great work and have a good weekend. Keep me posted on if you every need any help testing your builds, i have you in my es-tests script, so it is easy for me to do.

                                            pjftP HexH 2 Replies 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.