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.



  • @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?


  • Global Moderator

    @lesk i run defaults and use a wired controller.



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



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



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


  • Global Moderator

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


  • Global Moderator

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


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


  • Global Moderator

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



  • @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 ^^



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.