GX_SetCapture

C Specification

#include <nitro/gx/gx_capture.h>

void GX_SetCapture(
GXCaptureSize sz,
GXCaptureMode mode,
GXCaptureSrcA a,
GXCaptureSrcB b,
GXCaptureDest dest,
int eva,
int evb
);

Arguments

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.

Return Values

None.

Description

This function 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: The target VRAM must already be mapped into LCDC memory. Note 2: When you set VRAM in b, the target VRAM will be the same as the one set in dest. 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 will not be enabled. If the offset exceeds 0x20000 when the memory is read, it will wrap to 0x00000. Note 4: When writing to dest if offset exceeds 0x20000, it will wrap to 0x00000 and write. 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;

See Also

Revision History

01/19/2004 Initial version