Input Lag (run ahead) is inconsistent (SNES)

Hey there,

i’m having problems with input lag/ the runahead feature on retroarch. On my old PC there was never a problem like that.

I’m playing Kaizo Mario games which require tight inputs. So reducing input delay is one of the most important things when starting these kind of games.

However, it’s not consistent for me. sometimes i have to restart Retroarch 1-2 times for it to be back to the state that i want it to (I’m not changing any settings during that!)

my settings synchronize gpu and cpu: ON Frames for GPU-CPU-Sync: 3 Delay (ms): 0 Audio latency: 64 Polling: Early Run ahead: YES Run ahead frames: 3 2nd instance run ahead: on

I’m using 1.12.0 and both snes9x current and snes9x 2010 (no difference)

any advice?

try: hard GPU sync ON with 0 frames, auto frame delay ON with a high value like 12. Try putting your audio latency down to 16 or 32 ms. Super Mario World has only 2 internal frames of latency, so you don’t want to exceed runahead of 2. Leave it to single-instance and only turn second instance on if you have audio problems.

Try “normal” or “late”. "Don’t know if this will affect anything in this case, but “early” can potentially have the most input lag.

1 Like

The correct number of frames for run-ahead in super mario world on snes is 2, not 3.

Yes, you are using too many frames. You should not use more than 2.

i thought 3 is optimal like in the metal slug presantation video back than , allways running it so and never got some problems besides the snes mouse in snes9x freaking out ^^

No, there’s no fixed amount that’s optimal for all games. Some games have more frames of native lag, some have less. If you exceed the lag frames with run ahead, you are cutting actual, usable frames and the game will have issues.

Metal Slug has more lag frames than Mario World so maybe 3 is optimal for this particular game. But Mario World has 2 frames of lag so by removing 3 frames, you cause the aforementioned issue.

I wish there was a fail-safe function in place that would prevent users forcing more run ahead frames than they should. But i guess that’s impossible without some kind of database with information about thousands of games.

1 Like

and another rabbit hole opens up through retroarch :sweat_smile: i really did not know that i was just amazed by that feature i set it to 3 end of the story XD

so is there a list or such thing to look up ? and is there than even a setting that fine for “most” games or is it all over the place :laughing:

There is no list. The only thing you can do is count the frames of lag yourself for each game you want to play, using the frame advance function.

Of course, during those tests, Run Ahead must be off as the default, at all times.

You press and hold the jump or shoot button and press “P” to pause and then tap “K” to advance one frame (while still holding the jump or shoot button). You continue to tap “K” and count how many times you tap it until you see a reaction on screen.

If you see a reaction on the 3rd frame that means the game has 2 frames of lag, so you can use 2 frames for run ahead. If you see a reaction on 2nd frame it means you can remove 1 frame and so on. Some games may even react on the very next frame, which means run ahead is not necessary at all.

1 Like

okay , thanks a lot for explaining it that fast . that is not a big deal to count the frames than ^^

1 Like

Also be sure to try a few things because some games have, say, 2 frames on shots but 1 frame on turning.

all this did was make the input lag consistently worse.

some guys here didnt seem to read the root of this problem: My settings are PERFECT for reducing latency. HOWEVER: It’s not consistent, so i have to restart retroarch 1-2 times. Then it works fine while playing.

i was also thinking your settings are perfect , cuz on my side there are mostly the same , besides pollng i set to normal after running into some issues where inputs where just ignored sometimes with early but i think this just happend with one of my controller

Not perfect, as you mentioned in your 1st post you used 3 frames of run-ahead with SMW and that is an incorrect setting.

For consistency try to set frame delay to 0 and auto-frame delay ON.

Force your gpu power management to “max perf” for RA for consistent results with tight timings.