Normal Tiled Background Modes


Defines

#define PA_HideBg(screen, bg_select)   _REG16(REG_BGSCREEN(screen)) &= ~(0x100 << (bg_select))
 Hide a screen's background.
#define PA_ShowBg(screen, bg_select)   _REG16(REG_BGSCREEN(screen)) |= (0x100 << (bg_select))
 Show a hidden background.
#define PA_ResetBg(screen)   _REG16(REG_BGSCREEN(screen)) &= ~(0xF00)
 Reinitialize de Bg system of a screen. It only hides all the backgrounds in reality...
#define PA_LoadBgTiles(screen, bg_select, bg_tiles)   PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, SIZEOF_16BIT(bg_tiles))
 Load a tileset into memory.
#define PA_LoadTiledBg(screen, bg_number, bg_name)
 This will never get easier... Loads a background TiledBg converted with PAGfx, with it's tiles, map, and palette. Only 256 color mode available.
#define PA_LoadSimpleBg(screen, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode)
 Simple way to load a Background. Combines PA_InitBg, PA_LoadBgTiles, and PA_LoadBgMap.
#define PA_LoadBg(screen, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode)
 Simplest way to load a Background. Combines PA_InitBg, PA_LoadBgTiles, and PA_LoadBgMap.
#define PA_SetMapTileAll(screen, bg_select, x, y, tile_info)   *(u16*)(PA_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) = (tile_info)
 Change the tile info used by a given tile in the map.
#define PA_EasyBgLoad(screen, bg_number, bg_name)
#define PA_EasyBgLoadPtr(screen, bg_number, bg_name)   PA_EasyBgLoadEx(screen, bg_number, (u32*)bg_name->Info, bg_name->Tiles, bg_name->TileSize, bg_name->Map, bg_name->MapSize, bg_name->Palette)
 Easiest way to load a background converted with PAGfx... Can take pointers !

Functions

void PA_ResetBgSys (void)
 Reset the background system.
void PA_ResetBgSysScreen (u8 screen)
 Reset the background system on 1 screen.
void PA_InitBg (u8 screen, u8 bg_select, u8 bg_size, u8 wraparound, u8 color_mode)
 Initialise a given background. Do this only after having loaded a tileset and a map.
void PA_LoadBgTilesEx (u8 screen, u8 bg_select, void *bg_tiles, u32 size)
 Load a tileset into memory with a given size.
void PA_ReLoadBgTiles (u8 screen, u8 bg_select, void *bg_tiles)
 ReLoad a tileset into memory.
void PA_DeleteTiles (u8 screen, u8 bg_select)
 Delete a tilest in memory. Note that loading a tileset automatically deletes the preceding one, so you won't need to use this function often.
void PA_DeleteMap (u8 screen, u8 bg_select)
 Delete a map in memory. Note that loading a map automatically deletes the preceding one, so you won't need to use this function often.
void PA_DeleteBg (u8 screen, u8 bg_select)
 Delete and reset a complete background.
void PA_LoadBgMap (u8 screen, u8 bg_select, void *bg_map, u8 bg_size)
 Load a background's map info.
void PA_BGScrollX (u8 screen, u8 bg_number, s32 x)
 Scroll horizontaly a Tiled background.
void PA_BGScrollY (u8 screen, u8 bg_number, s32 y)
 Scroll vertically a Tiled background.
void PA_BGScrollXY (u8 screen, u8 bg_number, s32 x, s32 y)
void PA_SetMapTile (u8 screen, u8 bg_select, s16 x, s16 y, s16 tile_number)
 Change the tile gfx used by a given tile in the map.
void PA_SetLargeMapTile (u8 screen, u8 bg_select, s32 x, s32 y, u32 tile_info)
 Change the tile info used by a given tile in the map, only for big background (512 large or wide).
void PA_SetMapTileHflip (u8 screen, u8 bg_select, u8 x, u8 y, u8 hflip)
 Flip a given tile horizontaly.
void PA_SetMapTileVflip (u8 screen, u8 bg_select, u8 x, u8 y, u8 vflip)
void PA_SetMapTilePal (u8 screen, u8 bg_select, u8 x, u8 y, u8 palette_number)
 Change the 16 color palette used by a tile. Works only if the Bg is in 16 colors...
void PA_SetMapTileEx (u8 screen, u8 bg_select, s16 x, s16 y, u16 tile_number, u8 hflip, u8 vflip, u8 palette_number)
void PA_SetBgPrio (u8 screen, u8 bg, u8 prio)
 Change a backgrounds priority.
