Después de tenerlo aparcado, he retomado el proyecto del mapa...
Con el código que tengo ahora, con tiles de 4x4, y con "color por cada caracter", pintando 20 filas (dejando 5 para marcador,etc), el repintado de memoria de caracteres + memoria de color requiere unos 16800 ciclos, según el debugger del C64Prg studio.
Este repintado es decodificando mapa/tile para toda la pantalla (no haciendo desplazamento dentro de la memoria de video o de color).
Teóricamente, un repintado completo de ambas memorias, completamente "desenrollado", y sin ningún otro cálculo, serían 1000 LDA / STA para caracteres, y otros tantos para color. A 4 ciclos por cada uno, serían 16000 ciclos en total para toda la pantalla, o 12800 para 20 lineas.
Pero, para bajar el número de ciclos todo lo posible, he añadido una restricción, que es: el color del caracter corresponde a los 3 bits bajos de su código de caracter.Asi, lo que se escribe en la memoria de caracteres y en la memoria de color, es exactamente lo mismo (se hace 1 LDA, y 2 STA).
Esto significa que hay 32 caracteres cuyo color es negro, otros 32 con color blanco, etc.
Y esto lleva a que al crear los tiles/mapas, hay que elegir con cuidado qué caracteres usar..
He visto que charpad tiene un sistema de "atributos de caracter", pero, si no me equivoco, se basa en un set de datos aparte, no en el propio valor de los caracteres (por ejemplo, usar el bit más significativo para diferenciar caracteres "atravesables" de los que no, etc).
Conocéis algún software de mapas donde se puedan hacer "grupos" de caracteres basado en una máscara de bits?