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

    New emulation method to eliminate input lag

    Scheduled Pinned Locked Moved General Discussion and Gaming
    libretroinput lag
    44 Posts 11 Posters 20.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.
    • DarksaviorD
      Darksavior @mediamogul
      last edited by

      @mediamogul I'm not enabling the second core. Is there a difference?

      mediamogulM 1 Reply Last reply Reply Quote 0
      • mediamogulM
        mediamogul Global Moderator @Darksavior
        last edited by mediamogul

        @darksavior said in New emulation method to eliminate input lag:

        Is there a difference?

        Definitely. Without it being active, I get a drop of 20-30 FPS past a 2 frame run-ahead in both lr-fceumm and lr-snes2010 (The only two cores I've tested). I'm actually able to get a steady 60 FPS with no stutter in lr-fceumm with 5 frames of run-ahead and rewind enabled, which of course is a decent hit to the processor in and of itself.

        RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

        DarksaviorD 1 Reply Last reply Reply Quote 0
        • DarksaviorD
          Darksavior @mediamogul
          last edited by Darksavior

          @mediamogul Ah ok, that helps a bit. Unfortunately, even with the crt-pi shader off, I still notice and feel the jerkyness when set to 3 or 4 (really noticeable at 4) on fceumm/genesis gx so I'll leave both instances enabled at 2. I have the overclock setting on for NES which it's really needed in megaman 3 and probably tons of others.

          It also doesn't help when I enable the fix slowdown hack in snes9x2010, which I'll need to turn off and actually look into what games actually need it. So far it's just super rtype.

          mediamogulM 1 Reply Last reply Reply Quote 0
          • mediamogulM
            mediamogul Global Moderator @Darksavior
            last edited by mediamogul

            @darksavior

            Interesting. Results with run-ahead on the Pi may end up varying greatly with users, depending on a number of factors. Fortunately for you specifically, if you do plan to continue using it, 1-2 frames generally seems to be all that is needed in most cases.

            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

            1 Reply Last reply Reply Quote 0
            • Keltron3030K
              Keltron3030
              last edited by

              Are these input lag settings available on 1.7.1?

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

                @keltron3030 no

                1 Reply Last reply Reply Quote 0
                • Keltron3030K
                  Keltron3030
                  last edited by

                  Shouldn't updating retroarch from source get me to 1.7.3? It still shows 1.7.1 on the GUI. Sorry for a likely dumb question.

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

                    @keltron3030 you have to update your retropie-setup script first.

                    Keltron3030K 2 Replies Last reply Reply Quote 0
                    • Keltron3030K
                      Keltron3030 @dankcushions
                      last edited by

                      @dankcushions

                      Oh, got it thanks. Now I'm on 1.7.3 and I see latency settings; thanks. Now my hot keys don't work, dammit! 🤪

                      1 Reply Last reply Reply Quote 0
                      • mediamogulM
                        mediamogul Global Moderator
                        last edited by mediamogul

                        In trying to read as much as I can to understand run-ahead better, I found where the developer of the feature (Dwedit) has stated that a setting of 1 frame of run-ahead "should almost always be safe" in games that have inherent latency. This likely only excludes Atari 2600 titles, as there is no inherent latency for those games, by nature of how they were programmed, so naturally run-ahead would have no benefit there.

                        RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                        1 Reply Last reply Reply Quote 0
                        • Keltron3030K
                          Keltron3030 @dankcushions
                          last edited by

                          @dankcushions

                          Oh, it's awesome. Totally fixed Contra and MegaMan 2 for me. Thanks guys for pointing this out.

                          mediamogulM 1 Reply Last reply Reply Quote 0
                          • mediamogulM
                            mediamogul Global Moderator @Keltron3030
                            last edited by

                            @keltron3030 said in New emulation method to eliminate input lag:

                            Totally fixed Contra and MegaMan 2 for me.

                            Last night I held my own and survived all three rounds against Mike Tyson for my first time ever. Of course he won by decision, but my next goal is to "git gud" and send him to the mat with a second round TKO.

                            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

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

                              @mediamogul Thank you for the detailed response. I was hoping there'd be a stable "default-ish" setup that would work for the majority of cases in each system, and then I'd adjust the ones for which it didn't work.

                              From reading your developments, I believe 2 might hopefully be the right value for nes, genesis, and potentially snes as you're describing - with the 2nd core, of course.

                              I'll dig into that in the coming week, many thanks all!

                              mediamogulM 1 Reply Last reply Reply Quote 0
                              • mediamogulM
                                mediamogul Global Moderator @pjft
                                last edited by mediamogul

                                @pjft said in New emulation method to eliminate input lag:

                                I was hoping there'd be a stable "default-ish" setup that would work for the majority of cases in each system

                                A setting of '1' should actually be stable across the board, barring 2600 games. Anything more in many games will alter your timing in the opposite direction as latency and even create artifacts, such as single-frame 'game over' screens and sprite interactions that shouldn't carry over from your actual input. Still, a setting of '2' is only adding one more frame and it's possible that artifacting would rarely be noticed.

                                I'll dig into that in the coming week

                                Let us know how it goes.

                                RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                1 Reply Last reply Reply Quote 0
                                • Keltron3030K
                                  Keltron3030
                                  last edited by

                                  Hey guys how to I enable the latency features for just some emulators. Do I need to setup custom emulator config files or is there an easier way to do this through the gui.

                                  mediamogulM 1 Reply Last reply Reply Quote 0
                                  • mediamogulM
                                    mediamogul Global Moderator @Keltron3030
                                    last edited by mediamogul

                                    @keltron3030

                                    You could enable it for individual systems by adding

                                    run_ahead_enabled = "true"
                                    run_ahead_frames = "1"
                                    run_ahead_secondary_instance = "true"
                                    

                                    to /opt/retropie/configs/chosen-system/retroarch.cfg above the #include line

                                    RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                    Keltron3030K 1 Reply Last reply Reply Quote 2
                                    • Keltron3030K
                                      Keltron3030 @mediamogul
                                      last edited by

                                      @mediamogul

                                      Excellent, thanks a lot.

                                      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.