libnds
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Typedefs | Enumerations | Functions
video.h File Reference

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

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

Macros

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

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

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
colorthe color that the backdrop of the main engine should display.

<background palette memory

static void setBackdropColorSub ( const u16  color)
inlinestatic

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
colorthe color that the backdrop of the sub engine should display.

<background palette memory (sub engine)

void setBrightness ( int  screen,
int  level 
)

sets the screens brightness.

Parameters
screen1 = main screen, 2 = subscreen, 3 = both
level-16 = black, 0 = full brightness, 16 = white
static bool video3DEnabled ( )
inlinestatic

determine if 3D is enabled

Returns
true if 3D is enabled
static void videoBgDisable ( int  number)
inlinestatic

disables the specified background on the main engine

Parameters
numberthe background number (0-3)
static void videoBgDisableSub ( int  number)
inlinestatic

disables the specified background on the sub engine

Parameters
numberthe background number (0-3)
static void videoBgEnable ( int  number)
inlinestatic

enables the specified background on the main engine

Parameters
numberthe background number (0-3)
static void videoBgEnableSub ( int  number)
inlinestatic

enables the specified background on the sub engine

Parameters
numberthe background number (0-3)
static int videoGetMode ( )
inlinestatic

return the main 2D engine video mode

Returns
the video mode
static int videoGetModeSub ( )
inlinestatic

return the main 2D engine video mode

Returns
the video mode
static void videoSetMode ( u32  mode)
inlinestatic

the main 2D engine video mode

Parameters
modethe video mode to set
static void videoSetModeSub ( u32  mode)
inlinestatic

the sub 2D engine video mode

Parameters
modethe video mode to set
u32 vramDefault ( )

Set VRAM banks to basic default.

Returns
the previous settings
void vramRestoreBanks_EFG ( u32  vramTemp)

Restore the E,F,G bank modes.

Parameters
vramTemprestores the E,F,G bank modes to the value encoded in vramTemp (returned from vramSetBanks_EFG)
void vramRestorePrimaryBanks ( u32  vramTemp)

Restore the main 4 bank modes.

Parameters
vramTemprestores the main 4 banks to the value encoded in vramTemp (returned from vramSetMainBanks)
static void vramSetBankA ( VRAM_A_TYPE  a)
inlinestatic

Set bank A to the indicated mapping.

Parameters
athe mapping of the bank
static void vramSetBankB ( VRAM_B_TYPE  b)
inlinestatic

Set bank B to the indicated mapping.

Parameters
bthe mapping of the bank
static void vramSetBankC ( VRAM_C_TYPE  c)
inlinestatic

Set bank C to the indicated mapping.

Parameters
cthe mapping of the bank
static void vramSetBankD ( VRAM_D_TYPE  d)
inlinestatic

Set bank D to the indicated mapping.

Parameters
dthe mapping of the bank
static void vramSetBankE ( VRAM_E_TYPE  e)
inlinestatic

Set bank E to the indicated mapping.

Parameters
ethe mapping of the bank
static void vramSetBankF ( VRAM_F_TYPE  f)
inlinestatic

Set bank F to the indicated mapping.

Parameters
fthe mapping of the bank
static void vramSetBankG ( VRAM_G_TYPE  g)
inlinestatic

Set bank G to the indicated mapping.

Parameters
gthe mapping of the bank
static void vramSetBankH ( VRAM_H_TYPE  h)
inlinestatic

Set bank H to the indicated mapping.

Parameters
hthe mapping of the bank
static void vramSetBankI ( VRAM_I_TYPE  i)
inlinestatic

Set bank I to the indicated mapping.

Parameters
ithe mapping of the bank
u32 vramSetBanks_EFG ( VRAM_E_TYPE  e,
VRAM_F_TYPE  f,
VRAM_G_TYPE  g 
)

Set E,F,G bank modes.

Parameters
emapping mode of VRAM_E
fmapping mode of VRAM_F
gmapping mode of VRAM_G
Returns
the previous mode
u32 vramSetPrimaryBanks ( VRAM_A_TYPE  a,
VRAM_B_TYPE  b,
VRAM_C_TYPE  c,
VRAM_D_TYPE  d 
)

Set the main 4 bank modes.

Parameters
amapping mode of VRAM_A
bmapping mode of VRAM_B
cmapping mode of VRAM_C
dmapping mode of VRAM_D
Returns
the previous mode