Lección 03 – Tiles y Planos (II)

Aventuras en Megadrive: Tiles (II)

 

 

COLORES

El SGDK por defecto rellena el background con el color 0 de la primera paleta (pal0). Es el color negro por defecto. Es fácil cambiar el color para el background utilizando VDP_setBackgroundColor():

VDP_setBackgroundColor(índice de color a usar 0-63);

Los colores van del 0 al 15 (pal0), del 16 al 31 (pal1), etc.

Por ejemplo, vamos a indicar que use el color 20 para colorear el background:

 VDP_setBackgroundColor(20);

El color será aquel que hallamos asignado al quinto color de la segunda paleta, puede ser cualquiera.

¿Podemos cambiar los colores de las paletas? Por supuesto. Para cambiar individualmente un color determinado de una paleta determinada hay que usar VDP_setPaletteColor(), poniendo el color elegido en formato RGB.

Vamos a cambiar el color índice 0 para que sea un azul en vez de negro:

VDP_setPaletteColor(0,RGB24_TO_VDPCOLOR(0x0098e5));

Si miramos el contenido de la VRAM con GensKmod, veremos el cambio:

Captura3

Tomar nota que no podemos poner cualquier valor, la mega tiene una paleta de 512 colores. No obstante si trabajamos con emulador no se quejará y si lo hacemos con una  consola real lo que pasará es que el color será diferente. En su momento ampliaré información sobre los colores.

 

Soft Reset

Si deseamos hacer un soft reset desde el propio juego, nada mejor que utilizar esta función, mano de santo:

// soft reset
void reset()
{
asm("move #0x2700,%sr\n\t"
"move.l (0),%a7\n\t"
"move.l (4),%a0\n\t"
"jmp (%a0)");
}

 

EJEMPLO +COMPLETO

Hay un ejemplo mucho más completo de todo lo tratado en este post, más sofisticado que el anterior. Podéis ir viendo paso a paso el programa y el código, es bastante ilustrativo y está muy bien comentado.

captura21

 

 

GITHUB

El código de esta lección, y de todas las demás, lo podrás encontrar en mi github:

https://github.com/danibusvlc/aventuras-en-megadrive

Anuncios