Normal Tiled Background Modes


Macros

#define PA_HideBg(screen, bg_select)   _REG16(REG_BGSCREEN(screen)) &= ~(0x100 << (bg_select))
 Cacher un fond.
#define PA_ShowBg(screen, bg_select)   _REG16(REG_BGSCREEN(screen)) |= (0x100 << (bg_select))
 Afficher un fond auparavant caché.
#define PA_ResetBg(screen)   _REG16(REG_BGSCREEN(screen)) &= ~(0xF00)
 Reinitialiser les fonds d'un écran. En fait ca ne fait que cacher tous les fonds.
#define PA_LoadBgTiles(screen, bg_select, bg_tiles)   PA_LoadBgTilesEx(screen, bg_select, (void*)bg_tiles, SIZEOF_16BIT(bg_tiles))
 Charger un tileset en mémoire.
#define PA_LoadTiledBg(screen, bg_number, bg_name)
 On ne pourra jamais rendre ca plus simple... Charge un fond de type TiledBg converti avec PAGfx, en mettant les tiles, la map, et meme la palette ! Seulement en mode 256 couleurs.
#define PA_LoadSimpleBg(screen, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode)
 Facon simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap.
#define PA_LoadBg(screen, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode)
 Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et 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 les infos tiles utilisée pour une tile donnée dans la 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)
 Moyen le plus simple de charger un fond créé avec PAGfx... Peut prendre des pointeurs !

Fonctions

void PA_ResetBgSys (void)
 Reinitialise le systeme de fonds.
void PA_ResetBgSysScreen (u8 screen)
 Reinitialise le systeme de fonds pour 1 écran.
void PA_InitBg (u8 screen, u8 bg_select, u8 bg_size, u8 wraparound, u8 color_mode)
 Initialise un fond. A faire uniquement après avoir chargé un tileset et une map.
void PA_LoadBgTilesEx (u8 screen, u8 bg_select, void *bg_tiles, u32 size)
 Charger un tileset en mémoire avec une taille donnée.
void PA_ReLoadBgTiles (u8 screen, u8 bg_select, void *bg_tiles)
 ReCharger un tileset en mémoire.
void PA_DeleteTiles (u8 screen, u8 bg_select)
 Effacer un tileset en mémoire. A noter que charger un tileset efface automatiquement le tileset précédent, donc on n'aura pas souvent besoin de cette fonction...
void PA_DeleteMap (u8 screen, u8 bg_select)
 Effacer une map en mémoire. A noter que charger une map efface automatiquement la map précédent, donc on n'aura pas souvent besoin de cette fonction...
void PA_DeleteBg (u8 screen, u8 bg_select)
 Effacer et reinitialiser un fond complètement.
void PA_LoadBgMap (u8 screen, u8 bg_select, void *bg_map, u8 bg_size)
 Charge la carte d'un fond.
void PA_BGScrollX (u8 screen, u8 bg_number, s32 x)
 Scroll horizontal d'un fond de type Tiled.
void PA_BGScrollY (u8 screen, u8 bg_number, s32 y)
 Scroll vertical d'un fond de type Tiled.
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 la tile gfx utilisée pour une tile donnée dans la map.
void PA_SetLargeMapTile (u8 screen, u8 bg_select, s32 x, s32 y, u32 tile_info)
 Change les infos tiles utilisée pour une tile donnée dans la map, seulement pour les grands fonds (512 de large ou haut).
void PA_SetMapTileHflip (u8 screen, u8 bg_select, u8 x, u8 y, u8 hflip)
 Flipper une tile de la carte, horizontalement.
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)
 Changer la palette de 16 couleurs utilisée par une tile de la carte. Marche uniquement en mode 16 couleurs pour le Bg.
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)
 Changer la priorité d'un fond.
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)
 Changer la priorité des fonds pour qu'ils soient dans un ordre donné.
void PA_ClearBg (u8 screen, u8 bg_select)
 Effacer un fond donné (juste la map).
void PA_EasyBgScrollX (u8 screen, u8 bg_number, s32 x)
 Scroll horizontal de n'importe quel fond.
void PA_EasyBgScrollY (u8 screen, u8 bg_number, s32 y)
 Scroll vertical de n'importe quel fond.
void PA_EasyBgScrollXY (u8 screen, u8 bg_number, s32 x, s32 y)
 Scroll horizontal et vertical de n'importe quel fond.
u8 PA_EasyBgGetPixel (u8 screen, u8 bg_number, s32 x, s32 y)
 Renvoie le numéro dans la palette du pixel à l'écran...
u16 PA_EasyBgGetPixelCol (u8 screen, u8 bg_number, s32 x, s32 y)
 Renvoie la couleur (valeur u16) du pixel à l'écran...
void PA_SetBgWrap (u8 screen, u8 bg, u8 wrap)
 Active ou non le wrapping des fonds (rotatifs, 8bit, et 16bit).

Description détaillée

Load a background, scroll it, etc...

Documentation des macros

#define PA_EasyBgLoad ( screen,
bg_number,
bg_name   ) 

Valeur :

{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)

Moyen le plus simple de charger un fond créé avec PAGfx... Peut prendre des pointeurs !

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond... (0-3)
bg_name Fond, par exemple &bg0

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

