2018-10-30, 11:39
Earlier this year RetroArch implemented a feature they call “Run-Ahead” to reduce (or hide) input latency/lag and I'm wondering if this 'runahead latency reduction' concept could be adopted as a RetroPlayer feature for Kodi too?
RetroArch developers have found a method to achieve extremely low input latency/lag and have implemented that into RetroArch and some libretro cores to this date. They posted a summary here:
https://www.libretro.com/index.php/retro...ad-method/
"Most systems more complex than the Atari 2600 will display a reaction to input after one or two frames have already been shown. For example, Super Mario Bros on the NES always has one frame of input latency on real hardware. Super Mario World on SNES has two frames of latency. The Libretro forum post linked above provided patches to RetroArch that can effectively “remove” this baked-in latency by running multiple instances of a core simultaneously, and quickly emulating multiple frames at a time if input changes." "Be aware that this method is highly resource intensive. The higher the number of frames you are going to run ahead of emulation, the higher demands it places on your CPU."
Note the part explaining that by using this type of 'runahead' compensation method you can actually even achieve lower input latency than the real console/arcade hardware, so worth keeping in mind that you do not want to use it for a truly accurate experience as it no longer exact emulation of the real hardware, of which some built-in input lag what was always the case, but I would think that many might argue that less input latency/lag is better and it could still feel more true to how you remember the playing experiences on those consoles/arcades back in the 'good-old-days':
The concept was first conceived by hunterk and is now implemented by dwedit into RetroArch, here are four links which explain this new “Run-Ahead” feature in more detail:
https://docs.libretro.com/guides/runahead/
https://www.reddit.com/r/emulation/comme...d/dwj3chb/
https://forums.libretro.com/t/input-lag-...-lag/15075
Update: Here are a couple of videos explaining how this Run-Ahead works from and end-users point of view in RetroArch
RetroArch developers have found a method to achieve extremely low input latency/lag and have implemented that into RetroArch and some libretro cores to this date. They posted a summary here:
https://www.libretro.com/index.php/retro...ad-method/
"Most systems more complex than the Atari 2600 will display a reaction to input after one or two frames have already been shown. For example, Super Mario Bros on the NES always has one frame of input latency on real hardware. Super Mario World on SNES has two frames of latency. The Libretro forum post linked above provided patches to RetroArch that can effectively “remove” this baked-in latency by running multiple instances of a core simultaneously, and quickly emulating multiple frames at a time if input changes." "Be aware that this method is highly resource intensive. The higher the number of frames you are going to run ahead of emulation, the higher demands it places on your CPU."
Note the part explaining that by using this type of 'runahead' compensation method you can actually even achieve lower input latency than the real console/arcade hardware, so worth keeping in mind that you do not want to use it for a truly accurate experience as it no longer exact emulation of the real hardware, of which some built-in input lag what was always the case, but I would think that many might argue that less input latency/lag is better and it could still feel more true to how you remember the playing experiences on those consoles/arcades back in the 'good-old-days':
The concept was first conceived by hunterk and is now implemented by dwedit into RetroArch, here are four links which explain this new “Run-Ahead” feature in more detail:
https://docs.libretro.com/guides/runahead/
https://www.reddit.com/r/emulation/comme...d/dwj3chb/
https://forums.libretro.com/t/input-lag-...-lag/15075
Update: Here are a couple of videos explaining how this Run-Ahead works from and end-users point of view in RetroArch