El retardo surgido entre la entrada de comandos y la visualización en pantalla es uno de los principales problemas en el mundo de la emulación a la hora de trasladar la experiencia de juego de viejas consolas a dispositivos modernos. Un pequeño retraso entre la pulsación de un botón y el dibujado de la acción realizada puede tener un impacto terrible en la experiencia de juego. El emulador multiplataforma RetroArch, que hace las veces de frontend para la API Libreto, acaba de lanzar una nueva versión capaz de reducir ese retardo hasta el punto de mejorar incluso la velocidad de respuesta de las consolas originales que emula.
Las consolas redibujan constantemente la imagen en pantalla con una tasa de refresco diferente dependiendo de la máquina en cuestión. En una Mega Drive, por ejemplo, hay dos frames de diferencia entre la pulsación del botón y el dibujado. Dos frames casi inapreciables es lo que tarda Sonic en comenzar a saltar desde que le enviamos la orden. Ese pequeño retardo es el que utiliza RetroArch para falsear el input lag. Entremos en harina.
Siguiendo con el ejemplo de Sonic, RetroArch nos mostrará la información en pantalla con dos frames de retraso aunque realmente se hayan procesado fotogramas posteriores. De esta forma, el emulador puede saltarse frames venideros cuando realicemos una pulsación, por lo que se compensará el retraso producido con el imput lag con el adelanto permanente que muestra. RetroArch siempre irá por delante dos frames, por lo que si el input lag de la consola original es menor, el resultado final mejorará la la latencia original. Justo esto es lo que puede apreciarse en el siguiente vídeo y Super Mario Bros. de NES, consola que solo refresca un frame tras la pulsación.
Esta característica está disponible a partir de RetroArch 1.7.2 en la mayoría de versiones, incluido Android, que es lo que nos interesa. Para activarla, debemos irnos a Settings > Latency y activar Run-Ahead to Reduce Latency.
No se trata ni mucho menos de la única novedad. La versión para Windows incluye muchas novedades como la posibilidad de sacar resoluciones nativas pensadas para conectar monitores CRT de baja frecuencia (hola, cabinet Arcade), amén de mejorar los drivers para Direct3D y Vulkan o facilidades a la hora de mapear los controles para cada platafoma.