PAlib: Référence du fichier PA_Tile.h

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

# Référence du fichier PA_Tile.h

Everything concerning the Bg Tile modes. Plus de détails...

Aller au code source de ce fichier.

## Structures de données

struct | scrollpositions

## Macros

#define | CharBaseBlock(screen, n) (((n)*0x4000) + 0x6000000 + (0x200000 * screen))
#define | ScreenBaseBlock(screen, n) (((n)*0x800) + 0x6000000 + (0x200000 * screen))
#define | BG_COLOR16 0x00
#define | BG_COLOR256 0x80
#define | CHAR_SHIFT 2
#define | SCREEN_SHIFT 8
#define | WRAPAROUND 0x1
#define | SCREEN_TILES 24576
#define | REG_BGSCREEN0 0x04000000
#define | REG_BGSCREEN1 0x04001000
#define | REG_BGSCREEN(screen) (0x04000000 + (screen * 0x1000))
#define | REG_BGCNT(screen, bg_number) (0x4000008 + (screen * 0x1000) + (bg_number << 1))
#define | REG_BGSCROLLX 0x4000010
#define | REG_BGSCROLLY 0x4000012
#define | BG_256X256 0
#define | BG_512X256 1
#define | BG_256X512 2
#define | BG_512X512 3
#define | BG_ROT_128X128 0
#define | BG_ROT_256X256 1
#define | BG_ROT_512X512 2
#define | BG_ROT_1024X1024 3
#define | TILE_N 1023
#define | TILE_PAL 61440
#define | TILE_HFLIP 1024
#define | TILE_VFLIP 2048
#define | PA_BGXX(screen, bg) _REG32(0x4000008 + (0x1000 * screen) + (bg << 4))
#define | PA_BGXY(screen, bg) _REG32(0x400000C + (0x1000 * screen) + (bg << 4))
#define | PA_BGXPA(screen, bg) _REG16(0x4000000 + (0x1000 * screen) + (bg << 4))
#define | PA_BGXPB(screen, bg) _REG16(0x4000002 + (0x1000 * screen) + (bg << 4))
#define | PA_BGXPC(screen, bg) _REG16(0x4000004 + (0x1000 * screen) + (bg << 4))
#define | PA_BGXPD(screen, bg) _REG16(0x4000006 + (0x1000 * screen) + (bg << 4))
#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

u8 | PA_GetPAGfxBgSize (u16 width, u16 height)
u8 | PA_GetPAGfxRotBgSize (u16 width)
void | PA_LoadRotBgMap (bool screen, u8 bg_select, void *bg_map, u8 bg_size)
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)
void | PA_InitLargeBg (bool screen, u8 bg_select, s32 lx, s32 ly, void *bg_map)

## Variables

u32 | PA_bgmap [2][4]
u8 | tilesetchar [2][4]
u16 | bg_sizes [4]
u8 | bg_place [4]
u16 * | PA_DrawBg [2]
bool | charblocks [2][70]
u16 | tilesetsize [2][4]
u16 | mapsize [2][4]
u8 | mapchar [2][4]
u8 | charsetstart [2]
s32 | PA_parallaxX [2][4]
s32 | PA_parallaxY [2][4]
scrollpositions | scrollpos [2][4]

## Description détaillée

Everything concerning the Bg Tile modes.

This file contains all the macros and variables regarding Tile modes (0-2), loading tiles and Bg, etc...