Me pregunto cómo el NES muestra su músculo gráfico. Investigué cosas en línea y las leí, pero me pregunto una última cosa: tablas de nombres.NES Programming - Nametables?
Básicamente, por lo que he leído, cada bloque de 8x8 en una tabla de nombre de NES apunta a una ubicación en la tabla de patrones, que contiene memoria gráfica. Además, la tabla de nombres también tiene una tabla de atributos que establece una determinada paleta de colores para cada bloque de 16x16. Están ligados juntos de esta manera:
(suponiendo 16 bloques de 8x8) NameTable, con ABCD = punteros de Datos de Sprite:
ABBB
CDCC
DDDD
DDDD
tabla de atributos, con 1 2 3 = punteros a los datos de paleta de colores , con referencia a < valor a la izquierda,^arriba, y 'a la izquierda y arriba:
1<2<
^'^'
3<3<
^'^'
así, en el ejemplo anterior, los bloques se pueden colorear por lo que
1A 1B 2B 2B
1C 1D 2C 2C
3D 3D 3D 3D
3D 3D 3D 3D
Ahora, si tengo esto en una pantalla fija, ¡funciona muy bien! Porque la resolución de NES es de 256x240 píxeles. Ahora, ¿cómo se ajustan estas tablas para el desplazamiento?
Porque Nametable 0 puede desplazarse hacia Nametable 1, y si continúa desplazándose, Nametable 0 se ajustará de nuevo. Eso me sale Pero lo que no entiendo es cómo desplazar la tabla de atributos también. Según lo que he leído en línea, los bloques de 16x16 a los que asigna atributos causarán distorsiones de color en las fichas de borde de la pantalla (como se ve al desplazarse de izquierda a derecha y viceversa en SMB3).
La preocupación que tengo es que entiendo cómo desplazar las tablas de nombres, pero ¿cómo se desplaza la tabla de atributos? Para empezar, si tengo un bloque verde en el lado izquierdo de la pantalla, mover la pantalla a la derecha debería, en teoría, hacer que las fichas de la derecha también estén verdes hasta que se muevan más en el marco, al cual volverán a sus colores normales.
~~~~ EDIT: Quiero señalar que sé sobre las líneas de exploración, X e Y. Este pensamiento simplemente pasó por mi mente.
Digamos que estoy en la línea de escaneo Y de 10. Eso significa que estoy leyendo 10 valores en mis tablas de nombres, horizontalmente. Eso significaría que mi primera columna está fuera de la pantalla, ya que solo tiene un ancho de píxeles de 8. Sin embargo, el atributo de color permanece, ya que tiene un ancho de 16.
Suponiendo que el atributo de color para toda la columna es verde, ¿estaría en lo correcto al asumir que para el usuario, los primeros 6 píxeles a la izquierda de la pantalla se verán coloreados en verde, y los 10 más a la derecha en la pantalla también estarán en verde? Entonces, ¿estaría correcto en mi suposición de que según la pantalla, la izquierda?
+1 por genialidad. No tengo idea, pero te mueres por preguntar esto. –