void PA_CreateBgFromTiles (u8 screen, u8 bg_select, u8 bg_tiles, void *bg_map, u8 bg_size)
void PA_SetBgPrioSeq (u8 screen, u8 priority0, u8 priority1, u8 priority2, u8 priority3)
 Change all the background priorities to a given background order.
void PA_ClearBg (u8 screen, u8 bg_select)
 Erase a given background (just the tilemap).
void PA_EasyBgScrollX (u8 screen, u8 bg_number, s32 x)
 Scroll horizontaly any background.
void PA_EasyBgScrollY (u8 screen, u8 bg_number, s32 y)
 Scroll vertically any background.
void PA_EasyBgScrollXY (u8 screen, u8 bg_number, s32 x, s32 y)
 Scroll horizontaly and vertically any background.
u8 PA_EasyBgGetPixel (u8 screen, u8 bg_number, s32 x, s32 y)
 Returns the color (number in the palette) of the screen pixel...
u16 PA_EasyBgGetPixelCol (u8 screen, u8 bg_number, s32 x, s32 y)
 Returns the color (u16 value) of the screen pixel...
void PA_SetBgWrap (u8 screen, u8 bg, u8 wrap)
 Set on/off the background wrapping (for rotating, 8bit, and 16bit backgrounds).

Detailed Description

Load a background, scroll it, etc...

Define Documentation

#define PA_EasyBgLoad ( screen,
bg_number,
bg_name   ) 

Value:

{PA_BgInfo[screen][bg_number].BgMode = bg_name##_Info[0];\
        PA_StoreEasyBgInfos(screen, bg_number, bg_name##_Info[0], bg_name##_Info[1], bg_name##_Info[2], (void*)bg_name##_Tiles, SIZEOF_16BIT(bg_name##_Tiles), (void*)bg_name##_Map, SIZEOF_16BIT(bg_name##_Map), (void*)bg_name##_Pal);\
        if(PA_BgInfo[screen][bg_number].BgMode == BG_TILEDBG){  PA_LoadTiledBg(screen, bg_number, bg_name);}\
        else{PA_LoadPAGfxLargeBg(screen, bg_number, bg_name);}}

define PA_EasyBgLoadPtr ( screen,
bg_number,
bg_name   )     PA_EasyBgLoadEx(screen, bg_number, (u32*)bg_name->Info, bg_name->Tiles, bg_name->TileSize, bg_name->Map, bg_name->MapSize, bg_name->Palette)

Easiest way to load a background converted with PAGfx... Can take pointers !

Parameters:
screen Choose de screen (0 or 1)
bg_number Background number... (0-3)
bg_name Background, like &bg0

#define PA_HideBg ( screen,
bg_select   )     _REG16(REG_BGSCREEN(screen)) &= ~(0x100 << (bg_select))

Hide a screen's background.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)

#define PA_LoadBg ( screen,
bg_select,
bg_tiles,
tile_size,
bg_map,
bg_size,
wraparound,
color_mode   ) 

Value:

{\
PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, tile_size); \
PA_LoadBgMap(screen, bg_select, (void*)bg_map, bg_size); \
PA_InitBg(screen, bg_select, bg_size, 0, color_mode);\
PA_BGScrollXY(screen, bg_select, 0, 0);}
Simplest way to load a Background. Combines PA_InitBg, PA_LoadBgTiles, and PA_LoadBgMap.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_tiles Name of the tiles' info (example: ship_Tiles)
tile_size Size of your tileset
bg_map Name of the map's info (example : ship_Map)
bg_size Background size. This is important, because it also determines whether the Bg is rotatable or not. To use a normal background, use the macros BG_256X256, BG_256X512, etc... For a rotatable Bg, use the macros BG_ROT_128X128...
wraparound If the background wraps around or not. More important for rotating backgrounds.
color_mode Color mode : 0 for 16 color mode, 1 for 256...

#define PA_LoadBgTiles ( screen,
bg_select,
bg_tiles   )     PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, SIZEOF_16BIT(bg_tiles))

Load a tileset into memory.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_tiles Name of the tiles' info (example: ship_Tiles)

#define PA_LoadSimpleBg ( screen,
bg_select,
bg_tiles,
bg_map,
bg_size,
wraparound,
color_mode   ) 

Value:

