PAlib: Bg Modes 0-2

Page principale | Modules | Liste des fichiers | Portée globale | Rechercher

# Bg Modes 0-2

## 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_LoadRotBg(screen, bg_select, bg_tiles, bg_map, bg_size, wraparound)
| Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs
#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_BGScrollX(screen, bg_number, x) _REG16(REG_BGSCROLLX + ((screen) * 0x1000) + ((bg_number) << 2)) = (x)&1023
| Scroll horizontal de n'importe quel fond
#define | PA_BGScrollY(screen, bg_number, y) _REG16(REG_BGSCROLLY + ((screen) * 0x1000) + ((bg_number) << 2)) = (y)&1023
| Scroll vertical de n'importe quel fond
#define | PA_BGScrollXY(screen, bg_number, x, y) {PA_BGScrollX(screen, bg_number, x); PA_BGScrollY(screen, bg_number, y);}
| Scroll horizontal et vertical de n'importe quel fond
#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);}
| Flipper une tile de la carte, horizontalement
#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);}
| Flipper une tile de la carte, verticalement
#define | PA_SetMapTilePal(screen, bg_select, x, y, palette_number) {*(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) &= ALL_BUT(TILE_PAL); *(u16*)(PA_bgmap[screen][bg_select] + ((x) << 1) + ((y) << 6)) |= ((palette_number) << 12);}
| Changer la palette de 16 couleurs utilisée par une tile de la carte. Marche uniquement en mode 16 couleurs pour le Bg.
#define | PA_LoadTiledBitmap(screen, tiled_bitmap) PA_LoadBg(screen, 0, tiled_bitmap, SCREEN_TILES, bitmap, BG_256X256, 1, 1)
| Charger un bitmap converti avec gfx2gba, comme pour un fond normal, mais sans aucune optimisation. Plus la peine d'inclure la map dans ce cas. Attention, prend tout la mémoire des fonds.
#define | PA_LoadPAGfxRotBg(screen, bg_select, bg_name, wraparound)
| Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs
#define | PA_LoadLargeBg(screen, bg_select, bg_tiles, bg_map, color_mode, lx, ly)
| Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large)
#define | PA_LoadPAGfxLargeBg(screen, bg_number, bg_name)
| Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), converti avec PAGfx
#define | PA_LoadLargeBgEx(screen, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly)
| Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), mais ici on met soi-meme la taille des tiles

## Fonctions

