

#include <nitro/gx/gx_capture.h>
void GX_SetCapture(
GXCaptureSize sz,
GXCaptureMode mode,
GXCaptureSrcA a,
GXCaptureSrcB b,
GXCaptureDest dest,
int eva,
int evb
);
| sz | Capture size |
| mode | Capture mode (select whether to capture A only, B only, or AB blended) |
| a | Capture data source A (select either screen after 3D/2D blending, or only 3D screen) |
| b | Capture source B (Select VRAM/Main Memory) |
| dest | Capture data write target (select combination of VRAM-A,B,C,D, and offset) |
| eva | Blending coefficient (0-16) for capture data source A |
| evb | Blending coefficient (0-16) for capture data source B |
None.
Sets to capture one screen of data from line 0 in the next frame. To capture each frame you must call this function in each frame.
Note 1: VRAM used to write capture data must be mapped to LCDC memory.
Note 2: If VRAM has been configured in b, the target VRAM is that of the VRAM display mode selected using GX_SetGraphicsMode.
Note 3: When you are in the VRAM display mode, even if you set VRAM that has an offset in b, the VRAM offset specification is not enabled. If the offset exceeds 0x20000 when the memory is read, it wraps to 0x00000.
Note 4: When writing to dest if offset exceeds 0x20000, it wraps to 0x00000 and writes.
Note 5: During RAM capture, one line is always loaded as a 256-dot image. Therefore, it is not possible to perform blending while capturing is in process with the 128x128 dot setting.
GX_CAPTURE_SIZE_128x128 |
128x128 dot (0x08000 bytes) |
GX_CAPTURE_SIZE_256x64 |
256x64 dot (0x08000 bytes) |
GX_CAPTURE_SIZE_256x128 |
256x128 dot (0x10000 bytes) |
GX_CAPTURE_SIZE_256x192 |
256x192 dot (0x18000 bytes) |
GX_CAPTURE_MODE_A |
Captures capture source A data. |
GX_CAPTURE_MODE_B |
Captures capture source B data. |
GX_CAPTURE_MODE_AB |
Blends capture source A and B data, and captures. |
GX_CAPTURE_SRCA_2D3D |
Captures graphics display screen (after 3D/2D blending). |
GX_CAPTURE_SRCA_3D |
Captures 3D screen. |
GX_CAPTURE_SRCB_VRAM_0x00000 |
Reads from VRAM offset 0x00000. |
GX_CAPTURE_SRCB_MRAM |
Captures display results from main memory display mode. |
GX_CAPTURE_SRCB_VRAM_0x08000 |
Reads from VRAM offset 0x08000. |
GX_CAPTURE_SRCB_VRAM_0x10000 |
Reads from VRAM offset 0x10000. |
GX_CAPTURE_SRCB_VRAM_0x18000 |
Reads from VRAM offset 0x18000. |
GX_CAPTURE_DEST_VRAM_A_0x00000 |
Writes from VRAM-A offset 0x00000. |
GX_CAPTURE_DEST_VRAM_B_0x00000 |
Writes from VRAM-B offset 0x00000. |
GX_CAPTURE_DEST_VRAM_C_0x00000 |
Writes from VRAM-C offset 0x00000. |
GX_CAPTURE_DEST_VRAM_D_0x00000 |
Writes from VRAM-D offset 0x00000. |
GX_CAPTURE_DEST_VRAM_A_0x08000 |
Writes from VRAM-A offset 0x08000. |
GX_CAPTURE_DEST_VRAM_B_0x08000 |
Writes from VRAM-B offset 0x08000. |
GX_CAPTURE_DEST_VRAM_C_0x08000 |
Writes from VRAM-C offset 0x08000. |
GX_CAPTURE_DEST_VRAM_D_0x08000 |
Writes from VRAM-D offset 0x08000. |
GX_CAPTURE_DEST_VRAM_A_0x10000 |
Writes from VRAM-A offset 0x10000. |
GX_CAPTURE_DEST_VRAM_B_0x10000 |
Writes from VRAM-B offset 0x10000. |
GX_CAPTURE_DEST_VRAM_C_0x10000 |
Writes from VRAM-C offset 0x10000. |
GX_CAPTURE_DEST_VRAM_D_0x10000 |
Writes from VRAM-D offset 0x10000. |
GX_CAPTURE_DEST_VRAM_A_0x18000 |
Writes from VRAM-A offset 0x18000. |
GX_CAPTURE_DEST_VRAM_B_0x18000 |
Writes from VRAM-B offset 0x18000. |
GX_CAPTURE_DEST_VRAM_C_0x18000 |
Writes from VRAM-C offset 0x18000. |
GX_CAPTURE_DEST_VRAM_D_0x18000 |
Writes from VRAM-D offset 0x18000. |
Below are the matrix format type definitions used in the argument.
typedef enum
{
GX_CAPTURE_SIZE_128x128 = 0,
GX_CAPTURE_SIZE_256x64 = 1,
GX_CAPTURE_SIZE_256x128 = 2,
GX_CAPTURE_SIZE_256x192 = 3
}
GXCaptureSize;
typedef enum
{
GX_CAPTURE_MODE_A = 0,
GX_CAPTURE_MODE_B = 1,
GX_CAPTURE_MODE_AB = 2
}
GXCaptureMode;
typedef enum
{
GX_CAPTURE_SRCA_2D3D = 0,
GX_CAPTURE_SRCA_3D = 1
}
GXCaptureSrcA;
typedef enum
{
GX_CAPTURE_SRCB_VRAM_0x00000 = 0,
GX_CAPTURE_SRCB_WRAM = 1,
GX_CAPTURE_SRCB_VRAM_0x08000 = 2,
GX_CAPTURE_SRCB_VRAM_0x10000 = 4,
GX_CAPTURE_SRCB_VRAM_0x18000 = 6
}
GXCaptureSrcB;
typedef enum
{
GX_CAPTURE_DEST_VRAM_A_0x00000 = 0,
GX_CAPTURE_DEST_VRAM_B_0x00000 = 1,
GX_CAPTURE_DEST_VRAM_C_0x00000 = 2,
GX_CAPTURE_DEST_VRAM_D_0x00000 = 3,
GX_CAPTURE_DEST_VRAM_A_0x08000 = 4,
GX_CAPTURE_DEST_VRAM_B_0x08000 = 5,
GX_CAPTURE_DEST_VRAM_C_0x08000 = 6,
GX_CAPTURE_DEST_VRAM_D_0x08000 = 7,
GX_CAPTURE_DEST_VRAM_A_0x10000 = 8,
GX_CAPTURE_DEST_VRAM_B_0x10000 = 9,
GX_CAPTURE_DEST_VRAM_C_0x10000 = 10,
GX_CAPTURE_DEST_VRAM_D_0x10000 = 11,
GX_CAPTURE_DEST_VRAM_A_0x18000 = 12,
GX_CAPTURE_DEST_VRAM_B_0x18000 = 13,
GX_CAPTURE_DEST_VRAM_C_0x18000 = 14,
GX_CAPTURE_DEST_VRAM_D_0x18000 = 15
}
GXCaptureDest;
In the LCD OFF state, some of the circuitry clocks in the GX are stopped, so the settings of this function are ignored.
2009/12/02 Corrected the VRAM shown in Note 1 and 2.
2009/02/25 Added that settings are ignored when the LCD is OFF.
2004/01/19 Initial version.
CONFIDENTIAL