libtonc

Data Structures

struct  POINT16
 Regular bg points; range: :0010 - :001F. More...
 
struct  DMA_REC
 DMA struct; range: 0400:00B0 - 0400:00DF. More...
 
struct  TMR_REC
 Timer struct, range: 0400:0100 - 0400:010F. More...
 
struct  OBJ_ATTR
 Object attributes. More...
 
struct  OBJ_AFFINE
 Object affine parameters. More...
 

Macros

#define NULL   (void*)0
 

Variables

u32 BLOCK::data [8]
 
u32 TILE::data [8]
 
u32 TILE8::data [16]
 
s16 AFF_SRC::sx
 Horizontal zoom (8.8f)
 
s16 AFF_SRC::sy
 Vertical zoom (8.8f)
 
u16 AFF_SRC::alpha
 Counter-clockwise angle ( range [0, 0xFFFF] )
 
s32 AFF_SRC_EX::tex_x
 Texture-space anchor, x coordinate (.8f)
 
s32 AFF_SRC_EX::tex_y
 Texture-space anchor, y coordinate (.8f)
 
s16 AFF_SRC_EX::scr_x
 Screen-space anchor, x coordinate (.0f)
 
s16 AFF_SRC_EX::scr_y
 Screen-space anchor, y coordinate (.0f)
 
s16 AFF_SRC_EX::sx
 Horizontal zoom (8.8f)
 
s16 AFF_SRC_EX::sy
 Vertical zoom (8.8f)
 
u16 AFF_SRC_EX::alpha
 Counter-clockwise angle ( range [0, 0xFFFF] )
 
s16 AFF_DST::pa
 
s16 AFF_DST::pb
 
s16 AFF_DST::pc
 
s16 AFF_DST::pd
 
s16 AFF_DST_EX::pa
 
s16 AFF_DST_EX::pb
 
s16 AFF_DST_EX::pc
 
s16 AFF_DST_EX::pd
 
s32 AFF_DST_EX::dx
 
s32 AFF_DST_EX::dy
 
s16 POINT16::x
 
s16 POINT16::y
 
const void * DMA_REC::src
 
void * DMA_REC::dst
 
u32 DMA_REC::cnt
 
u16   TMR_REC::start 
 
u16   TMR_REC::count 
 
union { 
 
   u16   start 
 
   u16   count 
 
TMR_REC::PACKED 
 
u16 TMR_REC::cnt
 
u16 OBJ_ATTR::attr0
 
u16 OBJ_ATTR::attr1
 
u16 OBJ_ATTR::attr2
 
s16 OBJ_ATTR::fill
 
u16 OBJ_AFFINE::fill0 [3]
 
s16 OBJ_AFFINE::pa
 
u16 OBJ_AFFINE::fill1 [3]
 
s16 OBJ_AFFINE::pb
 
u16 OBJ_AFFINE::fill2 [3]
 
s16 OBJ_AFFINE::pc
 
u16 OBJ_AFFINE::fill3 [3]
 
s16 OBJ_AFFINE::pd
 

IO register types

typedef struct POINT16 POINT16
 Regular bg points; range: :0010 - :001F.
 
typedef struct POINT16 BG_POINT
 Regular bg points; range: :0010 - :001F.
 
typedef struct AFF_DST_EX BG_AFFINE
 Affine parameters for backgrounds; range : 0400:0020 - 0400:003F.
 
typedef struct DMA_REC DMA_REC
 DMA struct; range: 0400:00B0 - 0400:00DF.
 
typedef struct TMR_REC TMR_REC
 Timer struct, range: 0400:0100 - 0400:010F.
 

PAL types

typedef COLOR PALBANK[16]
 Palette bank type, for 16-color palette banks.
 

VRAM array types

These types allow VRAM access as arrays or matrices in their most natural types.

typedef SCR_ENTRY SCREENLINE[32]
 
typedef SCR_ENTRY SCREENMAT[32][32]
 
typedef SCR_ENTRY SCREENBLOCK[1024]
 
typedef COLOR M3LINE[240]
 
typedef u8 M4LINE[240]
 
typedef COLOR M5LINE[160]
 
typedef TILE CHARBLOCK[512]
 
typedef TILE8 CHARBLOCK8[256]
 

OAM structs

Note
These OBJ_ATTR and OBJ_AFFINE structs are interlaced in OAM. When using affine objs, struct/DMA/mem copies will give bad results.
typedef struct OBJ_ATTR OBJ_ATTR
 Object attributes.
 
typedef struct OBJ_AFFINE OBJ_AFFINE
 Object affine parameters.
 

Detailed Description

These types are used for memory mapping of VRAM, affine registers and other areas that would benefit from logical memory mapping.

Typedef Documentation

◆ OBJ_AFFINE

typedef struct OBJ_AFFINE OBJ_AFFINE

Object affine parameters.

Note
most fields are padding for the interlace with OBJ_ATTR.

◆ OBJ_ATTR

typedef struct OBJ_ATTR OBJ_ATTR

Object attributes.

Note
attribute 3 is padding for the interlace with OBJ_AFFINE. If not using affine objects, it can be used as a free field

◆ TMR_REC

typedef struct TMR_REC TMR_REC

Timer struct, range: 0400:0100 - 0400:010F.

Note
The attribute is required, because union's counted as u32 otherwise.