Hay que entender que no se trata de una paleta. Son atributos - en realidad no es más que una especie de overlay de color que se aplica sobre el bitmap monocromo de la pantalla
El Spectrum sólo tiene un framebuffer, así que nada que hagas en los tiles afectará a la pantalla. Lo que está dibujado en la pantalla se queda ahí hasta que se dibuje otra cosa. Lo que se hace al pintar un tile es leer los bytes de su bitmap y ponerlos en el bitmap de la pantalla, y los bytes de su "overlay de color", o atributos y colocarlos en el archivo de atributos de la pantalla. Es una copia de memoria: la pantalla no es más que una zona de RAM.
Lo chulo del tema es que actualizar los atributos, que es lo que hace que la imagen monocroma tenga colores, es realmente rápido. Tan rápido que actualizar toooda la pantalla de atributos en cada frame casi no afecta al rendimiento.
Además, como están colocados ordenados de izquierda a derecha y de arriba a abajo, operar con ellos es realmente sencillo: son 768 bytes colocados a partir de 22528, uno por cada cuadro de caracter (32x24=768). Mi ensamblador es de primero, malísimo, y aún así consigo moverlos lo suficientemente rápido como para pegar un flashazo (en los rayos) o volcar un buffer con el halo.
Por eso he necesitado una versión modificada de splib2, para poder activarle una bandera que impida que ella modifique los atributos por si misma. Si activo esa bandera especial, splib2 no toca los atributos (cosa que sí hace normalmente) y los puedo manipular yo.