Por lo que yo entiendo, a cada plano le asignas una paleta de colores, de 16 o de 4.
Cada color de la paleta va indicado con un número. el pixel dibujado, en lugar de poner el color deseado, pones el índice de la paleta donde está el color que quieres.
Si creamos una paleta de 4 colores:
00-negro
11-azul
10-rojo
11-rosa
Tenemos un tile de 8x8 que son 16 Bytes(128 bits)
Pues van en lineas. Los 16 primeros bytes corresponden a la fila 0. Los siguientes 16 a la fila 1, y así hasta cubrir los 128.
Cada 2 bits es un pixel. Tu indicas con los bits que color tiene ese pixel.
00-00-11-11-11-11-00-00
Esa fila será una barra de 4 pixeles azules rodeada de 2 pixeles negros a cada lado.
Después tendremos la siguiente fila.
Evidentemente, tu no puedes trabajar directamente con bits, si no que trabajas con bytes 8No estoy seguro de esto, no he trabajado con ensamblador). Así que debes utilizar operaciones lógicas para trabajar con los bits que componen los bytes.
Los planos son eso. Imagina que el nivel está compuesto por 3 capas superpuestas, como si fuesen papel transparente uno encima de otro.
A cada capa le puedes asignar una paleta de colores diferente. De esta manera un tile saldrá con colores diferentes en una capa y en otra si estas tienen diferentes paletas de colores.
Usando un poco de maña puedes apañartelas para que un tile tenga más colores de las que acepta la capa. Como? Dibujandolo dos veces en dos capas distintas. Por ejemplo un tile de hierba verde con una flor amarilla. Dibuja dos tiles, uno con la hierba y otro con la flor. Dibuja primero el tile verde y luego la flor en otra capa. De esta manera has construido un tile que puede tener más colores.