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_SetMapTileHflip(screen, bg_select, x, y, hflip)   {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_HFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((hflip) << 10);}
 Flip a given tile horizontaly
#define PA_SetMapTileVflip(screen, bg_select, x, y, vflip)   {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_VFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((vflip) << 11);}
 Flip a given tile verticaly
#define PA_SetMapTilePal(screen, bg_select, x, y, palette_number)   {*(u16*)(PA_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) |= ((palette_number) << 12);}
 Change the 16 color palette used by a tile. Works only if the Bg is in 16 colors...
#define PA_EasyBgLoad(screen, bg_number, bg_name)
 Easiest way to load a background converted with PAGfx...

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_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 a complete background (tiles + map + hide it...)
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_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_SetBgPrio (u8 screen, u8 bg, u8 prio)
 Change a backgrounds priority
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...

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);}
Easiest way to load a background converted with PAGfx...

Parameters:
screen Choose de screen (0 or 1)
bg_number Background number... (0-3)
bg_name Background name

#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_SetMapTileHflip screen,
bg_select,
x,
y,
hflip   )     {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_HFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((hflip) << 10);}
 

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

#define PA_SetMapTilePal screen,
bg_select,
x,
y,
palette_number   )     {*(u16*)(PA_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_BgInfo[screen][bg_select].Map + ((x) << 1) + ((y) << 6)) |= ((palette_number) << 12);}
 

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)

#define PA_SetMapTileVflip screen,
bg_select,
x,
y,
vflip   )     {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_VFLIP); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((vflip) << 11);}
 

Flip a given tile verticaly

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
vflip Set the map tile to vertical flip

#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

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...

inline void PA_DeleteBg u8  screen,
u8  bg_select
[inline]
 

Delete a complete background (tiles + map + hide it...)

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_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_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


Generated on Tue Jan 30 23:10:11 2007 for PAlib by  doxygen 1.3.9.1