The new Run-Ahead option in RetroArch 1.7.2 uses frame rollback and multiple-frame emulation to effectively “remove” latency, including latency that is inherent in the original hardware!
Super Mario Bros on the NES, for instance, has a single frame of latency, even on original hardware. This means that Mario begins his jump on the second frame drawn after the A button is pushed.
With “Run-Ahead” in RetroArch enabled and set to “1”, this single frame of latency can be erased, allowing Mario to jump on the very next frame!
This is performance BETTER than real hardware can offer!
This video was taken at 240fps on an iPhone, and slowed down further for demonstration purposes.
Easy for anyone to do, as long as you have a smartphone and a computer! No fancy wiring or lights required to test your own setup.
Just put the controller in front of your phone while taking a slow-mo video, and hit a button! Count slow-mo frames (use math to compare to 60fps at realtime) on a computer.
CPU: Intel Core 2 Duo P7450
Graphics: NVIDIA GeForce 9400M
OS: Ubuntu 18.04
Latest RetroArch Nightly (3/31/2018)
Random DisplayPort to VGA adapter
Extron VSC 500 (not required, but makes my VGA 240p signal look nicer)
VGA to circuit feeding CRT jungle chip
Sony Trinitron TV
Custom 1920x240p EDID via DisplayPort
RetroArch launched in KVM mode through basic command-line (not GUI)
Linux RetroArch settings:
Maximum Swapchain Images: 2
Frame Delay: 8
Run-Ahead to Reduce Latency: On
Number of Frames to Run Ahead: 1
Runahead Use Second Instance: On
Super Famicom controller
Dual SNES controller to USB adapter – V2, configured to 1ms of lag. Website specs say 2ms minimum, but hey, 1ms was an option in the controls, and Linux reports 1ms poll time…