PAlib
Macros | Functions
Palette system

Macros

#define PA_LoadPal(palette, source)
 Load a 256 color palette in the Bg or Sprite palette of screen 0 or 1. Ex : PA_LoadPal(PALETTE_BG1, bg_pal);.
 
#define PA_LoadPal16(palette, n_palette, source)
 Load a 16 color palette in the Bg or Sprite palette of screen 0 or 1. Ex : PA_LoadPal16(PALETTE_BG1, 4, bg_pal);.
 
#define PA_LoadSprite16cPal(screen, n_palette, palette)   PA_LoadPal16((PAL_SPRITE0+(0x400*screen)), (n_palette), palette)
 Load a 16 color palette for sprites.
 
#define PA_RGB(r, g, b)   ((1<<15) | (r) | ((g)<<5) | ((b)<<10))
 Convert Red, Green, and Blue color indexes into a number used in the palette system. Careful : the R, G, B values range from 0 to 31 on gba !
 
#define PA_SetBgPalCol(screen, color_number, colorRGB)   BG_PALETTE[color_number + ((screen) << 9)] = colorRGB
 Change the color of one of the main background palette colors. Not used anymore.
 

Functions

static void PA_Load8bitBgPal (u8 screen, void *Pal)
 Load a palette to be used by the 8bit background.
 
void PA_SetBrightness (u8 screen, s8 bright)
 Set the screen's brightness.
 
static void PA_SetPalNeg (u32 palette)
 Set all the palette's color to negative. To undo this, simply negative again...
 
static void PA_SetPal16Neg (u32 palette, u8 n_palette)
 Set 16 color palette to negative. To undo this, simply negative again...
 
void PA_InitSpriteExtPal ()
 Initialise 16 palette mode for 256 color sprites. Done by default.
 
void PA_InitBgExtPal ()
 Initialise 16 palette mode for 256 color backgrounds.
 
static void PA_LoadSpritePal (u8 screen, u8 palette_number, void *palette)
 Load a 256 color palette for Sprites.
 
void PA_LoadBgPalN (u8 screen, u8 bg_number, u8 pal_number, void *palette)
 Load a 256 color palette in the Background palettes, to a given slot.
 
static void PA_LoadBgPal (u8 screen, u16 bg_number, void *palette)
 Load a 256 color palette in the Background palettes.
 
void PA_SetBgPalNCol (u8 screen, u8 bg_number, u8 pal_number, u8 color_number, u16 color)
 Change the color of one of the backgrounds' palettes' colors.
 
static void PA_SetBgColor (u8 screen, u16 color)
 Change the background color of a given screen.
 
void PA_SetSpritePalCol (u8 screen, u8 pal_number, u8 color_number, u16 color)
 Changes a color in a sprite palette.
 
void PA_3DSetSpritePalCol (u8 pal_number, u8 color_number, u16 color)
 Changes a color in a 3d sprite palette.
 

Detailed Description

Load palettes, change palette colors, set the gamma, etc...

Macro Definition Documentation

◆ PA_LoadPal

#define PA_LoadPal (   palette,
  source 
)
Value:
do{\
DC_FlushCache(source, 256 * 2); \
dmaCopy((void*)source, (void*)palette, 256 * 2); \
if (palette == PAL_SPRITE0) PA_LoadSpritePal(0, 0, (void*)source);\
if (palette == PAL_SPRITE1) PA_LoadSpritePal(1, 0, (void*)source);\
if (palette == PAL_BG0) {u8 itemp; for (itemp = 0; itemp < 4; itemp++) PA_LoadBgPal(0, itemp, (void*)(source));}\
if (palette == PAL_BG1) {u8 itemp; for (itemp = 0; itemp < 4; itemp++) PA_LoadBgPal(1, itemp, (void*)(source));}}while(0)
static void PA_LoadBgPal(u8 screen, u16 bg_number, void *palette)
Load a 256 color palette in the Background palettes.
Definition PA_Palette.h:232
static void PA_LoadSpritePal(u8 screen, u8 palette_number, void *palette)
Load a 256 color palette for Sprites.
Definition PA_Palette.h:195

Load a 256 color palette in the Bg or Sprite palette of screen 0 or 1. Ex : PA_LoadPal(PALETTE_BG1, bg_pal);.

Parameters
paletteSet the Bg palette or Obj palette, screen 0 or 1 : PAL_BG0, PAL_SPRITE0, PAL_BG1, or PAL_SPRITE1
sourcePalette name (ex : master_Palette)

◆ PA_LoadPal16

#define PA_LoadPal16 (   palette,
  n_palette,
  source 
)
Value:
do{ \
DC_FlushRange(source, 16 * 2); \
dmaCopy((void*)source, (void*)(palette + (n_palette << 5)), 16 * 2); \
} while(0)

Load a 16 color palette in the Bg or Sprite palette of screen 0 or 1. Ex : PA_LoadPal16(PALETTE_BG1, 4, bg_pal);.

Parameters
paletteSet the Bg palette or Obj palette, screen 0 or 1 : PAL_BG0, PAL_SPRITE0, PAL_BG1, or PAL_SPRITE1
n_paletteNumber of the 16 color palette to load (0-15)
sourcePalette name (ex : master_Palette)

