PAlib
Macros | Functions
Palette system for Dual Screen

Macros

#define PA_DualLoadPal(palette, source)
 Load a 256 color palette in the Bg or Sprite palette of both screens.
 
#define PA_DualLoadPal16(palette, n_palette, source)
 Load a 16 color palette in the Bg or Sprite palette of both screens.
 

Functions

static void PA_DualSetPalNeg (u32 palette)
 Set all the palette's color to negative. To undo this, simply negative again...
 
static void PA_DualSetPal16Neg (u32 palette, u8 n_palette)
 Set 16 color palette to negative. To undo this, simply negative again...
 
static void PA_DualLoadSpritePal (u8 palette_number, void *palette)
 Load a 256 color palette in the Sprite palettes.
 
static void PA_DualLoadBgPal (u8 bg_number, void *palette)
 Load a 256 color palette for a given background.
 
static void PA_DualSetBgColor (u16 color)
 Change the background color of both screens.
 

Detailed Description

Load palettes, change palette colors, set the gamma, etc... on both screens !

Macro Definition Documentation

◆ PA_DualLoadPal

#define PA_DualLoadPal (   palette,
  source 
)
Value:
do{\
DC_FlushRange(source, 256 * 2); \
dmaCopy((void*)source, (void*)palette, 256 * 2);\
dmaCopy((void*)(source + 1024), (void*)palette, 256 * 2);\
if(palette == PAL_SPRITE)\
PA_DualLoadSpriteExtPal(0, (void*)palette);\
}while(0)

Load a 256 color palette in the Bg or Sprite palette of both screens.

Parameters
paletteSet the Bg palette or Sprite palette : PAL_BG or PAL_SPRITE
sourcePalette name (ex : master_Palette)

◆ PA_DualLoadPal16

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

Load a 16 color palette in the Bg or Sprite palette of both screens.

Parameters
paletteSet the Bg palette or Obj palette : PAL_BG or PAL_SPRITE
n_paletteNumber of the 16 color palette to load (0-15)
sourcePalette name (ex : master_Palette)

Function Documentation

◆ PA_DualSetPalNeg()

static inline void PA_DualSetPalNeg ( 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 : PAL_BG, PAL_SPRITE

◆ PA_DualSetPal16Neg()

static inline void PA_DualSetPal16Neg ( 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 : PAL_BG, PAL_SPRITE
n_paletteNumber of the 16 color palette (0-15)

◆ PA_DualLoadSpritePal()

static inline void PA_DualLoadSpritePal ( u8  palette_number,
void *  palette 
)
inlinestatic

Load a 256 color palette in the Sprite palettes.

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

◆ PA_DualLoadBgPal()

static inline void PA_DualLoadBgPal ( u8  bg_number,
void *  palette 
)
inlinestatic

Load a 256 color palette for a given background.

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

◆ PA_DualSetBgColor()

static inline void PA_DualSetBgColor ( u16  color)
inlinestatic

Change the background color of both screens.

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