Tema: La sincronización del refresco vertical y el retardo del input.
Recap escribió:Y luego queda que hablemos sobre la sincronización. Veo que aconsejas Triple Buffer pero en MAME FX 0.136, por ejemplo, los desajustes sonoros que se producen al desactivar la sincronización del audio son imperceptibles --con lo que yo he probado-- y te permiten olvidarte de Triple Buffering y V-Sync para siempre jamás.
Éste es un tema central sobre el que me gustaría extenderme más. No lo he hecho porque, como todo esto, está en permanente revisión. Verás, en mi opinión es impensable una emulación que merezca la pena visualmente sin alguna forma de sincronización vertical. La cuestión es que la implementación normal no suele ser la mejor posible y genera problemas adicionales (input lag), especialmente la opción "triplebuffer". Por resumirlo, he sido defensor de "triplebuffer" hasta hace poco, pensando que el problema de input lag era probablemente un mito derivado de otros problemas diferentes (LCDs, USBs, etc.). Además, las opciones tradicionales para sincronización vertical, "waitvsync" y "syncrefresh" estaban rotas desde Mame v0.107 (sólo funcionaban si se activaba "throttle", lo que arruinaba el resultado). El caso es que investigando sobre el código de Mame, en GroovyMame hemos reparado dichas opciones ("waitvsync" y "syncrefresh"), de manera que "triplebuffer", con sus problemas asociados, ya no es necesario para nada, y además, ahora al combinarlas con la opción "multithreading", *creo* que hemos conseguido eliminar o reducir mucho el legendario problema de input lag asociado a la sincronización vertical. De todos modos aclaro que es una cuestión algo subjetiva, y que es más fácil detectarlo con controles tipo spinner, así que invito a quien quiera probarlo y tenga el ojo entrenado.
http://postback.geedorah.com/foros/view … 607#p12607
Es curioso que nunca haya notado hipos o problemas similares con MAME FX 0.136 sin activar T. Buffer o Wait for V-Synch. Vamos, que el Synch to Monitor ['Graphic Card'] Refresh me funciona perfectamente --tan perfectamente como con MAME FX 0.106-- con una generosa variedad de juegos. Creo recordar que Super Contra --a toda pantalla-- me daba algún fallo, pero lo tengo que confirmar.
No sabía que Groovy MAME era obra tuya también (¡!). ¿¡Dónde lo guardas (y lo discutes)!? ¿Se puede usar para la modalidad de 'tablas estáticas'? Si has conseguido devolverle a MAME la forma de sincronizar pre 0.107 (o hacer que Wait for V-Synch no introduzca retardo), sospecho que se va a hacer tremendamente popular en cuanto se corra la voz.
Respecto a las cosas que introducen retardo en la respuesta al 'input' en la emulación o los juegos bajo WIN, hay un mundo entero por abordar con rigor aún ahí. Es un hecho que Triple Buffer introduce retardo. No es el mejor de los ensayos, pero este texto vale para ver que incluso un defensor de este artefacto asume la inevitable aparición de retardo asociado:
http://www.anandtech.com/show/2794
También: http://www.anandtech.com/show/2803/7
Vamos a dejar en lo sucesivo aparte el uso de pantallas LCD dado que el retardo que todas introducen en mayor o menor medida es solo uno de sus muchos problemas y cualquiera interesado en un subforo como éste YA sabe que el CRT es la única vía contemplable. Quizás es más interesante hablar del retardo debido a la conexión USB, cuya existencia se asume de forma casi universal cuando no es cierto. Hay dispositivos USB problemáticos (y SO incapaces de gestionarlos adecuadamente), pero no es culpa del protocolo de conexión, sino de la calidad de los mismos.
Seguiremos, que esto da para mucho y... tengo que irme.