Please do not post a support request without first reading and following the advice in

Are these the optimal snes settings for compromise between input latency and framerate?

  • Just wanted to get some opinions on whether I've got my SNES emulation as good as it can be on my Raspberry 3B+ model on a 5V 3A power supply. My priority is input lag reduction, but obviously I'd like to maintain as close to 60fps as possible. Not using any kind of shader/filters either just piping straight to my HDMI TV at 1080p with Game Mode On.

    Using the stock settings the games were visual/audio perfect but the input lag on a wired USB controller was intolerable, constantly failing to register a jump and slipping off the edge of pipes, etc while running quickly in Mario All-Stars Lost Levels or Super Mario World. I have an actual SNES with the same games plugged into an old CRT which I use for point of comparison.

    So now I'm using the lr-snes9x2010 core with the following settings:

    video_driver = "dispmanx"
    video_threaded = "false"
    video_max_swapchain_images = 3

    Trying to reduce swapchain to 2 or using any kind of video_frame_delay further reduced input lag but unfortunately also introduced occasional stuttering and some bad audio crackling. However, on the NES core I am using swapchain set to 2 and video_frame_delay set to 4 without any issues since its a less intensive core.

    Is there anything else I can do to bring down input latency and/or improve performance?

    Additional specs

    • Raspberry PI 3B+ with 5V 3A power supply
    • RetroPie 4.4 built from SD image on Retropie website (retropie-4.4-rpi2_rpi3.img)*

    • Raspberry PI 3B+ with 5V 2.5A power supply
    • RetroPie 4.4 built from SD image on Retropie website
    • Sony PLAYSTATION(R)3 Controller
    • Polaroid TV

    I got the run-ahead setting working.
    I think that is the best we can get
    I still haven't got the other emulators to load.

    Kirby Samurai Top time 13; Default Settings + Run-ahead only.

  • REM

  • @Efriim said in Are these the optimal snes settings for compromise between input latency and framerate?:

    Kirby Samurai Top time 13; Default Settings + Run-ahead only.


    I had the same experience. Retroarch seems to crash sometimes if you change the swapchain through the GUI menu. I ended up having to F4 down to the bash and edit the cfg file manually to get the changes to stick.

    I haven't played with the run-ahead stuff yet, I'll check it out. Are you using any other settings like framedelay / swapchain / threaded / etc?

    Also OOC, how are you measuring your latency? When you say 13 are you talking about 13 frames between pressing a button and the game updating?

    Although I like the updated graphics for Lost Levels in SNES Mario All-Stars - I pretty much have to play it on the original NES just from a latency perspective - especially when I'm doing some amateur speed running.

  • @cacotigon
    Top time is something like that, Kirby Samurai is a minigame, randomly the screen flashes: !!! and you press a button as fast as you can to respond. So long as you aren't cheating, and you give yourself enough chances, and you're not impaired, if you can't beat your top score; then you have a good personal idea of the input lag.
    So you get (input lag)+(legitimate human factor)=(top time)
    My best time on a real nintendo was 8,11 average, 13-8,11 = "5,2" the input lag and time measurements, might be per frame, I dont know, 5,2x .06 = 300,120ms { + runahead 1 frame } = 360,180ms. You can divide that result by two because we are experiencing an input and an output lag: ~90ms does that sound about right?

    Run-Ahead didn't work as well in kirby-superstar, more framedrops, I forgot what I did to get it up to speed, maybe it was a The second run-ahead, but it kind of seemed contradictory, so I thought it was a fluke but I did get a higher score.

    Run-ahead on SMW I thought it felt a lot better when I got it up to speed, v-sync needed to be on or else scrolling looked terrible in one trial. I overclocked and I adjusted the audio latency, and used different cores but I wasn't compiling my test results so I don't know.

    I'm back at it again though, now that I've stabilized my overclock. I may just browse the web forums and raspberry pi stuff for a while.

    EDIT: Oh yeah! you can read my edit history on my previous posts, I tried to compile as much of it as I could but it is pretty much just as disorganized and I was embarrassed as I can just go on and on as I don't know what I'm doing.
    EDIT2: Actually I can't figure out how to read edit history.

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.