void | PA_ResetBgSys (void)
| Reinitialise le systeme de fonds
void | PA_InitBg (bool screen, u8 bg_select, u8 bg_size, bool wraparound, bool color_mode)
| Initialise un fond. A faire uniquement après avoir chargé un tileset et une map.
void | PA_LoadBgTilesEx (bool screen, u8 bg_select, void *bg_tiles, u16 size)
| Charger un tileset en mémoire avec une taille donnée
void | PA_ReLoadBgTiles (bool screen, u8 bg_select, void *bg_tiles)
| ReCharger un tileset en mémoire
void | PA_DeleteTiles (bool 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 (bool 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 (bool screen, u8 bg_select)
| Effacer un fond complètement (tiles + map + cacher)
void | PA_LoadBgMap (bool screen, u8 bg_select, void *bg_map, u8 bg_size)
| Charge la carte d'un fond
void | PA_SetBgRot (bool screen, u8 bg_select, s32 x_scroll, s32 y_scroll, s32 x_rotcentre, s32 y_rotcentre, s16 bg_angle, s32 bg_zoom)
void | PA_SetMapTile (bool 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_SetMapTileAll (bool screen, u8 bg_select, s16 x, s16 y, u16 tile_info)
| Change les infos tiles utilisée pour une tile donnée dans la map
void | PA_SetLargeMapTile (bool 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_SetMapTileEx (bool screen, u8 bg_select, s16 x, s16 y, u16 tile_number, bool hflip, bool vflip, u8 palette_number)
void | PA_InfLargeScrollX (bool screen, u8 bg_select, s32 x)
| Déplacer un fond à scrolling 'infini' horizontalement. Doit etre initialisé avec PA_LoadLargeBg.
void | PA_InfLargeScrollY (bool screen, u8 bg_select, s32 y)
| Déplacer un fond à scrolling 'infini' verticalement. Doit etre initialisé avec PA_LoadLargeBg.
void | PA_InfLargeScrollXY (bool screen, u8 bg_select, s32 x, s32 y)
| Déplacer un fond à scrolling 'infini' horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg.
void | PA_LargeScrollX (bool screen, u8 bg_select, s32 x)
| Déplacer un grand fond à scrolling horizontalement.Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void | PA_LargeScrollY (bool screen, u8 bg_select, s32 y)
| Déplacer un grand fond à scrolling verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void | PA_LargeScrollXY (bool screen, u8 bg_select, s32 x, s32 y)
| Déplacer un grand fond à scrolling horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void | PA_InitParallaxX (bool screen, s32 bg0, s32 bg1, s32 bg2, s32 bg3)
| Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller
void | PA_InitParallaxY (bool screen, s32 bg0, s32 bg1, s32 bg2, s32 bg3)
| Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller
void | PA_ParallaxScrollX (bool screen, s32 x)
| Déplacer les fonds activés pour le parallax...
void | PA_ParallaxScrollY (bool screen, s32 y)
| Déplacer les fonds activés pour le parallax...
void | PA_ParallaxScrollXY (bool screen, s32 x, s32 y)
| Déplacer les fonds activés pour le parallax...
void | PA_SetBgPrio (bool screen, u8 bg, u8 prio)
| Changer la priorité d'un fond
void | PA_CreateBgFromTiles (bool screen, u8 bg_select, u8 bg_tiles, void *bg_map, u8 bg_size)
void | PA_ClearBg (bool screen, u8 bg_select)
| Effacer un fond donné (juste la map)

## Description détaillée

Load tiles, a map, scroll it...

## Documentation des macro

#define PA_BGScrollX | ( | screen,
|  | bg_number,
|  | x |  | ) | _REG16(REG_BGSCROLLX + ((screen) * 0x1000) + ((bg_number) << 2)) = (x)&1023

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

#define PA_BGScrollXY | ( | screen,
|  | bg_number,
|  | x,
|  | y |  | ) | {PA_BGScrollX(screen, bg_number, x); PA_BGScrollY(screen, bg_number, y);}

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

#define PA_BGScrollY | ( | screen,
|  | bg_number,
|  | y |  | ) | _REG16(REG_BGSCROLLY + ((screen) * 0x1000) + ((bg_number) << 2)) = (y)&1023

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

#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_LoadLargeBg | ( | screen,
|  | bg_select,
|  | bg_tiles,
|  | bg_map,
|  | color_mode,
|  | lx,
|  | ly |  | ) |

Valeur:

    {\
    PA_LoadSimpleBg(screen, bg_select, bg_tiles, Blank, BG_512X256, 0, color_mode);\
    PA_InitLargeBg(screen, bg_select, lx, ly, (void*)bg_map);}

Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large)

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)
  | color_mode | Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256
  | lx | Largeur, en tiles. Un fond de 512 pixels de large fera 64 tiles de large.
  | ly | Hauteur, en tiles. Un fond de 512 pixels de hauy fera 64 tiles de haut.

#define PA_LoadLargeBgEx | ( | screen,
|  | bg_select,
|  | bg_tiles,
|  | tile_size,
|  | bg_map,
|  | color_mode,
|  | lx,
|  | ly |  | ) |

