Menu
Getting Started
System Information
Misc
|
Video Modes
| Name | Value to write to CR |
| Mode 0 | 0x00010000 |
| Mode 1 | 0x00010001 |
| Mode 2 | 0x00010002 |
| Mode 3 | 0x00010003 |
| Mode 4 | 0x00010004 |
| Mode 5 | 0x00010005 |
| Mode 6 | 0x00010006 |
| Framebuffer | 0x00020000 |
VRAM Banks
| Name | Define | Register | Size | Location |
| Core A | ? | ? | 256 KB | 0x06000000 |
| Core B | ? | ? | 256 KB | 0x06040000 |
| Bank A | VRAM_A_CR | 0x04000240:8 | 128 KB | 0x06800000 |
| Bank B | VRAM_B_CR | 0x04000241:8 | 128 KB | 0x06820000 |
| Bank C | VRAM_C_CR | 0x04000242:8 | 128 KB | 0x06840000 |
| Bank D | VRAM_D_CR | 0x04000243:8 | 128 KB | 0x06860000 |
| Bank E | VRAM_E_CR | 0x04000244:8 | 64 KB | 0x06880000 |
| Bank F | VRAM_F_CR | 0x04000245:8 | 16 KB | 0x06890000 |
| Bank G | VRAM_G_CR | 0x04000246:8 | 16 KB | 0x06894000 |
| Bank H | VRAM_H_CR | 0x04000248:8 | 32 KB | 0x06898000 |
| Bank I | VRAM_I_CR | 0x04000249:8 | 16 KB | 0x068A0000 |
VRAM_A_CR (128 KB)
| 7 | 1: Enabled |
| 4..3 | Offset |
| 1..0 | Mode |
Modes:
| Bits | Name | ARM9 address, offset effect |
| 00 | Framebuffer | 0x06800000, offset ignored? |
| 01 | Main BG | 0x06000000, 0x06020000, 0x06040000, 0x06060000 |
| 10 | Main sprites | 0x06400000 if offset=0x, 0x06420000 if offset=1x |
| 11 | Textures | bank 0..3, * |
VRAM_B_CR (128 KB)
| 7 | 1: Enabled |
| 4..3 | Offset |
| 1..0 | Mode |
Modes:
| Bits | Name | ARM9 address, offset effect |
| 00 | Framebuffer | 0x06820000, offset ignored? |
| 01 | Main BG | 0x06000000, 0x06020000, 0x06040000, 0x06060000 |
| 10 | Main sprites | 0x06400000 if offset=0x, 0x06420000 if offset=1x |
| 11 | Textures | bank 0..3, * |
VRAM_C_CR (128 KB)
| 7 | 1: Enabled |
| 4..3 | Offset |
| 2..0 | Mode |
Modes:
| Bits | Name | ARM9 address, offset effect |
| 000 | Framebuffer | 0x06840000, offset ignored? |
| 001 | Main BG | 0x06000000, 0x06020000, 0x06040000, 0x06060000 |
| 010 | ARM7 | *, arm7: 0x06000000 if offset=0x, 0x06020000 if offset=1x |
| 011 | Textures | bank 0..3, * |
| 100 | Sub BG | 0x06200000, offset ignored? |
| 101 | ? | ? |
| 110 | ? | ? |
| 111 | ? | ? |
VRAM_D_CR (128 KB)
| 7 | 1: Enabled |
| 4..3 | Offset |
| 2..0 | Mode |
Modes:
| Bits | Name | ARM9 address, offset effect |
| 000 | Framebuffer | 0x06860000, offset ignored? |
| 001 | Main BG | 0x06000000, 0x06020000, 0x06040000, 0x06060000 |
| 010 | ARM7 | *, arm7: 0x06000000 if offset=0x, 0x06020000 if offset=1x |
| 011 | Textures | bank 0..3, * |
| 100 | Sub BG | 0x06600000, offset ignored? |
| 101 | ? | ? |
| 110 | ? | ? |
| 111 | ? | ? |
retains 0x87
VRAM_E_CR (64 KB)
Modes:
| Bits | Name | ARM9 address |
| 000 | Framebuffer | 0x06880000 |
| 001 | Main BG | 0x06000000 |
| 010 | Main sprites | 0x06400000 |
| 011 | Textures palettes 0..3 | * |
| 100 | Extended main BG palettes 0..3 |
| 101 | ? | ? |
| 110 | ? | ? |
| 111 | ? | ? |
VRAM_F_CR (16 KB)
| 7 | 1: Enabled |
| 4..3 | Offset |
| 2..0 | Mode |
Modes:
| Bits | Name | ARM9 address, offset effect |
| 000 | Video core | 0x06890000, offset ignored? |
| 001 | Main BG | 0x06000000, 0x06004000, 0x06100000, 0x06140000 |
| 010 | Main sprites | 0x06400000, 0x06404000, 0x06410000, 0x06414000 |
| 011 | Texture palette | *, palette 0,1,4,5 |
| 100 | Extended BG palettes | *, 0..1, 2..3, ?, ? |
| 101 | Extended sprite palettes | *, offset ignored |
| 110 | ? | ? |
| 111 | ? | ? |
VRAM_G_CR (16 KB)
| 7 | 1: Enabled |
| 4..3 | Offset |
| 2..0 | Mode |
| Bits | Name | ARM9 address, offset effect |
| 000 | Video core | 0x06894000, offset ignored? |
| 001 | Main BG | 0x06000000, 0x06004000, 0x06100000, 0x06140000 |
| 010 | Main sprites | 0x06400000, 0x06404000, 0x06410000, 0x06414000 |
| 011 | Texture palette | *, palette 0,1,4,5 |
| 100 | Extended BG palettes | *, 0..1, 2..3, ?, ? |
| 101 | Extended sprite palettes | *, offset ignored |
| 110 | ? | ? |
| 111 | ? | ? |
---
0x248: retains 8383
VRAM_H_CR (32 KB)
| Bits | Name | ARM9 address |
| 00 | Video core | 0x06898000 |
| 01 | Sub BG | 0x06200000 |
| 10 | Extended sub sprite palettes 0..3 | * |
| 11 | ? | ? |
VRAM_I_CR (16 KB)
| Bits | Name | ARM9 address |
| 00 | Video core | 0x068A0000 |
| 01 | Sub BG | 0x06208000 |
| 10 | Sub sprites | 0x06600000 |
| 11 | Extended sub BG palettes 0..3 | * |
* Not mapped in ARM9 CPU address space.
The 2D cores can use extended palettes, which are an additional 16 palettes of 256 colors each (8 KB per set). There is one set for each background (BG0..BG3).
For the main core, you can use bank E (all 4 sets loaded) or banks F or G (sets 0,1 and/or sets 2,3) to store the extended palettes.
For the sub core, you can only use bank H (all 4 sets loaded).
You need to set the VRAM bank owner bits correctly, and enable extended palettes in the DISPLAY_CONTROL register.
ARM9:
0x240: retains 9b9b
0x242: retains 9f9f
0x244: retains 9f87
0x246: retains 039f
0x248: retains 8383
On the ARM7: reads 0300
Thanks to Mic for some information on this page.
|
|