Esta pagina se ve mejor con JavaScript habilitado

GameBoy Dev07: Technicolor rainbow

 ·  🎃 kr0m

Es recomendable la lectura de los artículos anteriores para comprender mejor el actual:


En el artículo anterior aprendimos a manipular la paleta de colores de la GameBoy, en esta ocasión vamos a crear un programita que nos muestre todas las posibles combinaciones, la transición es un poco rápida, podemos cambiar el valor del delay para que sea mas lenta o en el propio emulador darle a pausar y fijarnos en la combinación de colores de la paleta para saber que configuración del registro BGP_REG debemos asignar.

El código es el siguiente:

vi 07.c
#include <gb/gb.h>
#include <stdio.h>
#include "CyberPunkTiles.c"
#include "CyberPunkMap.c"

UINT8 i;

void technicolor_rainbow(){
    // Default palette: 11 10 01 00 -> E4
    // 2^8: 256
    for(i=0; i<255; i++){
        BGP_REG = i;
        delay(100);
    }
}

void main(){
    // grep TILESET_TILE_COUNT CyberPunkTiles.h
    set_bkg_data(0, 106, TILESET);

    // grep TILEMAP_ CyberPunkMap.h
    set_bkg_tiles(0, 0, 20, 18, TILEMAP);

    SHOW_BKG;
    DISPLAY_ON;

    while(1){
        BGP_REG = 0xE4;
        waitpad(J_START);
        technicolor_rainbow();
        delay(100);
    }
}

Compilamos:

~/GBDEV/gbdk/bin/lcc 07.c -o 07.gb

Cargamos la ROM en el emulador y cada vez que presionemos Start veremos el efecto:

Si te ha gustado el artículo puedes invitarme a un RedBull aquí