video.h File Reference

contains the basic defnitions for controlling the video hardware. More...

#include <nds/ndstypes.h>
#include <nds/arm9/sassert.h>

Defines

#define ARGB16(a, r, g, b)   ( ((a) << 15) | (r)|((g)<<5)|((b)<<10))
 Macro to convert 5 bit r g b components plus 1 bit alpha into a single 16 bit ARGB triplet.
#define BG_GFX   ((u16*)0x6000000)
 background graphics memory
#define BG_GFX_SUB   ((u16*)0x6200000)
 background graphics memory (sub engine)
#define BG_PALETTE   ((u16*)0x05000000)
 background palette memory
#define BG_PALETTE_SUB   ((u16*)0x05000400)
 background palette memory (sub engine)
#define OAM   ((u16*)0x07000000)
 pointer to Object Attribute Memory
#define OAM_SUB   ((u16*)0x07000400)
 pointer to Object Attribute Memory (Sub engine)
#define RGB15(r, g, b)   ((r)|((g)<<5)|((b)<<10))
 Macro to convert 5 bit r g b components into a single 15 bit RGB triplet.
#define SCREEN_HEIGHT   192
 Screen height in pixels.
#define SCREEN_WIDTH   256
 Screen width in pixels.
#define SPRITE_GFX   ((u16*)0x6400000)
 sprite graphics memory
#define SPRITE_GFX_SUB   ((u16*)0x6600000)
 sprite graphics memory (sub engine)
#define SPRITE_PALETTE   ((u16*)0x05000200)
 sprite palette memory
#define SPRITE_PALETTE_SUB   ((u16*)0x05000600)
 sprite palette memory (sub engine)
#define VRAM_A   ((u16*)0x6800000)
 pointer to vram bank A mapped as LCD
#define VRAM_B   ((u16*)0x6820000)
 pointer to vram bank B mapped as LCD
#define VRAM_C   ((u16*)0x6840000)
 pointer to vram bank C mapped as LCD
#define VRAM_D   ((u16*)0x6860000)
 pointer to vram bank D mapped as LCD
#define VRAM_E   ((u16*)0x6880000)
 pointer to vram bank E mapped as LCD
#define VRAM_E_EXT_PALETTE   ((_ext_palette *)VRAM_E)
 Used for accessing vram E as an extended palette.
#define VRAM_F   ((u16*)0x6890000)
 pointer to vram bank F mapped as LCD
#define VRAM_F_EXT_PALETTE   ((_ext_palette *)VRAM_F)
 Used for accessing vram F as an extended palette.
#define VRAM_F_EXT_SPR_PALETTE   ((_palette *)VRAM_F)
 Used for accessing vram F as an extended sprite palette.
#define VRAM_G   ((u16*)0x6894000)
 pointer to vram bank G mapped as LCD
#define VRAM_G_EXT_PALETTE   ((_ext_palette *)VRAM_G)
 Used for accessing vram G as an extended palette.
#define VRAM_G_EXT_SPR_PALETTE   ((_palette *)VRAM_G)
 Used for accessing vram G as an extended sprite palette.
#define VRAM_H   ((u16*)0x6898000)
 pointer to vram bank H mapped as LCD
#define VRAM_H_EXT_PALETTE   ((_ext_palette *)VRAM_H)
 Used for accessing vram H as an extended palette.
#define VRAM_I   ((u16*)0x68A0000)
 pointer to vram bank I mapped as LCD
#define VRAM_I_EXT_SPR_PALETTE   ((_palette *)VRAM_I)
 Used for accessing vram I as an extended sprite palette.

Typedefs

typedef _palette _ext_palette [16]
 An array of 16 256-color palettes.
typedef u16 _palette [256]
 an array of 256 15-bit RGB values

Enumerations

enum  VideoMode {
  MODE_0_2D = 0x10000,
  MODE_1_2D = 0x10001,
  MODE_2_2D = 0x10002,
  MODE_3_2D = 0x10003,
  MODE_4_2D = 0x10004,
  MODE_5_2D = 0x10005,
  MODE_6_2D = 0x10006,
  MODE_0_3D = (0x10000 | (1 << 8) | (1<<3) ),
  MODE_1_3D = (0x10001 | (1 << 8) | (1<<3) ),
  MODE_2_3D = (0x10002 | (1 << 8) | (1<<3) ),
  MODE_3_3D = (0x10003 | (1 << 8) | (1<<3) ),
  MODE_4_3D = (0x10004 | (1 << 8) | (1<<3) ),
  MODE_5_3D = (0x10005 | (1 << 8) | (1<<3) ),
  MODE_6_3D = (0x10006 | (1 << 8) | (1<<3) ),
  MODE_FIFO = (3<<16),
  MODE_FB0 = (0x00020000),
  MODE_FB1 = (0x00060000),
  MODE_FB2 = (0x000A0000),
  MODE_FB3 = (0x000E0000)
}
 