Valeur:

    {\
    PA_LoadBg(screen, bg_select, bg_tiles, tile_size, Blank, BG_512X256, 0, color_mode);\
    PA_InitLargeBg(screen, bg_select, lx, ly, (void*)bg_map);}

Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), mais ici on met soi-meme la taille des tiles

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)
  | color_mode | Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256
  | lx | Largeur, en tiles. Un fond de 512 pixels de large fera 64 tiles de large.
  | ly | Hauteur, en tiles. Un fond de 512 pixels de hauy fera 64 tiles de haut.

#define PA_LoadPAGfxLargeBg | ( | screen,
|  | bg_number,
|  | bg_name |  | ) |

Valeur:

    {\
           PA_LoadBgPal(screen, bg_number, (void*)bg_name##_Pal); \
           PA_LoadLargeBg(screen, bg_number, bg_name##_Tiles, bg_name##_Map, 1, (bg_name##_Width) >> 3, (bg_name##_Height) >> 3);}

Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), converti avec PAGfx

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg_number | Numéro du fond que l'on veut charger (0-3)
  | bg_name | Nom du fond dans PAGfx

#define PA_LoadPAGfxRotBg | ( | screen,
|  | bg_select,
|  | bg_name,
|  | wraparound |  | ) |

Valeur:

    {\
    PA_LoadNormalBgPal(screen, (void*)bg_name##_Pal);\
    PA_LoadRotBg(screen, bg_select, bg_name##_Tiles, bg_name##_Map, PA_GetPAGfxRotBgSize(bg_name##_Width), wraparound);\
    }

Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg_select | Numéro du fond que l'on veut charger
  | bg_name | Nom du fond, comme bg0
  | wraparound | Si le fond boucle ou non.

#define PA_LoadRotBg | ( | screen,
|  | bg_select,
|  | bg_tiles,
|  | bg_map,
|  | bg_size,
|  | wraparound |  | ) |

Valeur:

    {\
    PA_DeleteBg(screen, bg_select);\
    PA_LoadBgTiles(screen, bg_select, bg_tiles); \
    PA_LoadRotBgMap(screen, bg_select, (void*)bg_map, bg_size); \
    PA_InitBg(screen, bg_select, bg_size, wraparound, 1);\
    PA_SetBgRot(screen, bg_select, 0, 0, 0, 0, 0, 256);\
    }

Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg_select | Numéro du fond que l'on veut charger
  | 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. Utiliser les macros suivantes : BG_ROT_128X128, ou 256X256, 512X512, ou enfin 1024X1024
  | wraparound | Si le fond boucle ou non.

#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##_Width, bg_name##_Height), 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_LoadTiledBitmap | ( | screen,
|  | tiled_bitmap |  | ) | PA_LoadBg(screen, 0, tiled_bitmap, SCREEN_TILES, bitmap, BG_256X256, 1, 1)

Charger un bitmap converti avec gfx2gba, comme pour un fond normal, mais sans aucune optimisation. Plus la peine d'inclure la map dans ce cas. Attention, prend tout la mémoire des fonds.

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | tiled_bitmap | Nom du fond donné par gfx2gba, du genre (splashTiles)

#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_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);}

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

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

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)

#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);}

Flipper une tile de la carte, verticalement

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
  | vflip | Mettre la tile de la carte en flip vertical

#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_ClearBg | ( | bool | 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...

inline void PA_DeleteBg | ( | bool | screen,
|  | u8 | bg_select
| ) | `[inline]`

Effacer un fond complètement (tiles + map + cacher)

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 | ( | bool | 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 | ( | bool | 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)

void PA_InfLargeScrollX | ( | bool | screen,
|  | u8 | bg_select,
|  | s32 | x
| ) |

Déplacer un fond à scrolling 'infini' horizontalement. Doit etre initialisé avec PA_LoadLargeBg.

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)
  | x | Valeur X à déplacer

inline void PA_InfLargeScrollXY | ( | bool | screen,
|  | u8 | bg_select,
|  | s32 | x,
|  | s32 | y
| ) | `[inline]`

Déplacer un fond à scrolling 'infini' horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg.

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)
  | x | Valeur X à déplacer
  | y | Valeur Y à déplacer

