Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

Zero input Lag in Retroarch?


RIP-Felix

Recommended Posts

I came across this while researching input latency for my gaming setup. I just bought a VIZIO p55-f1 for it's dedicated low latency HDMI5 port touting 10.5ms 1080p120Hz. While it's not as good as 240Hz computer monitors, it's the best you can get for a big screen at the moment. Price was good too. I'm still waiting on it to be delivered, so I'll have to test on my current TV for now.

Now, I wasn't expecting a miracle. I figured it might help but at the cost of something. I didn't believe it could compare to a CRT. No way. I just DL'ed Retroarch 1.7.5 and it's frack'n awesome. When I turn the Run-Ahead Feature on and follow the steps in the video above, it takes 2 frames to completly eliminate the lag, but otherwise I haven't noticed any performance hit in the few minutes I've tested it. It does cause audio glitches, but the second instance feature fixes that (this may be a problem for slower devices like the Pi or classic consoles). WOW...I'm blown away! It feels like I'm playing on my CRT. I Know because I have one right underneath my big screen comparing the same game side-by-side....

...Gasp!

Let me put this another way:

Spoiler

 

I have my Super Mario World on my OG SNES running on a CRT. I am using 8BitDo bluetooth controllers for both. I'm using the DIY for SNES controllers on my OG, but I'm using the SFC30PRO for the PC. Same lag for each. I notice very little lag for the OG SNES with the bluetooth, it's acceptably low IMO. I did break out the OG Super Famicom Controller just to be sure (My favorite). It does feel more responsive than the 8bitdo wireless controller. I mean it's not huge, but it's just to me (it could be the placebo effect, I'm not sure).

I just spent $700 on a TV prioritizing low input lag. With one update Libretro redifined the limits of what I thought was possable via emulation. I thought we were going to have to accept that emulation take time to process, framebuffer, and etc. Add that to modern TV's inherent Input lag and I didn't think CRT like performance was possible. 

This is a GREAT feature!!! Easily one of the best features Retroarch has released yet. Now NES runs ok on retropie, maybe even the classic consoles, but Genesis and SNES don't fair so well from what Ive read. Maybe there will be room for improvement.

I shot some 240Hz video to estimate input lag, but I don't have the numbers yet.

Link to comment
Share on other sites

That's great you're getting good response time.  Honestly, I've not noticed any input lag.  Maybe I just don't play enough games, or played enough of the old ones to remember how they should act.  But for me, things look and act the way I'd expect when I play.

Link to comment
Share on other sites

I have, especially with Punch Out in particular.

It's been great, I've been using that setup since it came through on NES, but haven't set it up for any other cores yet. It's really about as cool an advancement in emulation as I've seen since Nesticle hit the scene back in the day.

Link to comment
Share on other sites

Yeah, I didn't really notice lag as much before. I was playing more modern consoles and emulating old games for convenience. More recently I got nostalgic for the authentic experiance and I started pulling out my old consoles and hooking them up to a CRT. I immediatly realized how much more fun these games are when they respond as intended. Zelda felt noticeably more responsive, which makes Darknuts much easier to defeat. They are a PITA on emulation, especially blue ones. Now, it doesn't have to be.

I think it's like becoming nose blind. You don't notice it until you come back from vacation.

Link to comment
Share on other sites

I got some input lag numbers from my TV using a GoPro shooting @ 240 FPS.

Methodology:

Times in milliseconds represent the amount of time it took for Mario to jump after my finger hit the bottom of the button. The number of frames from ten jumps were averaged to obtain the results. Each frame is 1/240th of a second, or 4.166ms. Note, I do not have an LED wired to light up when the controller registers the button press, so the results are not as accurate as they could have been. The CRT results used an actual North American SNES and physical copy of the game. The VIZIO TV tests used Retroarch on my windows 10 HTPC, with and without run-ahead enabled. I also included the SNES Classic results for comparison. Results are organized by the lowest to longest input latency.

Results: Super Mario World Jump Test.

  • 50ms = Original SNES on CRT with wired controller
  • 70ms = Retroarch w/Run-Ahead latency reduction set to 2 frames, VIZIO 55P-F1 via HDMI5 low latency port w/Game mode on, 1080p@120Hz, Wired X-Box 360 controller.
  • 74ms = Retroarch w/Run-Ahead latency reduction set to 2 frames, VIZIO 55P-F1 via HDMI5 low latency port w/Game mode on, 1080p@120Hz, 8BitDo SN30Pro wireless Bluetooth controller.
  • 75ms = Original SNES on CRT with 8BitDo SN30Pro Wireless blutooth controller
  • 83 ms = SNES Classic, VIZIO 55P-F1 HDMI5 low latency port w/Game mode on, and wired controller
  • 102 ms = SNES Classic, VIZIO 55P-F1 HDMI5 low latency port w/Game mode on, and 8BitDo SN30Pro wireless Bluetooth controller.
  • 133ms =Retroarch w/o latency reduction, VIZIO 55P-F1 via HDMI5 low latency port w/Game mode on, 1080p@120Hz, and 8BitDo SN30Pro wireless Bluetooth controller.

Unfortunately the component/composite port on my VIZIO 55P-F1 does not support 240p. It only accepts 480i and above. I don't have an OSSC yet, so I can't compare the original SNES on my modern TVs. I have not tested a wired controller on the PC yet, but am curious to see if it can match or beat the 50ms I measured for wired CRT result.***EDIT*** Just added the results for a wired x-box 360 controller, it only shaved 5ms off the time. I suspect that there are just more electronics in the way. Trying various USB ports (I used a USB3 port on my PC) might make a difference, or various USB controllers...I don't know.

Discussion:

The HTPC on a modern TV equaled the results on a CRT, with a wireless controller! That's a mind blowing result! Also of note is the latency without run-ahed. 133ms is a very noticeable amount of lag. That is what I've been noticing and having trouble accepting all this time. The 8bitDO controller adds about 22ms. The difference between 50ms (wired controller) and 75ms (wireless controller) playing the original with the CRT is just barely discernible to me. It's not distracting and very playable, but speed runners would likely prefer the least lag possible (OG SNES, wired controller, and CRT = fastest and easiest combo). I notice a bit of lag when playing on the SNES classic with the 8Bitdo controller, so more than 85 ms is my limit. That's why 133ms is unacceptable. The extra 3 frames of lag makes the difference from enjoyably playable and "why am I so bad at this. I must be rusty." Surprisingly, the SNES Classic Edition is quite good (wired), even without run-ahead latency reduction, and it performs admirably with an 8bitdo controller. It's not quite as enjoyable with the extra frame of lag, but it's fine for casual nostalgia.

Lastly, I wanted to mention that the jump test has more lag than you would think. I noticed that Mario doesn't jump immediately. If you hold a shell and release the button to kick it, that action happens about 1 frame (16.6ms) faster than a jump command. That must be programmed into the game. So all of these input lag times are about a frame behind the real input latency.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...