The allowed video modes of the 2D processors

More...
enum  VRAM_A_TYPE {
  VRAM_A_LCD = 0,
  VRAM_A_MAIN_BG = 1,
  VRAM_A_MAIN_BG_0x06000000 = 1 | (( 0 )<<3),
  VRAM_A_MAIN_BG_0x06020000 = 1 | (( 1 )<<3),
  VRAM_A_MAIN_BG_0x06040000 = 1 | (( 2 )<<3),
  VRAM_A_MAIN_BG_0x06060000 = 1 | (( 3 )<<3),
  VRAM_A_MAIN_SPRITE = 2,
  VRAM_A_MAIN_SPRITE_0x06400000 = 2 | (( 0 )<<3),
  VRAM_A_MAIN_SPRITE_0x06420000 = 2 | (( 1 )<<3),
  VRAM_A_TEXTURE = 3,
  VRAM_A_TEXTURE_SLOT0 = 3 | (( 0 )<<3),
  VRAM_A_TEXTURE_SLOT1 = 3 | (( 1 )<<3),
  VRAM_A_TEXTURE_SLOT2 = 3 | (( 2 )<<3),
  VRAM_A_TEXTURE_SLOT3 = 3 | (( 3 )<<3)
}
 

Allowed VRAM bank A modes.

More...
enum  VRAM_B_TYPE {
  VRAM_B_LCD = 0,
  VRAM_B_MAIN_BG = 1 | (( 1 )<<3),
  VRAM_B_MAIN_BG_0x06000000 = 1 | (( 0 )<<3),
  VRAM_B_MAIN_BG_0x06020000 = 1 | (( 1 )<<3),
  VRAM_B_MAIN_BG_0x06040000 = 1 | (( 2 )<<3),
  VRAM_B_MAIN_BG_0x06060000 = 1 | (( 3 )<<3),
  VRAM_B_MAIN_SPRITE = 2,
  VRAM_B_MAIN_SPRITE_0x06400000 = 2 | (( 0 )<<3),
  VRAM_B_MAIN_SPRITE_0x06420000 = 2 | (( 1 )<<3),
  VRAM_B_TEXTURE = 3 | (( 1 )<<3),
  VRAM_B_TEXTURE_SLOT0 = 3 | (( 0 )<<3),
  VRAM_B_TEXTURE_SLOT1 = 3 | (( 1 )<<3),
  VRAM_B_TEXTURE_SLOT2 = 3 | (( 2 )<<3),
  VRAM_B_TEXTURE_SLOT3 = 3 | (( 3 )<<3)
}
 

Allowed VRAM bank B modes.

More...
enum  VRAM_C_TYPE {
  VRAM_C_LCD = 0,
  VRAM_C_MAIN_BG = 1 | (( 2 )<<3),
  VRAM_C_MAIN_BG_0x06000000 = 1 | (( 0 )<<3),
  VRAM_C_MAIN_BG_0x06020000 = 1 | (( 1 )<<3),
  VRAM_C_MAIN_BG_0x06040000 = 1 | (( 2 )<<3),
  VRAM_C_MAIN_BG_0x06060000 = 1 | (( 3 )<<3),
  VRAM_C_ARM7 = 2,
  VRAM_C_ARM7_0x06000000 = 2 | (( 0 )<<3),
  VRAM_C_ARM7_0x06020000 = 2 | (( 1 )<<3),
  VRAM_C_SUB_BG = 4,
  VRAM_C_SUB_BG_0x06200000 = 4 | (( 0 )<<3),
  VRAM_C_TEXTURE = 3 | (( 2 )<<3),
  VRAM_C_TEXTURE_SLOT0 = 3 | (( 0 )<<3),
  VRAM_C_TEXTURE_SLOT1 = 3 | (( 1 )<<3),
  VRAM_C_TEXTURE_SLOT2 = 3 | (( 2 )<<3),
  VRAM_C_TEXTURE_SLOT3 = 3 | (( 3 )<<3)
}
 

Allowed VRAM bank C modes.

More...
enum  VRAM_D_TYPE {
  VRAM_D_LCD = 0,
  VRAM_D_MAIN_BG = 1 | (( 3 )<<3),
  VRAM_D_MAIN_BG_0x06000000 = 1 | (( 0 )<<3),
  VRAM_D_MAIN_BG_0x06020000 = 1 | (( 1 )<<3),
  VRAM_D_MAIN_BG_0x06040000 = 1 | (( 2 )<<3),
  VRAM_D_MAIN_BG_0x06060000 = 1 | (( 3 )<<3),
  VRAM_D_ARM7 = 2 | (( 1 )<<3),
  VRAM_D_ARM7_0x06000000 = 2 | (( 0 )<<3),
  VRAM_D_ARM7_0x06020000 = 2 | (( 1 )<<3),
  VRAM_D_SUB_SPRITE = 4,
  VRAM_D_TEXTURE = 3 | (( 3 )<<3),
  VRAM_D_TEXTURE_SLOT0 = 3 | (( 0 )<<3),
  VRAM_D_TEXTURE_SLOT1 = 3 | (( 1 )<<3),
  VRAM_D_TEXTURE_SLOT2 = 3 | (( 2 )<<3),
  VRAM_D_TEXTURE_SLOT3 = 3 | (( 3 )<<3)
}
 

