Difference between revisions of "Cameras"
(→REG_CAMDATA: Add YUV mode info) |
(→Specifications: Nothing about the cameras are inherently JPEG, that belongs on the DSi Camera app page) |
||
Line 10: | Line 10: | ||
* 640*480 VGA | * 640*480 VGA | ||
* No zoom and no flash. | * No zoom and no flash. | ||
− | |||
== Applications/Games compatible == | == Applications/Games compatible == |
Revision as of 03:15, 20 December 2022
This article is a stub. You can help DSiBrew by expanding it. |
The Nintendo DSi contains two cameras. The cameras can be used in the Nintendo DSi Camera application or DSi games that are compatible.
Specifications
- 0.3 Megapixel
- 640*480 VGA
- No zoom and no flash.
Applications/Games compatible
Applications
Games
- Asphalt 4 : Elite Racing (DSiWare)
- Brain Challenge (DSiWare)
- Classic Word Games
- Cooking Coach
- Foto Showdown (DSi Exclusive)
- Pop SuperStar : Road To Celebrity (DSiWare)
- Real Football 2009 (DSiWare)
- WarioWare : Snapped! (DSiWare)
- iCarly
- Pokemon Black,White (2010,JP)
- Castle of Magic (DSiWare)
- Photo Dojo (DSiWare)
Camera registers (ARM7)
The cameras are controlled and initialized with I2C Bus on ARM7 side.
Camera registers (ARM9)
The actual data transfers are done on ARM9 side with below registers.
ADDRESS | WIDTH | NAME |
---|---|---|
0x04004200 | 2 | REG_CAMRST |
0x04004202 | 2 | REG_CAMCNT |
0x04004204 | 4 | REG_CAMDATA |
0x04004210 | 4 | REG_CAM_? |
0x04004214 | 4 | REG_CAM_? |
REG_CAMRST
BIT | DESCRIPTION |
---|---|
15-0 | ? |
Used for resetting cameras. Once cameras are reset by poking this register, all three 0x0400420X camera registers are set to zero.
REG_CAMCNT
BIT | DESCRIPTION |
---|---|
0-3 | ? |
4 | IRQ error flag |
5 | Resets cameras when set? |
7-6 | ? |
9-8 | Set to 2(bit9 set) during init, cleared to zero on shutdown |
10 | Set to 1 during init, 0 on cameras shutdown |
11 | Set to 1 during init, 0 on cameras shutdown |
12 | ? |
13 | Set during initialization? |
14 | Cleared during initialization? |
15 | Enable |
When the IRQ error flag is set when the cameras IRQ handler is executing, the cameras are shut off. The cameras I2C devices are powered off until cameras are initialized via this register.
REG_CAMDATA
BIT | DESCRIPTION | |
---|---|---|
YUV422 | 0-7 | First pixel's luminance (Y) |
8-15 | Both pixels' blue (U) | |
16-23 | Second pixel's luminance (Y) | |
24-31 | Both pixels' red (V) | |
RGB555 | 0-4 | First pixel's red |
5-9 | First pixel's green | |
10-14 | First pixel's blue | |
15 | First pixel's alpha (always 1) | |
16-20 | Second pixel's red | |
21-25 | Second pixel's green | |
26-30 | Second pixel's blue | |
31 | Second pixel's alpha (always 1) |
For retrieving camera video data, NDMA with arm9 startup mode 11(camera) is used with this src register. The NDMA frame transfer is started when the cameras IRQ was thrown. Supported internal-cameras DSP final resolutions are 256x192 and 640x480, the corresponding frame transfer lengths are 0x18000 and 0x96000. (The 256x192 final resolution is converted by the internal-cameras DSP from the camera resolution)
The video data can be transferred as the camera's native YUV422 for higher quality or automatically converted to the same RGB555 as the 2D engine bitmap format. No official program uses the YUV mode, but it has been used in the homebrew dsi-camera.