If you mean using F through I to get more ram? No... unfortunately there only a few specific purposes that each Bank can be assigned to. Here's a bit from libnds' video.h that shows acceptable values for the vramSetBank functions:
Code: Select all
/** \brief Allowed VRAM bank A modes */
typedef enum {
VRAM_A_LCD = 0,
VRAM_A_MAIN_BG = 1,
VRAM_A_MAIN_BG_0x06000000 = 1 | VRAM_OFFSET(0),
VRAM_A_MAIN_BG_0x06020000 = 1 | VRAM_OFFSET(1),
VRAM_A_MAIN_BG_0x06040000 = 1 | VRAM_OFFSET(2),
VRAM_A_MAIN_BG_0x06060000 = 1 | VRAM_OFFSET(3),
VRAM_A_MAIN_SPRITE = 2,
VRAM_A_MAIN_SPRITE_0x06400000 = 2,
VRAM_A_MAIN_SPRITE_0x06420000 = 2 | VRAM_OFFSET(1),
VRAM_A_TEXTURE = 3,
VRAM_A_TEXTURE_SLOT0 = 3 | VRAM_OFFSET(0),
VRAM_A_TEXTURE_SLOT1 = 3 | VRAM_OFFSET(1),
VRAM_A_TEXTURE_SLOT2 = 3 | VRAM_OFFSET(2),
VRAM_A_TEXTURE_SLOT3 = 3 | VRAM_OFFSET(3)
} VRAM_A_TYPE;
/** \brief Allowed VRAM bank B modes */
typedef enum {
VRAM_B_LCD = 0,
VRAM_B_MAIN_BG = 1 | VRAM_OFFSET(1),
VRAM_B_MAIN_BG_0x06000000 = 1 | VRAM_OFFSET(0),
VRAM_B_MAIN_BG_0x06020000 = 1 | VRAM_OFFSET(1),
VRAM_B_MAIN_BG_0x06040000 = 1 | VRAM_OFFSET(2),
VRAM_B_MAIN_BG_0x06060000 = 1 | VRAM_OFFSET(3),
VRAM_B_MAIN_SPRITE = 2 | VRAM_OFFSET(1),
VRAM_B_MAIN_SPRITE_0x06400000 = 2,
VRAM_B_MAIN_SPRITE_0x06420000 = 2 | VRAM_OFFSET(1),
VRAM_B_TEXTURE = 3 | VRAM_OFFSET(1),
VRAM_B_TEXTURE_SLOT0 = 3 | VRAM_OFFSET(0),
VRAM_B_TEXTURE_SLOT1 = 3 | VRAM_OFFSET(1),
VRAM_B_TEXTURE_SLOT2 = 3 | VRAM_OFFSET(2),
VRAM_B_TEXTURE_SLOT3 = 3 | VRAM_OFFSET(3)
} VRAM_B_TYPE;
/** \brief Allowed VRAM bank C modes */
typedef enum {
VRAM_C_LCD = 0,
VRAM_C_MAIN_BG = 1 | VRAM_OFFSET(2),
VRAM_C_MAIN_BG_0x06000000 = 1 | VRAM_OFFSET(0),
VRAM_C_MAIN_BG_0x06020000 = 1 | VRAM_OFFSET(1),
VRAM_C_MAIN_BG_0x06040000 = 1 | VRAM_OFFSET(2),
VRAM_C_MAIN_BG_0x06060000 = 1 | VRAM_OFFSET(3),
VRAM_C_ARM7 = 2,
VRAM_C_ARM7_0x06000000 = 2,
VRAM_C_ARM7_0x06020000 = 2 | VRAM_OFFSET(1),
VRAM_C_SUB_BG = 4,
VRAM_C_SUB_BG_0x06200000 = 4 | VRAM_OFFSET(0),
VRAM_C_TEXTURE = 3 | VRAM_OFFSET(2),
VRAM_C_TEXTURE_SLOT0 = 3 | VRAM_OFFSET(0),
VRAM_C_TEXTURE_SLOT1 = 3 | VRAM_OFFSET(1),
VRAM_C_TEXTURE_SLOT2 = 3 | VRAM_OFFSET(2),
VRAM_C_TEXTURE_SLOT3 = 3 | VRAM_OFFSET(3)
} VRAM_C_TYPE;
/** \brief Allowed VRAM bank D modes */
typedef enum {
VRAM_D_LCD = 0,
VRAM_D_MAIN_BG = 1 | VRAM_OFFSET(3),
VRAM_D_MAIN_BG_0x06000000 = 1 | VRAM_OFFSET(0),
VRAM_D_MAIN_BG_0x06020000 = 1 | VRAM_OFFSET(1),
VRAM_D_MAIN_BG_0x06040000 = 1 | VRAM_OFFSET(2),
VRAM_D_MAIN_BG_0x06060000 = 1 | VRAM_OFFSET(3),
VRAM_D_ARM7 = 2 | VRAM_OFFSET(1),
VRAM_D_ARM7_0x06000000 = 2,
VRAM_D_ARM7_0x06020000 = 2 | VRAM_OFFSET(1),
VRAM_D_SUB_SPRITE = 4,
VRAM_D_TEXTURE = 3 | VRAM_OFFSET(3),
VRAM_D_TEXTURE_SLOT0 = 3 | VRAM_OFFSET(0),
VRAM_D_TEXTURE_SLOT1 = 3 | VRAM_OFFSET(1),
VRAM_D_TEXTURE_SLOT2 = 3 | VRAM_OFFSET(2),
VRAM_D_TEXTURE_SLOT3 = 3 | VRAM_OFFSET(3)
} VRAM_D_TYPE;
/** \brief Allowed VRAM bank E modes */
typedef enum {
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,
} VRAM_E_TYPE;
/** \brief Allowed VRAM bank F modes */
typedef enum {
VRAM_F_LCD = 0,
VRAM_F_MAIN_BG = 1,
VRAM_F_MAIN_BG_0x06000000 = 1,
VRAM_F_MAIN_BG_0x06004000 = 1 | VRAM_OFFSET(1),
VRAM_F_MAIN_BG_0x06010000 = 1 | VRAM_OFFSET(2),
VRAM_F_MAIN_BG_0x06014000 = 1 | VRAM_OFFSET(3),
VRAM_F_MAIN_SPRITE = 2,
VRAM_F_MAIN_SPRITE_0x06400000 = 2,
VRAM_F_MAIN_SPRITE_0x06404000 = 2 | VRAM_OFFSET(1),
VRAM_F_MAIN_SPRITE_0x06410000 = 2 | VRAM_OFFSET(2),
VRAM_F_MAIN_SPRITE_0x06414000 = 2 | VRAM_OFFSET(3),
VRAM_F_TEX_PALETTE = 3,
VRAM_F_BG_EXT_PALETTE = 4,
VRAM_F_BG_EXT_PALETTE_SLOT01 = 4 | VRAM_OFFSET(0),
VRAM_F_BG_EXT_PALETTE_SLOT23 = 4 | VRAM_OFFSET(1),
VRAM_F_SPRITE_EXT_PALETTE = 5,
} VRAM_F_TYPE;
/** \brief Allowed VRAM bank G modes */
typedef enum {
VRAM_G_LCD = 0,
VRAM_G_MAIN_BG = 1,
VRAM_G_MAIN_BG_0x06000000 = 1,
VRAM_G_MAIN_BG_0x06004000 = 1 | VRAM_OFFSET(1),
VRAM_G_MAIN_BG_0x06010000 = 1 | VRAM_OFFSET(2),
VRAM_G_MAIN_BG_0x06014000 = 1 | VRAM_OFFSET(3),
VRAM_G_MAIN_SPRITE = 2,
VRAM_G_MAIN_SPRITE_0x06400000 = 2,
VRAM_G_MAIN_SPRITE_0x06404000 = 2 | VRAM_OFFSET(1),
VRAM_G_MAIN_SPRITE_0x06410000 = 2 | VRAM_OFFSET(2),
VRAM_G_MAIN_SPRITE_0x06414000 = 2 | VRAM_OFFSET(3),
VRAM_G_TEX_PALETTE = 3,
VRAM_G_BG_EXT_PALETTE = 4,
VRAM_G_BG_EXT_PALETTE_SLOT01 = 4 | VRAM_OFFSET(0),
VRAM_G_BG_EXT_PALETTE_SLOT23 = 4 | VRAM_OFFSET(1),
VRAM_G_SPRITE_EXT_PALETTE = 5,
} VRAM_G_TYPE;
/** \brief Allowed VRAM bank H modes */
typedef enum {
VRAM_H_LCD = 0,
VRAM_H_SUB_BG = 1,
VRAM_H_SUB_BG_EXT_PALETTE = 2,
} VRAM_H_TYPE;
/** \brief Allowed VRAM bank I modes */
typedef enum {
VRAM_I_LCD = 0,
VRAM_I_SUB_BG_0x06208000 = 1,
VRAM_I_SUB_SPRITE = 2,
VRAM_I_SUB_SPRITE_EXT_PALETTE = 3,
}VRAM_I_TYPE;