Allowed VRAM bank D modes.

More...
enum  VRAM_E_TYPE {
  VRAM_E_LCD = 0,
  VRAM_E_MAIN_BG = 1,
  VRAM_E_MAIN_SPRITE = 2,
  VRAM_E_TEX_PALETTE = 3,
  VRAM_E_BG_EXT_PALETTE = 4
}
 

Allowed VRAM bank E modes.

More...
enum  VRAM_F_TYPE {
  VRAM_F_LCD = 0,
  VRAM_F_MAIN_BG = 1,
  VRAM_F_MAIN_BG_0x06000000 = 1 | (( 0 )<<3),
  VRAM_F_MAIN_BG_0x06004000 = 1 | (( 1 )<<3),
  VRAM_F_MAIN_BG_0x06010000 = 1 | (( 2 )<<3),
  VRAM_F_MAIN_BG_0x06014000 = 1 | (( 3 )<<3),
  VRAM_F_MAIN_SPRITE = 2,
  VRAM_F_MAIN_SPRITE_0x06400000 = 2 | (( 0 )<<3),
  VRAM_F_MAIN_SPRITE_0x06404000 = 2 | (( 1 )<<3),
  VRAM_F_MAIN_SPRITE_0x06410000 = 2 | (( 2 )<<3),
  VRAM_F_MAIN_SPRITE_0x06414000 = 2 | (( 3 )<<3),
  VRAM_F_TEX_PALETTE = 3,
  VRAM_F_TEX_PALETTE_SLOT0 = 3 | (( 0 )<<3),
  VRAM_F_TEX_PALETTE_SLOT1 = 3 | (( 1 )<<3),
  VRAM_F_TEX_PALETTE_SLOT4 = 3 | (( 2 )<<3),
  VRAM_F_TEX_PALETTE_SLOT5 = 3 | (( 3 )<<3),
  VRAM_F_BG_EXT_PALETTE = 4,
  VRAM_F_BG_EXT_PALETTE_SLOT01 = 4 | (( 0 )<<3),
  VRAM_F_BG_EXT_PALETTE_SLOT23 = 4 | (( 1 )<<3),
  VRAM_F_SPRITE_EXT_PALETTE = 5
}
 

Allowed VRAM bank F modes.

More...
enum  VRAM_G_TYPE {
  VRAM_G_LCD = 0,
  VRAM_G_MAIN_BG = 1,
  VRAM_G_MAIN_BG_0x06000000 = 1 | (( 0 )<<3),
  VRAM_G_MAIN_BG_0x06004000 = 1 | (( 1 )<<3),
  VRAM_G_MAIN_BG_0x06010000 = 1 | (( 2 )<<3),
  VRAM_G_MAIN_BG_0x06014000 = 1 | (( 3 )<<3),
  VRAM_G_MAIN_SPRITE = 2,
  VRAM_G_MAIN_SPRITE_0x06400000 = 2 | (( 0 )<<3),
  VRAM_G_MAIN_SPRITE_0x06404000 = 2 | (( 1 )<<3),
  VRAM_G_MAIN_SPRITE_0x06410000 = 2 | (( 2 )<<3),
  VRAM_G_MAIN_SPRITE_0x06414000 = 2 | (( 3 )<<3),
  VRAM_G_TEX_PALETTE = 3,
  VRAM_G_TEX_PALETTE_SLOT0 = 3 | (( 0 )<<3),
  VRAM_G_TEX_PALETTE_SLOT1 = 3 | (( 1 )<<3),
  VRAM_G_TEX_PALETTE_SLOT4 = 3 | (( 2 )<<3),
  VRAM_G_TEX_PALETTE_SLOT5 = 3 | (( 3 )<<3),
  VRAM_G_BG_EXT_PALETTE = 4,
  VRAM_G_BG_EXT_PALETTE_SLOT01 = 4 | (( 0 )<<3),
  VRAM_G_BG_EXT_PALETTE_SLOT23 = 4 | (( 1 )<<3),
  VRAM_G_SPRITE_EXT_PALETTE = 5
}
 

Allowed VRAM bank G modes.

More...
enum  VRAM_H_TYPE {
  VRAM_H_LCD = 0,
  VRAM_H_SUB_BG = 1,
  VRAM_H_SUB_BG_EXT_PALETTE = 2
}
 

Allowed VRAM bank H modes.