{\
PA_DeleteBg(screen, bg_select);\
PA_LoadBgTiles(screen, bg_select, bg_tiles); \
PA_LoadBgMap(screen, bg_select, (void*)bg_map, bg_size); \
PA_InitBg(screen, bg_select, bg_size, 0, color_mode);\
PA_BGScrollXY(screen, bg_select, 0, 0);}
Simple way to load a Background. Combines PA_InitBg, PA_LoadBgTiles, and PA_LoadBgMap.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_tiles Name of the tiles' info (example: ship_Tiles)
bg_map Name of the map's info (example : ship_Map)
bg_size Background size. To use a normal background, use the macros BG_256X256, BG_256X512, etc...
wraparound If the background wraps around or not. More important for rotating backgrounds.
color_mode Color mode : 0 for 16 color mode, 1 for 256...

#define PA_LoadTiledBg ( screen,
bg_number,
bg_name   ) 

Value:

{\
        PA_LoadBgPal(screen, bg_number, (void*)bg_name##_Pal); \
        PA_LoadSimpleBg(screen, bg_number, bg_name##_Tiles, bg_name##_Map, PA_GetPAGfxBgSize(bg_name##_Info[1], bg_name##_Info[2]), 0, 1);}
This will never get easier... Loads a background TiledBg converted with PAGfx, with it's tiles, map, and palette. Only 256 color mode available.

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number to load (from 0 to 3)
bg_name Background name, like bg0

#define PA_ResetBg ( screen   )     _REG16(REG_BGSCREEN(screen)) &= ~(0xF00)

Reinitialize de Bg system of a screen. It only hides all the backgrounds in reality...

Parameters:
screen Chose de screen (0 or 1)

#define PA_SetMapTileAll ( screen,
bg_select,
x,
y,
tile_info   )     *(u16*)(PA_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) = (tile_info)

Change the tile info used by a given tile in the map.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number (0-3)
x X value of the tile to change
y Y value of the map tile to change
tile_info New tile to put (tile + palette + flips...)

#define PA_ShowBg ( screen,
bg_select   )     _REG16(REG_BGSCREEN(screen)) |= (0x100 << (bg_select))

Show a hidden background.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)


Function Documentation

inline void PA_BGScrollX ( u8  screen,
u8  bg_number,
s32  x 
) [inline]

Scroll horizontaly a Tiled background.

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
x X value to scroll

void PA_BGScrollXY ( u8  screen,
u8  bg_number,
s32  x,
s32  y 
) [inline]

inline void PA_BGScrollY ( u8  screen,
u8  bg_number,
s32  y 
) [inline]

Scroll vertically a Tiled background.

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
y Y value to scroll

inline void PA_ClearBg ( u8  screen,
u8  bg_select 
) [inline]

Erase a given background (just the tilemap).

Parameters:
screen Choose de screen (0 or 1)
bg_select Background...

void PA_CreateBgFromTiles ( u8  screen,
u8  bg_select,
u8  bg_tiles,
void *  bg_map,
u8  bg_size 
) [inline]

inline void PA_DeleteBg ( u8  screen,
u8  bg_select 
) [inline]

Delete and reset a complete background.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)

void PA_DeleteMap ( u8  screen,
u8  bg_select 
)

Delete a map in memory. Note that loading a map automatically deletes the preceding one, so you won't need to use this function often.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)

void PA_DeleteTiles ( u8  screen,
u8  bg_select 
)

Delete a tilest in memory. Note that loading a tileset automatically deletes the preceding one, so you won't need to use this function often.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)

inline u8 PA_EasyBgGetPixel ( u8  screen,
u8  bg_number,
s32  x,
s32  y 
) [inline]

Returns the color (number in the palette) of the screen pixel...

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
x X screen pixel position
y Y screen pixel position

inline u16 PA_EasyBgGetPixelCol ( u8  screen,
u8  bg_number,
s32  x,
s32  y 
) [inline]

Returns the color (u16 value) of the screen pixel...

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
x X screen pixel position
y Y screen pixel position

void PA_EasyBgScrollX ( u8  screen,
u8  bg_number,
s32  x 
)

Scroll horizontaly any background.

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
x X value to scroll

inline void PA_EasyBgScrollXY ( u8  screen,
u8  bg_number,
s32  x,
s32  y 
) [inline]

Scroll horizontaly and vertically any background.

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
x X value to scroll
y Y value to scroll

void PA_EasyBgScrollY ( u8  screen,
u8  bg_number,
s32  y 
)

Scroll vertically any background.