void PA_InfLargeScrollY | ( | bool | screen,
|  | u8 | bg_select,
|  | s32 | y
| ) |

Déplacer un fond à scrolling 'infini' verticalement. Doit etre initialisé avec PA_LoadLargeBg.

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)
  | y | Valeur Y à déplacer

void PA_InitBg | ( | bool | screen,
|  | u8 | bg_select,
|  | u8 | bg_size,
|  | bool | wraparound,
|  | bool | 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

inline void PA_InitParallaxX | ( | bool | screen,
|  | s32 | bg0,
|  | s32 | bg1,
|  | s32 | bg2,
|  | s32 | bg3
| ) | `[inline]`

Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg0 | Valeur pour le premier fond (0). 256 met en vitesse normal, moins pour moins lent (128 pour moitié de vitesse), plus pour plus rapide (512 équivaut à 2 fois plus vite). On peut utiliser des valeurs négatives. 0 désactive le scrolling parallax pour ce fond
  | bg1 | Idem, pour le Fond 1
  | bg2 | Idem, pour le Fond 2
  | bg3 | Idem, pour le Fond 3

inline void PA_InitParallaxY | ( | bool | screen,
|  | s32 | bg0,
|  | s32 | bg1,
|  | s32 | bg2,
|  | s32 | bg3
| ) | `[inline]`

Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | bg0 | Valeur pour le premier fond (0). 256 met en vitesse normal, moins pour moins lent (128 pour moitié de vitesse), plus pour plus rapide (512 équivaut à 2 fois plus vite). On peut utiliser des valeurs négatives. 0 désactive le scrolling parallax pour ce fond
  | bg1 | Idem, pour le Fond 1
  | bg2 | Idem, pour le Fond 2
  | bg3 | Idem, pour le Fond 3

void PA_LargeScrollX | ( | bool | screen,
|  | u8 | bg_select,
|  | s32 | x
| ) |

Déplacer un grand fond à scrolling horizontalement.Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

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)
  | x | Valeur X à déplacer

inline void PA_LargeScrollXY | ( | bool | screen,
|  | u8 | bg_select,
|  | s32 | x,
|  | s32 | y
| ) | `[inline]`

Déplacer un grand fond à scrolling horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

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)
  | x | Valeur X à déplacer
  | y | Valeur Y à déplacer

void PA_LargeScrollY | ( | bool | screen,
|  | u8 | bg_select,
|  | s32 | y
| ) |

Déplacer un grand fond à scrolling verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

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)
  | y | Valeur Y à déplacer

void PA_LoadBgMap | ( | bool | 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 | ( | bool | screen,
|  | u8 | bg_select,
|  | void * | bg_tiles,
|  | u16 | 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...

inline void PA_ParallaxScrollX | ( | bool | screen,
|  | s32 | x
| ) | `[inline]`

Déplacer les fonds activés pour le parallax...

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Valeur X à déplacer

inline void PA_ParallaxScrollXY | ( | bool | screen,
|  | s32 | x,
|  | s32 | y
| ) | `[inline]`

Déplacer les fonds activés pour le parallax...

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | x | Valeur X à déplacer
  | y | Valeur Y à déplacer

inline void PA_ParallaxScrollY | ( | bool | screen,
|  | s32 | y
| ) | `[inline]`

Déplacer les fonds activés pour le parallax...

Paramètres:

  | screen | Choix de l'écran (0 ou 1)
  | y | Valeur Y à déplacer

void PA_ReLoadBgTiles | ( | bool | 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)

inline void PA_SetBgPrio | ( | bool | 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_SetLargeMapTile | ( | bool | 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 | ( | bool | 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

inline void PA_SetMapTileAll | ( | bool | screen,
|  | u8 | bg_select,
|  | s16 | x,
|  | s16 | y,
|  | u16 | tile_info
| ) | `[inline]`

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