libtonc: Memory mapped arrays

Tonclib

Memory mapped arrays
[Memory Map]

These are some macros for easier access of various memory sections. They're all arrays or matrices, using the types that would be the most natural for that concept. More...

Palette

#define pal_bg_mem   ((COLOR*)MEM_PAL)
 Background palette.
#define pal_obj_mem   ((COLOR*)MEM_PAL_OBJ)
 Object palette.
#define pal_bg_bank   ((PALBANK*)MEM_PAL)
 Background palette matrix.
#define pal_obj_bank   ((PALBANK*)MEM_PAL_OBJ)
 Object palette matrix.

VRAM

#define tile_mem   ( (CHARBLOCK*)MEM_VRAM)
 Charblocks, 4bpp tiles.
#define tile8_mem   ((CHARBLOCK8*)MEM_VRAM)
 Charblocks, 8bpp tiles.
#define tile_mem_obj   ( (CHARBLOCK*)MEM_VRAM_OBJ)
 Object charblocks, 4bpp tiles.
#define tile8_mem_obj   ((CHARBLOCK8*)MEM_VRAM_OBJ)
 Object charblocks, 4bpp tiles.
#define se_mem   ((SCREENBLOCK*)MEM_VRAM)
 Screenblocks as arrays.
#define se_mat   ((SCREENMAT*)MEM_VRAM)
 Screenblock as matrices.
#define vid_mem   ((COLOR*)MEM_VRAM)
 Main mode 3/5 frame as an array.
#define m3_mem   ((M3LINE*)MEM_VRAM)
 Mode 3 frame as a matrix.
#define m4_mem   ((M4LINE*)MEM_VRAM)
 Mode 4 first page as a matrix.
#define m5_mem   ((M5LINE*)MEM_VRAM)
 Mode 5 first page as a matrix.
#define vid_mem_front   ((COLOR*)MEM_VRAM)
 First page array.
#define vid_mem_back   ((COLOR*)MEM_VRAM_BACK)
 Second page array.
#define m4_mem_back   ((M4LINE*)MEM_VRAM_BACK)
 Mode 4 second page as a matrix.
#define m5_mem_back   ((M5LINE*)MEM_VRAM_BACK)
 Mode 5 second page as a matrix.

OAM

#define oam_mem   ((OBJ_ATTR*)MEM_OAM)
 Object attribute memory.
#define obj_mem   ((OBJ_ATTR*)MEM_OAM)
 Object attribute memory.
#define obj_aff_mem   ((OBJ_AFFINE*)MEM_OAM)
 Object affine memory.

ROM

#define rom_mem   ((u16*)MEM_ROM)
 ROM pointer.

SRAM

#define sram_mem   ((u8*)MEM_SRAM)
 SRAM pointer.

Detailed Description

These are some macros for easier access of various memory sections. They're all arrays or matrices, using the types that would be the most natural for that concept.


Define Documentation

#define m3_mem   ((M3LINE*)MEM_VRAM)

Mode 3 frame as a matrix.

m3_mem[y][x] = pixel (x, y) ( COLOR )

#define m4_mem   ((M4LINE*)MEM_VRAM)

Mode 4 first page as a matrix.

m4_mem[y][x] = pixel (x, y) ( u8 )

Note:
This is a byte-buffer. Not to be used for writing.

#define m4_mem_back   ((M4LINE*)MEM_VRAM_BACK)

Mode 4 second page as a matrix.

m4_mem[y][x] = pixel (x, y) ( u8 )

Note:
This is a byte-buffer. Not to be used for writing.

#define m5_mem   ((M5LINE*)MEM_VRAM)

Mode 5 first page as a matrix.

m5_mem[y][x] = pixel (x, y) ( COLOR )

#define m5_mem_back   ((M5LINE*)MEM_VRAM_BACK)

Mode 5 second page as a matrix.

m5_mem[y][x] = pixel (x, y) ( COLOR )

#define oam_mem   ((OBJ_ATTR*)MEM_OAM)

Object attribute memory.

oam_mem[i] = object i ( OBJ_ATTR )

#define obj_aff_mem   ((OBJ_AFFINE*)MEM_OAM)

Object affine memory.

obj_aff_mem[i] = object matrix i ( OBJ_AFFINE )

#define obj_mem   ((OBJ_ATTR*)MEM_OAM)

Object attribute memory.

oam_mem[i] = object i ( OBJ_ATTR )

#define pal_bg_bank   ((PALBANK*)MEM_PAL)

Background palette matrix.

pal_bg_bank[y] = bank y ( COLOR[ ] )
pal_bg_bank[y][x] = color color y*16+x ( COLOR )

#define pal_bg_mem   ((COLOR*)MEM_PAL)

Background palette.

pal_bg_mem[i] = color i ( COLOR )

#define pal_obj_bank   ((PALBANK*)MEM_PAL_OBJ)

Object palette matrix.

pal_obj_bank[y] = bank y ( COLOR[ ] )
pal_obj_bank[y][x] = color y*16+x ( COLOR )

#define pal_obj_mem   ((COLOR*)MEM_PAL_OBJ)

Object palette.

pal_obj_mem[i] = color i ( COLOR )

#define se_mat   ((SCREENMAT*)MEM_VRAM)

Screenblock as matrices.

se_mat[s] = screenblock s ( SCR_ENTRY[ ][ ] )
se_mat[s][y][x] = screenblock s, entry (x,y) ( SCR_ENTRY )

#define se_mem   ((SCREENBLOCK*)MEM_VRAM)

Screenblocks as arrays.

se_mem[y] = screenblock y ( SCR_ENTRY[ ] )
se_mem[y][x] = screenblock y, entry x ( SCR_ENTRY )

#define tile8_mem   ((CHARBLOCK8*)MEM_VRAM)

Charblocks, 8bpp tiles.

tile_mem[y] = charblock y ( TILE[ ] )
tile_mem[y][x] = block y, tile x ( TILE )

#define tile8_mem_obj   ((CHARBLOCK8*)MEM_VRAM_OBJ)

Object charblocks, 4bpp tiles.

tile_mem[y] = charblock y ( TILE[ ] )
tile_mem[y][x] = block y, tile x ( TILE )

#define tile_mem   ( (CHARBLOCK*)MEM_VRAM)

Charblocks, 4bpp tiles.

tile_mem[y] = charblock y ( TILE[ ] )
tile_mem[y][x] = block y, tile x ( TILE )

#define tile_mem_obj   ( (CHARBLOCK*)MEM_VRAM_OBJ)

Object charblocks, 4bpp tiles.

tile_mem[y] = charblock y ( TILE[ ] )
tile_mem[y][x] = block y, tile x ( TILE )

#define vid_mem   ((COLOR*)MEM_VRAM)

Main mode 3/5 frame as an array.

vid_mem[i] = pixel i ( COLOR )


Generated on Mon Aug 25 17:03:57 2008 for libtonc by  doxygen 1.5.3