Parameters:
screen Chose de screen (0 or 1)
bg_number Background number (0-3)
y Y value to scroll

void PA_InitBg ( u8  screen,
u8  bg_select,
u8  bg_size,
u8  wraparound,
u8  color_mode 
)

Initialise a given background. Do this only after having loaded a tileset and a map.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_size Background size. This is important, because it also determines whether the Bg is rotatable or not. To use a normal background, use the macros BG_256X256, BG_256X512, etc... For a rotatable Bg, use the macros BG_ROT_128X128...
wraparound If the background wraps around or not. More important for rotating backgrounds.
color_mode Color mode : 0 for 16 color mode, 1 for 256...

void PA_LoadBgMap ( u8  screen,
u8  bg_select,
void *  bg_map,
u8  bg_size 
)

Load a background's map info.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_map Name of the map's info (example : (void*)ship_Map) Don't forget the void...
bg_size Background size. This is important, because it also determines whether the Bg is rotatable or not. To use a normal background, use the macros BG_256X256, BG_256X512, etc...

void PA_LoadBgTilesEx ( u8  screen,
u8  bg_select,
void *  bg_tiles,
u32  size 
)

Load a tileset into memory with a given size.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_tiles Name of the tiles' info (example: ship_Tiles)
size 16 bit size...

void PA_ReLoadBgTiles ( u8  screen,
u8  bg_select,
void *  bg_tiles 
)

ReLoad a tileset into memory.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number to load (from 0 to 3)
bg_tiles Name of the tiles' info (example: ship_Tiles)

void PA_ResetBgSys ( void   ) 

Reset the background system.

void PA_ResetBgSysScreen ( u8  screen  ) 

Reset the background system on 1 screen.

Parameters:
screen Chose de screen (0 or 1)

inline void PA_SetBgPrio ( u8  screen,
u8  bg,
u8  prio 
) [inline]

Change a backgrounds priority.

Parameters:
screen Chose de screen (0 or 1)
bg Background...
prio Priority level (0-3, 0 being the highest)

inline void PA_SetBgPrioSeq ( u8  screen,
u8  priority0,
u8  priority1,
u8  priority2,
u8  priority3 
) [inline]

Change all the background priorities to a given background order.

Parameters:
screen Chose de screen (0 or 1)
priority0 Background to show on top
priority1 Next one...
priority2 Next one...
priority2 Last one...

inline void PA_SetBgWrap ( u8  screen,
u8  bg,
u8  wrap 
) [inline]

Set on/off the background wrapping (for rotating, 8bit, and 16bit backgrounds).

Parameters:
screen Chose de screen (0 or 1)
bg Background number (0-3)
wrap Wrap around on or off...

inline void PA_SetLargeMapTile ( u8  screen,
u8  bg_select,
s32  x,
s32  y,
u32  tile_info 
) [inline]

Change the tile info used by a given tile in the map, only for big background (512 large or wide).

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number (0-3)
x X value of the tile to change
y Y value of the map tile to change
tile_info New tile to put (tile + palette + flips...)

inline void PA_SetMapTile ( u8  screen,
u8  bg_select,
s16  x,
s16  y,
s16  tile_number 
) [inline]

Change the tile gfx used by a given tile in the map.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number (0-3)
x X value of the tile to change
y Y value of the map tile to change
tile_number New tile number to put

void PA_SetMapTileEx ( u8  screen,
u8  bg_select,
s16  x,
s16  y,
u16  tile_number,
u8  hflip,
u8  vflip,
u8  palette_number 
) [inline]

void PA_SetMapTileHflip ( u8  screen,
u8  bg_select,
u8  x,
u8  y,
u8  hflip 
) [inline]

Flip a given tile horizontaly.

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number (0-3)
x X value of the tile to change
y Y value of the map tile to change
hflip Set the map tile to horizontal flip

inline void PA_SetMapTilePal ( u8  screen,
u8  bg_select,
u8  x,
u8  y,
u8  palette_number 
) [inline]

Change the 16 color palette used by a tile. Works only if the Bg is in 16 colors...

Parameters:
screen Chose de screen (0 or 1)
bg_select Background number (0-3)
x X value of the tile to change
y Y value of the map tile to change
palette_number Palette number (0-15)

void PA_SetMapTileVflip ( u8  screen,
u8  bg_select,
u8  x,
u8  y,
u8  vflip 
) [inline]


Generated on Sat Jun 13 12:55:13 2009 for PAlib - Programmer's Arsenal by  doxygen 1.5.8