Cacher un fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

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

Valeur :

{\
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);}
Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
tile_size Taille du tilset
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
bg_size Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc... Por un fond rotatif, il suffit d'utiliser BG_ROT_128X128...
wraparound Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

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

Charger un tileset en mémoire.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)

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

Valeur :

{\
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);}
Facon simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
bg_map Nom du tableau contenant les infos sur la map (exemple : ship_Map)
bg_size Taille du fond. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc...
wraparound Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

#define PA_LoadTiledBg ( screen,
bg_number,
bg_name   ) 

Valeur :

{\
        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);}
On ne pourra jamais rendre ca plus simple... Charge un fond de type TiledBg converti avec PAGfx, en mettant les tiles, la map, et meme la palette ! Seulement en mode 256 couleurs.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_name Nom du fond, comme bg0

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

Reinitialiser les fonds d'un écran. En fait ca ne fait que cacher tous les fonds.

Paramètres:
screen Choix de l'écran (0 ou 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 les infos tiles utilisée pour une tile donnée dans la map.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_info Nouveau numéro de tile que l'on veut mettre (tile + palette + flips...)

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

Afficher un fond auparavant caché.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)


Documentation des fonctions

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

Scroll horizontal d'un fond de type Tiled.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X à déplacer, horizontalement...

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 vertical d'un fond de type Tiled.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
y Valeur Y à déplacer, verticalement...

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

Effacer un fond donné (juste la map).

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Fond...

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]

Effacer et reinitialiser un fond complètement.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

void PA_DeleteMap ( u8  screen,
u8  bg_select 
)

Effacer une map en mémoire. A noter que charger une map efface automatiquement la map précédent, donc on n'aura pas souvent besoin de cette fonction...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

void PA_DeleteTiles ( u8  screen,
u8  bg_select 
)

Effacer un tileset en mémoire. A noter que charger un tileset efface automatiquement le tileset précédent, donc on n'aura pas souvent besoin de cette fonction...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

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

Renvoie le numéro dans la palette du pixel à l'écran...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X du pixel à l'écran
y Valeur Y du pixel à l'écran

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

Renvoie la couleur (valeur u16) du pixel à l'écran...

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X du pixel à l'écran
y Valeur Y du pixel à l'écran

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

Scroll horizontal de n'importe quel fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X à déplacer, horizontalement...

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

Scroll horizontal et vertical de n'importe quel fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
x Valeur X à déplacer, horizontalement...
y Valeur Y à déplacer, verticalement...

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

Scroll vertical de n'importe quel fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_number Numéro du fond que l'on veut tourner (0-3)
y Valeur Y à déplacer, verticalement...

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

Initialise un fond. A faire uniquement après avoir chargé un tileset et une map.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_size Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc... Pour un fond rotatif, il suffit d'utiliser BG_ROT_128X128...
wraparound Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
color_mode Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

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

Charge la carte d'un fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_map Nom du tableau contenant les infos sur la map (exemple : (void*)ship_Map) n'oublie pas le void...
bg_size Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc...

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

Charger un tileset en mémoire avec une taille donnée.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)
size Taille en 16 bits...

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

ReCharger un tileset en mémoire.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
bg_tiles Nom du tableau contenant les tiles (exemple: ship_Tiles)

void PA_ResetBgSys ( void   ) 

Reinitialise le systeme de fonds.

void PA_ResetBgSysScreen ( u8  screen  ) 

Reinitialise le systeme de fonds pour 1 écran.

Paramètres:
screen Choix de l'écran (0 ou 1)

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

Changer la priorité d'un fond.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg Numéro du fond...
prio Niveau de priorité, de 0 à 3, 0 étant priorité la plus élevée

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

Changer la priorité des fonds pour qu'ils soient dans un ordre donné.

Paramètres:
screen Choix de l'écran (0 ou 1)
priority0 Fond à mettre en premier
priority1 Suivant...
priority2 Suivant...
priority2 Dernier...

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

Active ou non le wrapping des fonds (rotatifs, 8bit, et 16bit).

Paramètres:
screen Choix de l'écran (0 ou 1)
bg Numéro du fond que l'on veut tourner (0-3)
wrap Wrap activé ou désactivé...

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

Change les infos tiles utilisée pour une tile donnée dans la map, seulement pour les grands fonds (512 de large ou haut).

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_info Nouveau numéro de tile que l'on veut mettre (tile + palette + flips...)

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

Change la tile gfx utilisée pour une tile donnée dans la map.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
tile_number Nouveau numéro de tile que l'on veut mettre

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]

Flipper une tile de la carte, horizontalement.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
hflip Mettre la tile de la carte en flip horizontal

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

Changer la palette de 16 couleurs utilisée par une tile de la carte. Marche uniquement en mode 16 couleurs pour le Bg.

Paramètres:
screen Choix de l'écran (0 ou 1)
bg_select Numéro du fond que l'on veut tourner (0-3)
x Valeur X de la tile à changer
y Valeur Y de la tile à changer dans la carte
palette_number Numéro de la palette (0-15)

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


Généré le Sat Jun 13 12:57:00 2009 pour PAlib - Programmer's Arsenal par  doxygen 1.5.8