More...
enum  VRAM_I_TYPE {
  VRAM_I_LCD = 0,
  VRAM_I_SUB_BG_0x06208000 = 1,
  VRAM_I_SUB_SPRITE = 2,
  VRAM_I_SUB_SPRITE_EXT_PALETTE = 3
}
 

Allowed VRAM bank I modes.

More...

Functions

static void setBackdropColor (const u16 color)
 sets the backdrop color of the main engine.
static void setBackdropColorSub (const u16 color)
 sets the backdrop color of the sub engine.
void setBrightness (int screen, int level)
 sets the screens brightness.
static bool video3DEnabled ()
 determine if 3D is enabled
static void videoBgDisable (int number)
 disables the specified background on the main engine
static void videoBgDisableSub (int number)
 disables the specified background on the sub engine
static void videoBgEnable (int number)
 enables the specified background on the main engine
static void videoBgEnableSub (int number)
 enables the specified background on the sub engine
static int videoGetMode ()
 return the main 2D engine video mode
static int videoGetModeSub ()
 return the main 2D engine video mode
static void videoSetMode (u32 mode)
 the main 2D engine video mode
static void videoSetModeSub (u32 mode)
 the sub 2D engine video mode
u32 vramDefault ()
 Set VRAM banks to basic default.
void vramRestoreMainBanks (u32 vramTemp)
 Restore the main 4 bank modes.
static void vramSetBankA (VRAM_A_TYPE a)
 Set bank A to the indicated mapping.
static void vramSetBankB (VRAM_B_TYPE b)
 Set bank B to the indicated mapping.
static void vramSetBankC (VRAM_C_TYPE c)
 Set bank C to the indicated mapping.
static void vramSetBankD (VRAM_D_TYPE d)
 Set bank D to the indicated mapping.
static void vramSetBankE (VRAM_E_TYPE e)
 Set bank E to the indicated mapping.
static void vramSetBankF (VRAM_F_TYPE f)
 Set bank F to the indicated mapping.
static void vramSetBankG (VRAM_G_TYPE g)
 Set bank G to the indicated mapping.
static void vramSetBankH (VRAM_H_TYPE h)
 Set bank H to the indicated mapping.
static void vramSetBankI (VRAM_I_TYPE i)
 Set bank I to the indicated mapping.
u32 vramSetMainBanks (VRAM_A_TYPE a, VRAM_B_TYPE b, VRAM_C_TYPE c, VRAM_D_TYPE d)
 Set the main 4 bank modes.

Detailed Description

contains the basic defnitions for controlling the video hardware.

Intro

Video.h contains the basic defnitions for controlling the video hardware.

Video Ram Banks

The Nintendo DS has nine banks of video memory which may be put to a variety of uses. They can hold the graphics for your sprites, the textures for your 3D space ships, the tiles for your 2D platformer, or a direct map of pixels to render to the screen. Figuring out how to effectively utilize this flexible but limited amount of memory will be one the most challenging endeavors you will face early homebrew development.

The nine banks can be utilized as enumerated by the VRAM types. Banks are labled A-I. In order to utilize 2D or 3D texture graphics, memory must be mapped for these purposes.

For instance: If you initialize a 2D background on the main engine you will be expected to define both an offset for its map data and an offset for its tile graphics (bitmapped backgrounds differ slightly). These offsets are referenced from the start of 2D background graphics memory. On the main display 2D background graphics begin at 0x6000000.

Without mapping a VRAM bank to this location data written to your background tile and map offsets will be lost.

VRAM banks can be mapped to specific addresses for specific purposes. In our case, any of the 4 main banks amd several of the smaller ones can be mapped to the main 2D background engine.(A B C and D banks are refered to as ìmainî because they are 128KB and flexible in usage)

	vramSetBankA(VRAM_A_MAIN_BG);
	

The above would map the 128KB of VRAM_A to 0x6000000 for use as main background graphics and maps (you can offset the mapping as well and the available offsets are defined in the VRAM_A_TYPE enumberation)

Video Ram Bank sizes


Enumeration Type Documentation

enum VideoMode

The allowed video modes of the 2D processors

Main 2D engine
______________________________
|Mode | BG0 | BG1 | BG2 |BG3 |           T = Text
|  0  |  T  |  T  |  T  |  T |           R = Rotation
|  1  |  T  |  T  |  T  |  R |           E = Extended Rotation
|  2  |  T  |  T  |  R  |  R |           L = Large Bitmap background
|  3  |  T  |  T  |  T  |  E |
|  4  |  T  |  T  |  R  |  E |
|  5  |  T  |  T  |  E  |  E |
|  6  |     |  L  |     |    |
-----------------------------
Sub 2D engine
______________________________
|Mode | BG0 | BG1 | BG2 |BG3 |
|  0  |  T  |  T  |  T  |  T |
|  1  |  T  |  T  |  T  |  R |
|  2  |  T  |  T  |  R  |  R |
|  3  |  T  |  T  |  T  |  E |
|  4  |  T  |  T  |  R  |  E |
|  5  |  T  |  T  |  E  |  E |
-----------------------------
Enumerator:
MODE_0_2D 

