Vaya, gracias por hablar tan bien de mi y de mi juego, la verdad es que el programa de Juanje me empezó a ir mal el horario de los lunes por la noche y me acabe olvidando de el.
La razón por la que la pantalla parpadea cuando hace scroll es que el programa dibuja el fondo de arriba abajo y sólo después dibuja los sprites, y si algún sprite está en la parte de arriba de la pantalla pues no llega a tiempo, porque el raster ya ha pasado, y ese frame ya no se ve ese sprite.
En el C64 con este tipo de sprites sencillos, como con actualizar las coordenadas de los sprites ya se encarga de la sobreposición el VIC, al margen de como vaya la actualización del fondo, pues este parpadeo en concreto no lo tenéis.
Supongo que es factible arreglar que ordene los sprites por la coordenada vertical y vaya pintando mas o menos sincronizado con el fondo pero no vale la pena.
Cuando sobrepongo textos "press fire to play" etc., es todavía peor porque sobrepone el texto tras haber dibujado lo demás y siempre llega tarde, y el texto desaparece todos los frames que hay scroll. Por eso se ve mal el modo demo.
Luego esta el tema de que haga scrolls cada 4 caracteres y no cada 1 carácter, en parte quitaría tiempo para actualizar los movimientos de los sprites (el frame que hay scroll no hace cálculos) y además el flicker ese sería 4 veces mayor. La verdad es que ni quise experimentar.
Respecto del scroll fino, el problema en el VIC20 no es que no se pueda hacer, es que la fila de marcadores se iría moviendo, porque el VIC sólo se queda con los valores de los registros de desplazamiento fino una vez por frame, a diferencia del C64, que lo vais a poner a un valor para la fila de marcadores y a otro para la zona de juego, o eso creo. Los marcadores se moverían como un diablo.