Cómo se producen flickering y tearing [ #Z80 #ASM ]
Channel: Profesor Retroman
Date: 2021-08-02

[Sesión 6.3] Serie: http://bit.ly/Z80GameDev-2020
Anterior (2019): http://bit.ly/Z80GameDev-2019

Analizamos detalladamente cómo el #raster dibuja la pantalla y cómo se relaciona con los cambios que hacemos en la memoria de vídeo. Vemos cómo utilizar #RetroVirtualMachine (#RVM) para visualizar el proceso. Entendemos la diferencia entre memoria de vídeo y pantalla y aprendemos a usar las herramientas de depuración. Visualizamos cómo se producen exactamente #flickering y #tearing, así como el lag visual. Comprendemos por qué esperar a la señal de #VSYNC no solucina el problema y cómo se puede solucionar (#doublebuffer).

Contenidos detallados:
 - Cómo utilizar las herramientas multi-pantalla de #RVM (RetroVirtualMachine) para depurar el render
 - Cómo usar #CRTC Immediate para ver los cambios en memoria de vídeo de forma instantánea en pantalla
 - Cómo usar #Raster & Previous para ver la situación actual del raster sobre una imagen fantasma del anterior fotograma
 - Cómo ejecutar paso a paso, pero utilizando saltos de líneas de raster para seguir y depurar el dibujado
 - Entendiendo cómo los cambios en memoria de vídeo no se reflejan de forma inmediata en pantalla
 - Percibiendo cuánto se tarda en borrar y redibujar un sprite respecto a lo que tarda el raster
 - Visualizando lo que sucede cuando el raster nos alcanza a mitad de cambios en memoria de vídeo
 - Visualizando sprites que quedan a medio dibujar y producen parpadeos (#flickering)
 - Visualizando sprites que están en momentos de tiempo distinto en un mismo fotograma (#tearing)
 - Entendiendo que simplemente esperar a la señal de #VSYNC (waitVSYNC) no soluciona los problemas y porqué
 - Entendiendo la utilidad del doble buffer para solucionar los problemas de flickering y tearing

Clase de Videojuegos 1 2020/21
Grado en Ingeniería Multimedia
Universidad de Alicante