4 2D backgrounds

MODE_1_2D 

4 2D backgrounds

MODE_2_2D 

4 2D backgrounds

MODE_3_2D 

4 2D backgrounds

MODE_4_2D 

4 2D backgrounds

MODE_5_2D 

4 2D backgrounds

MODE_6_2D 

4 2D backgrounds

MODE_0_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_1_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_2_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_3_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_4_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_5_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_6_3D 

3 2D backgrounds 1 3D background (Main engine only)

MODE_FIFO 

video display from main memory

MODE_FB0 

video display directly from VRAM_A in LCD mode

MODE_FB1 

video display directly from VRAM_B in LCD mode

MODE_FB2 

video display directly from VRAM_C in LCD mode

MODE_FB3 

video display directly from VRAM_D in LCD mode

Allowed VRAM bank A modes.

Enumerator:
VRAM_A_LCD 

maps vram a to lcd.

VRAM_A_MAIN_BG 

maps vram a to main engine background slot 0.

VRAM_A_MAIN_BG_0x06000000 

maps vram a to main engine background slot 0.

VRAM_A_MAIN_BG_0x06020000 

maps vram a to main engine background slot 1.

VRAM_A_MAIN_BG_0x06040000 

maps vram a to main engine background slot 2.

VRAM_A_MAIN_BG_0x06060000 

maps vram a to main engine background slot 3.

VRAM_A_MAIN_SPRITE 

maps vram a to main engine sprites slot 0.

VRAM_A_MAIN_SPRITE_0x06400000 

maps vram a to main engine sprites slot 0.

VRAM_A_MAIN_SPRITE_0x06420000 

maps vram a to main engine sprites slot 1.

VRAM_A_TEXTURE 

maps vram a to 3d texture slot 0.

VRAM_A_TEXTURE_SLOT0 

maps vram a to 3d texture slot 0.

VRAM_A_TEXTURE_SLOT1 

maps vram a to 3d texture slot 1.

VRAM_A_TEXTURE_SLOT2 

maps vram a to 3d texture slot 2.

VRAM_A_TEXTURE_SLOT3 

maps vram a to 3d texture slot 3.

Allowed VRAM bank B modes.

Enumerator:
VRAM_B_LCD 

maps vram b to lcd.

VRAM_B_MAIN_BG 

maps vram b to main engine background slot 1.

VRAM_B_MAIN_BG_0x06000000 

maps vram b to main engine background slot 0.

VRAM_B_MAIN_BG_0x06020000 

maps vram b to main engine background slot 1.

VRAM_B_MAIN_BG_0x06040000 

maps vram b to main engine background slot 2.

VRAM_B_MAIN_BG_0x06060000 

maps vram b to main engine background slot 3.

VRAM_B_MAIN_SPRITE 

maps vram b to main engine sprites slot 0.

VRAM_B_MAIN_SPRITE_0x06400000 

maps vram b to main engine sprites slot 0.

VRAM_B_MAIN_SPRITE_0x06420000 

maps vram b to main engine sprites slot 1.

VRAM_B_TEXTURE 

maps vram b to 3d texture slot 1.

VRAM_B_TEXTURE_SLOT0 

maps vram b to 3d texture slot 0.

VRAM_B_TEXTURE_SLOT1 

maps vram b to 3d texture slot 1.

VRAM_B_TEXTURE_SLOT2 

maps vram b to 3d texture slot 2.

VRAM_B_TEXTURE_SLOT3 

maps vram b to 3d texture slot 3.

Allowed VRAM bank C modes.

Enumerator:
VRAM_C_LCD 

maps vram c to lcd.

VRAM_C_MAIN_BG 

maps vram c to main engine background slot 2.

VRAM_C_MAIN_BG_0x06000000 

maps vram c to main engine background slot 0.

VRAM_C_MAIN_BG_0x06020000 

maps vram c to main engine background slot 1.

VRAM_C_MAIN_BG_0x06040000 

maps vram c to main engine background slot 2.

VRAM_C_MAIN_BG_0x06060000 

maps vram c to main engine background slot 3.

VRAM_C_ARM7 

maps vram c to ARM7 workram slot 0.

VRAM_C_ARM7_0x06000000 

maps vram c to ARM7 workram slot 0.

VRAM_C_ARM7_0x06020000 

maps vram c to ARM7 workram slot 1.

VRAM_C_SUB_BG 

maps vram c to sub engine background slot 0.

VRAM_C_SUB_BG_0x06200000 

maps vram c to sub engine background slot 0.

VRAM_C_TEXTURE 

maps vram c to 3d texture slot 2.

VRAM_C_TEXTURE_SLOT0 

maps vram c to 3d texture slot 0.