◆ PA_LoadSprite16cPal

#define PA_LoadSprite16cPal (   screen,
  n_palette,
  palette 
)    PA_LoadPal16((PAL_SPRITE0+(0x400*screen)), (n_palette), palette)

Load a 16 color palette for sprites.

Parameters
screenScreen (0-1)
n_paletteNumber of the 16 color palette to load (0-15)
palettePalette name (ex : Sprite_Pal)

◆ PA_RGB

#define PA_RGB (   r,
  g,
 
)    ((1<<15) | (r) | ((g)<<5) | ((b)<<10))

Convert Red, Green, and Blue color indexes into a number used in the palette system. Careful : the R, G, B values range from 0 to 31 on gba !

Parameters
rRed (0-31)
gGreen (0-31)
bBlue (0-31)

◆ PA_SetBgPalCol

#define PA_SetBgPalCol (   screen,
  color_number,
  colorRGB 
)    BG_PALETTE[color_number + ((screen) << 9)] = colorRGB

Change the color of one of the main background palette colors. Not used anymore.

Parameters
screenScreen...
color_numberColor number in palette (0-255)
colorRGBRGB value, like PA_RGB(31, 31, 31) for white

Function Documentation

◆ PA_Load8bitBgPal()

static inline void PA_Load8bitBgPal ( u8  screen,
void *  Pal 
)
inlinestatic

Load a palette to be used by the 8bit background.

Parameters
screenScreen...
PalPalette name (ex : master_Palette)

◆ PA_SetBrightness()

void PA_SetBrightness ( u8  screen,
s8  bright 
)

Set the screen's brightness.

Parameters
screenChose de screen (0 or 1)
brightBrightness level, from -32 to 32, 0 being neutral

◆ PA_SetPalNeg()

static inline void PA_SetPalNeg ( u32  palette)
inlinestatic

Set all the palette's color to negative. To undo this, simply negative again...

Parameters
paletteSet the Bg palette or Obj palette, screen 0 or 1 : PAL_BG0, PAL_SPRITE0, PAL_BG1, or PAL_SPRITE1

◆ PA_SetPal16Neg()

static inline void PA_SetPal16Neg ( u32  palette,
u8  n_palette 
)
inlinestatic

Set 16 color palette to negative. To undo this, simply negative again...

Parameters
paletteSet the Bg palette or Obj palette, screen 0 or 1 : PAL_BG0, PAL_SPRITE0, PAL_BG1, or PAL_SPRITE1
n_paletteNumber of the 16 color palette (0-15)

◆ PA_LoadSpritePal()

void PA_LoadSpritePal ( u8  screen,
u8  palette_number,
void *  palette 
)
inlinestatic

Load a 256 color palette for Sprites.

Parameters
screenScreen...
palette_numberPalette number (0-15)
palettePalette to load ((void*)palette_name)

◆ PA_LoadBgPalN()

void PA_LoadBgPalN ( u8  screen,
u8  bg_number,
u8  pal_number,
void *  palette 
)

Load a 256 color palette in the Background palettes, to a given slot.

Load a 256 color palette in a given Background's palette.

Parameters
screenScreen...
bg_numberBackground number (0-3)
pal_numberPalette number
palettePalette to load ((void*)palette_name)
screenScreen...
bg_numberBackground number (0-3)
pal_numberPalette number (0-15)
palettePalette to load ((void*)palette_name)

◆ PA_LoadBgPal()

void PA_LoadBgPal ( u8  screen,
u16  bg_number,
void *  palette 
)
inlinestatic

Load a 256 color palette in the Background palettes.

Parameters
screenScreen...
bg_numberBackground number (0-3)
palettePalette to load ((void*)palette_name)

◆ PA_SetBgPalNCol()

void PA_SetBgPalNCol ( u8  screen,
u8  bg_number,
u8  pal_number,
u8  color_number,
u16  color 
)

Change the color of one of the backgrounds' palettes' colors.

Parameters
screenScreen...
bg_numberBackground number (0-3)
pal_numberPalette number (0-15). Leave to 0 if unsure
color_numberColor number in palette (0-255)
colorRGB value, like PA_RGB(31, 31, 31) for white

◆ PA_SetBgColor()

static inline void PA_SetBgColor ( u8  screen,
u16  color 
)
inlinestatic

Change the background color of a given screen.

Parameters
screenScreen...
colorRGB value, like PA_RGB(31, 31, 31) for white

◆ PA_SetSpritePalCol()

void PA_SetSpritePalCol ( u8  screen,
u8  pal_number,
u8  color_number,
u16  color 
)

Changes a color in a sprite palette.

Parameters
screenScreen...
pal_numberPalette number
color_numberColor in the palette
colorColor (given by PA_RGB...)

◆ PA_3DSetSpritePalCol()

void PA_3DSetSpritePalCol ( u8  pal_number,
u8  color_number,
u16  color 
)

Changes a color in a 3d sprite palette.

Parameters
pal_numberPalette number
color_numberColor number in the palette
colorColor (given by PA_RGB...)