while i’ve always referred to this as a “leapfrog frame stepping method” (lifting the term from the similar(ish) numerical integration technique) in discussions about emulation latency, i knew it wouldn’t be an appropriate name to expose to the end user. up until now i’ve always thought “latency compensation” would be the most appropriate term, especially since gens-rr has apparently had the feature since at least 2013 and that’s what they refer to it as, but i really like the idea of something with “lookahead” in the name. that’s definitely more descriptive.
below is some info i wrote up on the feature that might be appropriate for use in the frontend. IDK, maybe it can be used as a starting off point? i consider my writing and language skills to be sub-par, so hopefully whomever is in charge of it can clean up whatever they may choose to lift from it.
internal name:
lookahead_frames
exposed name:
Lookahead Frames (Unsafe and Experimental)
description:
Can be used to compensate for a games internal latency by stepping ahead N frames in order to output video and audio from an extrapolated point in the future, effectively removing N frames of input latency. This feature requires that a core support serialization. Core serialization must also be complete and deterministic, which is difficult to guarantee. If this condition is not met by the core unexpected behavior and corruption may occur. Setting this too high may result in visual and audio glitches from an incorrectly extrapolated state, thus experimentation must be done on a content by content basis using trial and error and/or single frame stepping. However, a setting of 1 should be appropriate for nearly all supported content.
DO NOT use this setting unless you understand what it does and know what you’re doing. DO NOT report bugs that occur while this feature is enabled, unless the bug is specifically about the behavior of said feature.