VRAM_C_TEXTURE_SLOT1 

maps vram c to 3d texture slot 1.

VRAM_C_TEXTURE_SLOT2 

maps vram c to 3d texture slot 2.

VRAM_C_TEXTURE_SLOT3 

maps vram c to 3d texture slot 3.

Allowed VRAM bank D modes.

Enumerator:
VRAM_D_LCD 

maps vram d to lcd.

VRAM_D_MAIN_BG 

maps vram d to main engine background slot 3.

VRAM_D_MAIN_BG_0x06000000 

maps vram d to main engine background slot 0.

VRAM_D_MAIN_BG_0x06020000 

maps vram d to main engine background slot 1.

VRAM_D_MAIN_BG_0x06040000 

maps vram d to main engine background slot 2.

VRAM_D_MAIN_BG_0x06060000 

maps vram d to main engine background slot 3.

VRAM_D_ARM7 

maps vram d to ARM7 workram slot 1.

VRAM_D_ARM7_0x06000000 

maps vram d to ARM7 workram slot 0.

VRAM_D_ARM7_0x06020000 

maps vram d to ARM7 workram slot 1.

VRAM_D_SUB_SPRITE 

maps vram d to sub engine sprites slot 0.

VRAM_D_TEXTURE 

maps vram d to 3d texture slot 3.

VRAM_D_TEXTURE_SLOT0 

maps vram d to 3d texture slot 0.

VRAM_D_TEXTURE_SLOT1 

maps vram d to 3d texture slot 1.

VRAM_D_TEXTURE_SLOT2 

maps vram d to 3d texture slot 2.

VRAM_D_TEXTURE_SLOT3 

maps vram d to 3d texture slot 3.

Allowed VRAM bank E modes.

Enumerator:
VRAM_E_LCD 

maps vram e to lcd.

VRAM_E_MAIN_BG 

maps vram e to main engine background first half of slot 0.

VRAM_E_MAIN_SPRITE 

maps vram e to main engine sprites first half of slot 0.

VRAM_E_TEX_PALETTE 

maps vram e to 3d texture palette slot 0-3.

VRAM_E_BG_EXT_PALETTE 

maps vram e to main engine background extended palette.

Allowed VRAM bank F modes.

Enumerator:
VRAM_F_LCD 

maps vram f to lcd.

VRAM_F_MAIN_BG 

maps vram f to main engine background first part of slot 0.

VRAM_F_MAIN_BG_0x06000000 

maps vram f to main engine background first part of slot 0.

VRAM_F_MAIN_BG_0x06004000 

maps vram f to main engine background second part of slot 0.

VRAM_F_MAIN_BG_0x06010000 

maps vram f to main engine background second half of slot 0.

VRAM_F_MAIN_BG_0x06014000 

maps vram f to main engine background second part of second half of slot 0.

VRAM_F_MAIN_SPRITE 

maps vram f to main engine sprites first part of slot 0.

VRAM_F_MAIN_SPRITE_0x06400000 

maps vram f to main engine sprites first part of slot 0.

VRAM_F_MAIN_SPRITE_0x06404000 

maps vram f to main engine sprites second part of slot 0.

VRAM_F_MAIN_SPRITE_0x06410000 

maps vram f to main engine sprites second half of slot 0.

VRAM_F_MAIN_SPRITE_0x06414000 

maps vram f to main engine sprites second part of second half of slot 0.

VRAM_F_TEX_PALETTE 

maps vram f to 3d texture palette slot 0.

VRAM_F_TEX_PALETTE_SLOT0 

maps vram f to 3d texture palette slot 0.

VRAM_F_TEX_PALETTE_SLOT1 

maps vram f to 3d texture palette slot 1.

VRAM_F_TEX_PALETTE_SLOT4 

maps vram f to 3d texture palette slot 4.

VRAM_F_TEX_PALETTE_SLOT5 

maps vram f to 3d texture palette slot 5.

VRAM_F_BG_EXT_PALETTE 

maps vram f to main engine background extended palette slot 0 and 1.

VRAM_F_BG_EXT_PALETTE_SLOT01 

maps vram f to main engine background extended palette slot 0 and 1.

VRAM_F_BG_EXT_PALETTE_SLOT23 

maps vram f to main engine background extended palette slot 2 and 3.

VRAM_F_SPRITE_EXT_PALETTE 

maps vram f to main engine sprites extended palette.

Allowed VRAM bank G modes.

Enumerator:
VRAM_G_LCD 

maps vram g to lcd.

VRAM_G_MAIN_BG 

maps vram g to main engine background first part of slot 0.

VRAM_G_MAIN_BG_0x06000000 

maps vram g to main engine background first part of slot 0.

VRAM_G_MAIN_BG_0x06004000 

maps vram g to main engine background second part of slot 0.

VRAM_G_MAIN_BG_0x06010000 

