Camera Services

Revision as of 00:31, 4 June 2015 by Plutooo (talk | contribs)

cam:c (PORT_REG)

cam:s (PORT_CAL)

cam:q (PORT_QTM)

This was added with New3DS.

cam:u (PORT_USER)

y2r:u

Command Header Description
0x00010040 SetInputFormat(InputFormat)
0x0002... GetInputFormat()
0x00030040 SetOutputFormat(OutputFormat)
0x0004... GetOutputFormat()
0x00050040 SetRotation(Rotation)
0x0006... GetRotation()
0x00070040 SetBlockAlignment(BlockAlignment)
0x0008... GetBlockAlignment()
0x0009... SetCntBit16(Value)
0x000A... GetCntBit16()
0x000B... SetCntBit17(Value)
0x000C... GetCntBit17()
0x000D0040 SetTransferEndInterrupt(bool)
0x000E... GetTransferEndInterrupt()
0x000F0000 GetTransferEndEvent(Handle*)
0x00100102 SetSendingY(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess)
0x00110102 SetSendingU(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess)
0x00120102 SetSendingV(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess)
0x00130102 SetSendingX?(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess)
0x0014.... WaitForSendingDmaFinishY
0x0015.... WaitForSendingDmaFinishU
0x0016.... WaitForSendingDmaFinishV
0x0017.... WaitForSendingDmaFinishX?
0x00180102 SetReceiving(unsigned int pDst, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle dstProcess).
0x0019.... WaitForReceivingDmaFinish
0x001A0040 SetInputLineWidth(short)
0x001B... GetInputLineWidth()
0x001C0040 SetInputLines(short)
0x001D... GetInputLines()
0x001E.... SetCoefficient(0x10-byte CoefficientStruct)
0x001F.... GetCoefficient()
0x00200040 SetStandardCoefficient(StandardCoefficient)

This command is equivalent to SetCoefficient(GenerateStandardCoefficient(StandardCoefficient)).

0x0021.... GenerateStandardCoefficient(StandardCoefficient)
0x00220040 SetAlpha(short)
0x0023.... GetAlpha()
0x0024.... SetUnknownParams(0x24 bytes UnknownParamBlock)
0x0025.... GetUnknownParams
0x00260000 StartConversion
0x00270000 StopConversion
0x00280000 IsBusyConversion(bool * state)
0x002901C0 SetConversionParams(ConversionParams conversion_params). The struct is memcpy'd to &cmd_buff[1].
0x002A0000 PingProcess(unsigned char * connectedNumber)
0x002B0000 DriverInitialize
0x002C0000 DriverFinalize


InputFormat

Enum Value
INPUT_YUV422_INDIV_8 0x0
INPUT_YUV420_INDIV_8 0x1
INPUT_YUV422_INDIV_16 0x2
INPUT_YUV420_INDIV_16 0x3
INPUT_YUV422_BATCH 0x4


OutputFormat

Enum Value
OUTPUT_RGB_32 0x0
OUTPUT_RGB_24 0x1
OUTPUT_RGB_16_555 0x2
OUTPUT_RGB_16_565 0x3


Rotation

Enum Value
ROTATION_NONE 0x0
ROTATION_CLOCKWISE_90 0x1
ROTATION_CLOCKWISE_180 0x2
ROTATION_CLOCKWISE_270 0x3


BlockAlignment

Enum Value Description
BLOCK_LINE 0x0 Output buffer's pixels are arranged linearly. Used when outputting to the framebuffer.
BLOCK_8_BY_8 0x1 Output buffer's pixels are morton swizzled. Used when outputting to a GPU texture.


StandardCoefficient

Enum Value
COEFFICIENT_ITU_R_BT_601 0x0
COEFFICIENT_ITU_R_BT_709 0x1
COEFFICIENT_ITU_R_BT_601_SCALING 0x2
COEFFICIENT_ITU_R_BT_709_SCALING 0x3
COEFFICIENT_MAX 0x4


ConversionParams

Offset Name Type
0x0 input_format InputFormat (u8)
0x1 output_format OutputFormat (u8)
0x2 rotation Rotation (u8)
0x3 block_alignment BlockAlignment(u8)
0x4 input_line_width u16
0x6 input_lines u16
0x8 standard_coefficient StandardCoefficient (u8)
0x9 reserved u8
0xA alpha u16