RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Maybe a solution for NES input lag.

    Scheduled Pinned Locked Moved Help and Support
    nesinput lagretropie
    17 Posts 6 Posters 7.3k 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.
    • L
      lesk
      last edited by

      Pi Model: pi3
      Power Supply used: Pi power supply
      RetroPie Version Used: 4.4
      Built From: Pre made SD Image on RetroPie
      Controller used: 8bitdo
      Emulator: lr-nestopia, lr-fceumm and lr-quicknes

      Hi!
      Please don't bash me to hard if this already here somewhere. But I´ve tried figureing out why I have input lag with my controller with Nes games. All other system works fine(knock knock on wood).

      On the wikipage it says that I must make sure to use header in the rom filename, example Mario bros 3 (E) or (U).

      I have tried this on Super mario bros 3 and super mario bros 2. Both (E) And (U) version.
      Playing SMB3(E) on lr-fceumm or lr-nestopia gives me input lag. Playing it on lr-quicknes does not. However, quickness speeds up the sound and music. Which imo sounds pretty bad.

      Playing SMB3(U) on lr-fceumm and lr-nestopia gives me input lag as well.

      Buuuuuuut! If I then instead play SMB3(U) on lr-quicknes, the sound is perfect and there is NO input lag!

      Can anyone understand why this is? xD It's very confusing. Is there a workaround for this? Or do I need to get all my Nes games with the USA version? Or can I simply just rename the files to (U)? Does the ! in the filename have anything do to with it? I know its a sign of good release. But does it make it so the emulators can't read it?

      lostlessL 1 Reply Last reply Reply Quote 0
      • lostlessL
        lostless @lesk
        last edited by

        @lesk what do you mean by input lag? Sounds like your talking about the speed of the game vs input lag, which is the time it takes your button press to effect what’s going on on screen. (E) roms are European versions and are designed for 50hz (50 frames per second) and run 4% slower than that of a Japanese (J) or American (U) rom at 60Hz. Running a European version of most games in that era feels sluggish with the slowdown

        L 1 Reply Last reply Reply Quote 0
        • L
          lesk @lostless
          last edited by

          @lostless

          I mean the delay between pressing a button on my controller and seeing my character move etc.

          As I mentioned above. Both the European and the USA games both have input lags on lr-fceumm and lr-nestopia. But on the lr-quicknes emulator the games dosen't have input lag. But on the European version the music and sound is going fast but on the USA version the game sounds like it should, but have no input lag.

          I will try this with other games on the NES. And I will try comparing USA and European version, and also see if renaming them do anything.

          1 Reply Last reply Reply Quote 0
          • N
            Neo-Rio
            last edited by

            A lot of this has to do with the refresh on your TV.
            If it’s not set to “Game” mode and instead some other cinema preset, you can end up with some really noticable lag to the point where the games aren’t really all that playable.

            Make sure your problem isn’t that one.

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

              games with (E)/(Europe) in filename are loaded as PAL (50Hz), and those with (U)/(USA)/(J)/(JAP)/etc, are NTSC (60Hz).

              now, maybe quicknes ignores the filenames and loads everything up as 60Hz (speeds up the sound, etc).

              but yeah, the other games will adjust the games speed accordingly. a 50Hz game will have ~17% more input lag than a the same game at 60Hz. welcome to the joys of NTSC gaming :/

              it's generally better to just run the PAL NTSC version of a given game.

              Buuuuuuut! If I then instead play SMB3(U) on lr-quicknes, the sound is perfect and there is NO input lag!

              i can't explain this, though. quicknes is less resource intensive but any NES emulator on a pi3 should be full speed. i suspect you have some different settings affecting things.

              L 1 Reply Last reply Reply Quote 0
              • L
                lesk @dankcushions
                last edited by lesk

                @neo-rio said in Maybe a solution for NES input lag.:

                A lot of this has to do with the refresh on your TV.
                If it’s not set to “Game” mode and instead some other cinema preset, you can end up with some really noticable lag to the point where the games aren’t really all that playable.

                Make sure your problem isn’t that one.

                Never checked! I will see if I have the option to change this.

                @dankcushions said in Maybe a solution for NES input lag.:

                games with (E)/(Europe) in filename are loaded as PAL (50Hz), and those with (U)/(USA)/(J)/(JAP)/etc, are NTSC (60Hz).

                now, maybe quicknes ignores the filenames and loads everything up as 60Hz (speeds up the sound, etc).

                but yeah, the other games will adjust the games speed accordingly. a 50Hz game will have ~17% more input lag than a the same game at 60Hz. welcome to the joys of NTSC gaming :/

                it's generally better to just run the PAL version of a given game.

                Buuuuuuut! If I then instead play SMB3(U) on lr-quicknes, the sound is perfect and there is NO input lag!

                i can't explain this, though. quicknes is less resource intensive but any NES emulator on a pi3 should be full speed. i suspect you have some different settings affecting things.

                You say that the game runs better on NTSC but then say its better to run all games on the PAL version? Why? :)

                Yeah this is what confuses me... Both PAL ant NTSC games runs at the same speed on all emulators. But on the two other emulators (fceumm and nestopia) PAL has some input lags and feel sluggish. But PAL games sounds speeded up on quicknes but NTSC games does not. So as for me now, it feels better to run NTSC games on quicknes.

                About the settings. I have just downloaded the Retropie image from this website, installed it. Added a bluetooth controller. Added few games. Changed the skin to Mini nes theme. Fixed the overscan issue. That's it. It should't affect the input lag on the Nes emulators =/ All other systems seems to work fine. Both with PAL and NTSC games.

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

                  @lesk said in Maybe a solution for NES input lag.:

                  You say that the game runs better on NTSC but then say its better to run all games on the PAL version? Why? :)

                  sorry, brain fart. i've edited my post!

                  Yeah this is what confuses me... Both PAL ant NTSC games runs at the same speed on all emulators. But on the two other emulators (fceumm and nestopia) PAL has some input lags and feel sluggish.

                  that's correct emulation, more than likely. see https://gamefaqs.gamespot.com/boards/525245-super-mario-bros-3/72877567 - music pitch slowing OR speeding up, and game speed/animations slowing is normal for PAL games, compared to NTSC. there were a variety of ways developers approached the different display formats.

                  But PAL games sounds speeded up on quicknes but NTSC games does not. So as for me now, it feels better to run NTSC games on quicknes.

                  quicknes is probably being inaccurate here. i wouldn't use it under any circumstances on a pi3. this 'better feeling' might not be accurate.

                  About the settings. I have just downloaded the Retropie image from this website, installed it. Added a bluetooth controller. Added few games. Changed the skin to Mini nes theme. Fixed the overscan issue. That's it. It should't affect the input lag on the Nes emulators =/ All other systems seems to work fine. Both with PAL and NTSC games.

                  i dunno, all i can say is NES NTSC is working full speed for me on fceumm/nestopia.

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    lesk @dankcushions
                    last edited by lesk

                    @dankcushions said in Maybe a solution for NES input lag.:

                    Yeah this is what confuses me... Both PAL ant NTSC games runs at the same speed on all emulators. But on the two other emulators (fceumm and nestopia) PAL has some input lags and feel sluggish.

                    that's correct emulation, more than likely. see https://gamefaqs.gamespot.com/boards/525245-super-mario-bros-3/72877567 - music pitch slowing OR speeding up, and game speed/animations slowing is normal for PAL games, compared to NTSC. there were a variety of ways developers approached the different display formats.

                    Dang, I mean. Both PAL and NTSC feel sluggish and feels like it have input lags on fceumm and nestopia. But on quicknes NTSC has no input lag and no weird up speeded music.

                    i dunno, all i can say is NES NTSC is working full speed for me on fceumm/nestopia.

                    Maybe I should try doing a clean install again and just try NTSC. Loosing my mind a lil over this lol xD

                    Have you done any settings for fceumm or nestopia? All Ive done is change overscan issue. Can you post a screenshot/pic of what your settings looks like? The one you see if you press A when launching a game? (You prob know what its called ^^)

                    And also, do you use a wired or bluetooth controller?

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

                      @lesk i run defaults and use a wired controller.

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        lesk @dankcushions
                        last edited by

                        @dankcushions said in Maybe a solution for NES input lag.:

                        @lesk i run defaults and use a wired controller.

                        So after a couple of hours(yikes!) of testing. This is what I found.
                        Quick answer: lr-nestopia with NTSC version works best. At least that what I think when using 8bitdo snes controller.

                        I installed a fresh installation from Retropie website. Booted it up, added my Bluetooth 8bitdo controller. Set up the wifi and added both Super mario bros 3 on PAL and NTSC.

                        Tried using lr-fecumm, lr-nestopia and lr-quicknes.

                        As you said @dankcushions the PAL version felt sluggish on all emulators except quicknes, but that ran way to fast.
                        NTSC felt better, but a lil more sluggish on lr-fecumm. However it played pretty much normal on both nestopia and quicknes.
                        But after your comments I will stick with nestopia from now on.

                        So I will get rid of ny PAL library and instead get NTSC versions of the games.

                        Thank you so much for the help. I hope this also help someone else that find themselves in my position ^^

                        Btw, I did NOT try with a wired controller. So don't know if that will give you another result.

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

                          @lesk Did you try enabling the read-ahead feature in retroarch? Try 2.

                          L mediamogulM 2 Replies Last reply Reply Quote 0
                          • L
                            lesk @Darksavior
                            last edited by

                            @darksavior said in Maybe a solution for NES input lag.:

                            @lesk Did you try enabling the read-ahead feature in retroarch? Try 2.

                            I did not. What is the read-ahead feature? ^^ Where and how do I enabling that, and what does that do? xD

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

                              @darksavior said in Maybe a solution for NES input lag.:

                              Try 2.

                              Actually, a setting of 2 will discard one frame too many in most games and can potentially lead to adverse effects. When not testing the games individually for the proper number, setting of 1 is the only safe option. With the exception of Atari 2600 games, which have no inherent latency, all others will have at least one frame.

                              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
                              • mediamogulM
                                mediamogul Global Moderator @lesk
                                last edited by mediamogul

                                @lesk said in Maybe a solution for NES input lag.:

                                Where and how do I enabling that, and what does that do?

                                The Run-ahead feature gives you the option of removing inherent frames of latency that are built in to every game past the Atari 2600. Each game can have different amount, but as mentioned above, there will always be at least one frame. Removing more frames than what is required can lead to visual and game play anomalies, such as a 'Game Over' screen appearing for as little as one frame when you haven't died. Even when anomalies aren't noticed, the timing of the game's progression is being changed to be more forgiving, making it similar to cheating with a Game Genie code. If you're looking to enable it just for the NES, you can add the following lines to /opt/retropie/configs/nes/retroarch.cfg above the #include line.

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

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

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

                                  @mediamogul I've only noticed a jittery poor experience past 2 but yea 1 is safe. People thought I was crazy and they're setting it to 4 or 5.

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

                                    @darksavior

                                    Somewhat frustrating is that a few games even have a varying amount of latency throughout different parts, making any setting inadequate. There's so many opportunities for error that I'm actually a little on the fence as to whether or not this should have been included as a feature at all. If nothing else, I personally think it should be automatically deactivated for the hardcore RetroAchievements, due to the capacity it has to be used as a cheating tool. Still, there's no denying it's a very impressive idea and what it's doing behind the scenes is an amazing feat of execution.

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

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      lesk @mediamogul
                                      last edited by

                                      @mediamogul said in Maybe a solution for NES input lag.:

                                      @lesk said in Maybe a solution for NES input lag.:

                                      Where and how do I enabling that, and what does that do?

                                      The Run-ahead feature gives you the option of removing inherent frames of latency that are built in to every game past the Atari 2600. Each game can have different amount, but as mentioned above, there will always be at least one frame. Removing more frames than what is required can lead to visual and game play anomalies, such as a 'Game Over' screen appearing for as little as one frame when you haven't died. Even when anomalies aren't noticed, the timing of the game's progression is being changed to be more forgiving, making it similar to cheating with a Game Genie code. If you're looking to enable it just for the NES, you can add the following lines to /opt/retropie/configs/nes/retroarch.cfg above the #include line.

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

                                      Thank you for the information! I'll try this when I get back from work, and only use run_ahead_frames = "1" instead of 2 ^^

                                      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.