maps vram g to main engine background second half of slot 0.

VRAM_G_MAIN_BG_0x06014000 

maps vram g to main engine background second part of second half of slot 0.

VRAM_G_MAIN_SPRITE 

maps vram g to main engine sprites first part of slot 0.

VRAM_G_MAIN_SPRITE_0x06400000 

maps vram g to main engine sprites first part of slot 0.

VRAM_G_MAIN_SPRITE_0x06404000 

maps vram g to main engine sprites second part of slot 0.

VRAM_G_MAIN_SPRITE_0x06410000 

maps vram g to main engine sprites second half of slot 0.

VRAM_G_MAIN_SPRITE_0x06414000 

maps vram g to main engine sprites second part of second half of slot 0.

VRAM_G_TEX_PALETTE 

maps vram g to 3d texture palette slot 0.

VRAM_G_TEX_PALETTE_SLOT0 

maps vram g to 3d texture palette slot 0.

VRAM_G_TEX_PALETTE_SLOT1 

maps vram g to 3d texture palette slot 1.

VRAM_G_TEX_PALETTE_SLOT4 

maps vram g to 3d texture palette slot 4.

VRAM_G_TEX_PALETTE_SLOT5 

maps vram g to 3d texture palette slot 5.

VRAM_G_BG_EXT_PALETTE 

maps vram g to main engine background extended palette slot 0 and 1.

VRAM_G_BG_EXT_PALETTE_SLOT01 

maps vram g to main engine background extended palette slot 0 and 1.

VRAM_G_BG_EXT_PALETTE_SLOT23 

maps vram g to main engine background extended palette slot 2 and 3.

VRAM_G_SPRITE_EXT_PALETTE 

maps vram g to main engine sprites extended palette.

Allowed VRAM bank H modes.

Enumerator:
VRAM_H_LCD 

maps vram h to lcd.

VRAM_H_SUB_BG 

maps vram h to sub engine background first 2 parts of slot 0.

VRAM_H_SUB_BG_EXT_PALETTE 

maps vram h to sub engine background extended palette.

Allowed VRAM bank I modes.

Enumerator:
VRAM_I_LCD 

maps vram i to lcd.

VRAM_I_SUB_BG_0x06208000 

maps vram i to sub engine background thirth part of slot 0.

VRAM_I_SUB_SPRITE 

maps vram i to sub engine sprites.

VRAM_I_SUB_SPRITE_EXT_PALETTE 

maps vram i to sub engine sprites extended palette.


Function Documentation

static void setBackdropColor ( const u16  color  )  [inline, static]

sets the backdrop color of the main engine.

the backdrop color is displayed when all pixels at a given location are transparent (no sprite or background is visible there).

Parameters:
color the color that the backdrop of the main engine should display.
static void setBackdropColorSub ( const u16  color  )  [inline, static]

sets the backdrop color of the sub engine.

the backdrop color is displayed when all pixels at a given location are transparent (no sprite or background is visible there).

Parameters:
color the color that the backdrop of the sub engine should display.
void setBrightness ( int  screen,
int  level 
)

sets the screens brightness.

Parameters:
screen 1 = main screen, 2 = subscreen, 3 = both
level -16 = black, 0 = full brightness, 16 = white
static bool video3DEnabled (  )  [inline, static]

determine if 3D is enabled

Returns:
true if 3D is enabled
static void videoBgDisable ( int  number  )  [inline, static]

disables the specified background on the main engine

Parameters:
number the background number (0-3)
static void videoBgDisableSub ( int  number  )  [inline, static]

disables the specified background on the sub engine

Parameters:
number the background number (0-3)
static void videoBgEnable ( int  number  )  [inline, static]

enables the specified background on the main engine

Parameters:
number the background number (0-3)
static void videoBgEnableSub ( int  number  )  [inline, static]

enables the specified background on the sub engine

Parameters:
number the background number (0-3)
static int videoGetMode (  )  [inline, static]

return the main 2D engine video mode

Returns:
the video mode
static int videoGetModeSub (  )  [inline, static]

return the main 2D engine video mode

Returns:
the video mode
static void videoSetMode ( u32  mode  )  [inline, static]

the main 2D engine video mode

