Bueno, estos últimos días he estado investigando formas de medir y eliminar el input lag, y al final he logrado obtener una experiencia casi "lag free" utilizando la configuración mas común entre los usuarios hoy en día, PC+pantalla TFT, y los resultados han sido mas que satisfactorios, (lo de lag free es porque un pantalla LCD siempre va a agregar un minimo de lag por mas rapida que sea su respuesta), es algo inherente a esta tecnología, para obtener lag 0 la única opción es un CRT, o un panel plasma;
Entonces, lo primero que hice fue aumentar el polling rate de mis mandos USB, con el "USB Mouse rate adjuster", este programa no solo permite aumentar el polling rate de ratones USB si no que también permite hacerlo con cualquier dispositivo que utilice este tipo de conexión en el PC.
Lo primero es aumentar el rango de sondeo de los joysticks (no recomiendo tocar el mouse, teclado, discos externos etc) , por lo general todos los joysticks aparecen como "Dispositivo de juego compatible con HID" ,
cuando abran la aplicación por primera vez, en la columna de rango de sondeo les saldrá todo como "default" y como se puede ver en la captura yo ya tengo mi mando configurado a 1000hz (cuidado, cambiar el rango tiene su riezgo ya que no son todos los dispositivos que soportan esta característica, con peligro de torrar
el puerto usb de la placa base, o el mismo mando USB
pero por lo general si se trata de una placa base cuya fecha de fabricación sea posterior al 2000 no debería de haber problema )
Una vez que hayan configurado el rango ya notaran el cambio en la respuesta, la configuración quedara grabada en el archivo "HIDUSBF.inf" pero el problema es que al reiniciar Windows las configuraciones se pierden, por lo que habra que agregar la nueva configuracion al registro de windows, para ello he empleado otro programa llamado "driver signature Enforcement Overrider" DSEO de aqui en adelante.
Al iniciar damos next hasta llegar a la siguiente ventana:
Ahí seleccionamos la opción "sign a system File" y a continuación copiamos la ruta del HIDUSBF.inf que hemos modificado:
Nos saldra un mensaje donde dice que la configuracion se ha agregado correctamente, reiniciamos el PC.
Una vez que tenemos solucionado el tema del USB toca configurar el emulador de modo de quitar todas las opciones que puedan interferir con la respuesta del mando, como filtros y reescalados (las scanlines al parecer no afectan en nada por lo que se pueden mantener, ademas que ayuda a evitar los pixeles como ladrillos, sobre todo si usan TFT como es mi caso);
Que tengo un PC con Groovymame+CRTemu_driver con modos de vídeo preparados para monitor de "31khz"
Dentro del emulador, estas son mis opciones graficas dentro de Groovymame:
como pueden ver todo en OFF, solo el modo de video en "auto", lo dejo asi para que el propio emulador seleccione Direct3D para juegos que lo requieran y Directdraw para todos los juegos 2D, "bitmap prescale" en 1 porque no hay opcion "0".
Y bueno una vez resuelta la parte de software toca comenzar con los "benchmarks"
, directamente comparando la velocidad de respuesta del emulador con el hardware eal, ni mi caso he escogido una base CPS2 de Marvel Super Heroes corriendo en un mueble arcade con monitor CRT 15khz, o sea "the real deal" para salir de dudas, aunque creo que sería valido usar alguna retro consola retro con interfaz de mandos "directa" tipo PS1, PS2, SNES, Saturn, Megadrive, Neogeo, Dreamcast, vamos...cualquier que no use mandos USB que puedan agregar lag en los comandos, lo que hice fue cablear un mismo boton que activa el comando "patada fuerte" tanto en el CPS2 como en el PC con groovymame,
La idea es tomar fotos en el momento que el personaje entra en la animación de patada y comparar ambas pantallas en una misma captura, de esta forma si ocurriese un retardo en la velocidad a la que responden los comandos el cuadro de animación en las capturas debería de ser distinto
Bastante cutre teniendo en cuenta la baratija de cámara digital que he empleado pero sirve para tener una idea aproximada;
Atentos al sprite de Spiderman, mismo cuadro de animación en unas 50 capturas que llegue a tomar:
Perdón por la calidad de las fotos pero es que tomar capturas de un CRT tiene su arte, ademas de la inclinación de la pantalla que no ayuda en este caso, y bueno, hice lo que pude...
Hay que tener en cuenta que el input lag puede variar dependiendo de la interfaz del mando USB, en mi caso he empleado un mando Hori de PS3, pad de xbox 360, un mando arcade de SNES por medio un adaptador USB Tototek y un MC Cthulhu a los cuales he aumentado sendos rangos de sondeo hasta los 1000hz.
The end