A ver si alguien me hecha un cable porque llevo toda la tarde dandole vueltas y no hay manera:
¿¿Esto es asi??
PRIORIDAD ALTA > PRIORIDAD BAJA
SI LA PRIORIDAD ES IGUAL PLANOA > PLANOB
SI PRIORIDAD Y PLANO SON IGUALES EL ULTIMO COMANDO PREVALECE
Siguiendo esas pautas, que a priori creo correctas, segun este codigo:
#include <genesis.h>
// Creamos nuestra tile de una cara sonriente
const u32 tile_carita[8]=
{
0x00144100, // Línea 1: pixels 1 a 8
0x02400420, // Línea 2
0x14000041, // Línea 3
0x40400404, // Línea 4
0x40000004, // Línea 5
0x14044041, // Línea 6
0x02400420, // Línea 7
0x00144100 // Línea 8: píxels 57 a 64
};
int main () {
// Cargamos la tile en la posicion 1 de la VRAM
VDP_loadTileData( (const u32 *)tile_carita, 1, 1, 0);
//Ejemplo Sobre Prioridades ¿Cual se verá?
// PRIORIDAD ALTA > PRIORIDAD BAJA | SI LA PRIORIDAD ES IGUAL PLANOA > PLANOB |SI PRIORIDAD Y PLANO SON IGUALES SE DIBUJA EL ULTIMO COMANDO PREVALECE
VDP_setTileMap(APLAN, TILE_ATTR_FULL(PAL1, 1, 0, 0, 1), 7, 7); // ROJO PRIORIDAD ALTA PLANO_A <<--
VDP_setTileMap(BPLAN, TILE_ATTR_FULL(PAL3, 0, 0, 0, 1), 7, 7); // AZUL PRIORIDAD BAJA PLANO_B
VDP_setTileMap(APLAN, TILE_ATTR_FULL(PAL1, 0, 0, 0, 1), 8, 7); // ROJO PRIORIDAD BAJA PLANO_A
VDP_setTileMap(BPLAN, TILE_ATTR_FULL(PAL3, 1, 0, 0, 1), 8, 7); // AZUL PRIORIDAD ALTA PlANO_B <<--
// Rellena un cuadrado de 2x1 del tile 1 con paleta gris en la posición (7,7)
VDP_fillTileMapRect(BPLAN, TILE_ATTR_FULL(PAL0, 0, 0, 0, 1), 7, 7, 2, 1); // GRIS PRIORIDAD BAJA PLANO_B
while(1){
// sincroniza la pantalla
VDP_waitVSync();
}
return 0;
}
Deberia aparecer en pantalla mi tile de color ROJO(7,7) y AZUL(8,7).
Sin embargo aparecen los dos de Color ROJO.... :S