Parameters:
mode the video mode to set
Examples:
audio/maxmod/song_events_example/source/template.c, audio/maxmod/song_events_example2/source/template.c, capture/ScreenShot/source/main.cpp, Graphics/3D/3D_Both_Screens/source/template.c, Graphics/3D/BoxTest/source/main.cpp, Graphics/3D/Display_List/source/main.cpp, Graphics/3D/Display_List_2/source/main.cpp, Graphics/3D/Env_Mapping/source/main.cpp, Graphics/3D/nehe/lesson01/source/nehe1.cpp, Graphics/3D/nehe/lesson02/source/nehe2.cpp, Graphics/3D/nehe/lesson03/source/nehe3.cpp, Graphics/3D/nehe/lesson04/source/nehe4.cpp, Graphics/3D/nehe/lesson05/source/nehe5.cpp, Graphics/3D/nehe/lesson06/source/nehe6.cpp, Graphics/3D/nehe/lesson07/source/nehe7.cpp, Graphics/3D/nehe/lesson08/source/nehe8.cpp, Graphics/3D/nehe/lesson09/source/nehe9.cpp, Graphics/3D/nehe/lesson10/source/nehe10.cpp, Graphics/3D/nehe/lesson10b/source/nehe10b.cpp, Graphics/3D/nehe/lesson11/source/nehe11.cpp, Graphics/3D/Ortho/source/main.cpp, Graphics/3D/Paletted_Cube/source/main.cpp, Graphics/3D/Picking/source/main.cpp, Graphics/3D/Simple_Quad/source/main.cpp, Graphics/3D/Simple_Tri/source/main.cpp, Graphics/3D/Textured_Cube/source/main.cpp, Graphics/3D/Textured_Quad/source/main.cpp, Graphics/3D/Toon_Shading/source/main.cpp, Graphics/Backgrounds/16bit_color_bmp/source/template.cpp, Graphics/Backgrounds/256_color_bmp/source/main.cpp, Graphics/Backgrounds/all_in_one/source/advanced.cpp, Graphics/Backgrounds/all_in_one/source/basic.cpp, Graphics/Backgrounds/all_in_one/source/handmade.cpp, Graphics/Backgrounds/all_in_one/source/scrolling.cpp, Graphics/Backgrounds/Double_Buffer/source/main.cpp, Graphics/Backgrounds/rotation/source/main.cpp, Graphics/Printing/print_both_screens/source/template.c, Graphics/Printing/rotscale_text/source/main.c, Graphics/Sprites/allocation_test/source/main.c, Graphics/Sprites/animate_simple/source/template.c, Graphics/Sprites/fire_and_sprites/source/main.cpp, Graphics/Sprites/simple/source/template.c, Graphics/Sprites/sprite_extended_palettes/source/template.c, Graphics/Sprites/sprite_rotate/source/template.c, input/Touch_Pad/touch_look/source/main.cpp, input/Touch_Pad/touch_test/source/main.c, and time/RealTimeClock/source/main.c.
static void videoSetModeSub ( u32  mode  )  [inline, static]
u32 vramDefault (  ) 

Set VRAM banks to basic default.

Returns:
the previous settings
void vramRestoreMainBanks ( u32  vramTemp  ) 

Restore the main 4 bank modes.

Parameters:
vramTemp restores the main 4 banks to the value encoded in vramTemp (returned from vramSetMainBanks)
static void vramSetBankA ( VRAM_A_TYPE  a  )  [inline, static]
static void vramSetBankB ( VRAM_B_TYPE  b  )  [inline, static]

Set bank B to the indicated mapping.

Parameters:
b the mapping of the bank
Examples:
Graphics/Backgrounds/all_in_one/source/basic.cpp, and Graphics/Sprites/allocation_test/source/main.c.
static void vramSetBankC ( VRAM_C_TYPE  c  )  [inline, static]
static void vramSetBankD ( VRAM_D_TYPE  d  )  [inline, static]
static void vramSetBankE ( VRAM_E_TYPE  e  )  [inline, static]

Set bank E to the indicated mapping.

Parameters:
e the mapping of the bank
static void vramSetBankF ( VRAM_F_TYPE  f  )  [inline, static]

Set bank F to the indicated mapping.

Parameters:
f the mapping of the bank
Examples:
Graphics/Sprites/sprite_extended_palettes/source/template.c.
static void vramSetBankG ( VRAM_G_TYPE  g  )  [inline, static]

Set bank G to the indicated mapping.

Parameters:
g the mapping of the bank
static void vramSetBankH ( VRAM_H_TYPE  h  )  [inline, static]

Set bank H to the indicated mapping.

Parameters:
h the mapping of the bank
static void vramSetBankI ( VRAM_I_TYPE  i  )  [inline, static]

Set bank I to the indicated mapping.

Parameters:
i the mapping of the bank
u32 vramSetMainBanks ( VRAM_A_TYPE  a,
VRAM_B_TYPE  b,
VRAM_C_TYPE  c,
VRAM_D_TYPE  d 
)

Set the main 4 bank modes.

Parameters:
a mapping mode of VRAM_A
b mapping mode of VRAM_B
c mapping mode of VRAM_C
d mapping mode of VRAM_D
Returns:
the previous mode
Examples:
capture/ScreenShot/source/main.cpp, Graphics/Backgrounds/Double_Buffer/source/main.cpp, Graphics/Sprites/fire_and_sprites/source/main.cpp, and input/Touch_Pad/touch_test/source/main.c.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines
Generated on Sat Oct 2 12:55:13 2010 for libnds by  doxygen 1.6.3