QTM Services

From 3dbrew
Jump to navigation Jump to search

QTM is the New_3DS system module in charge of handling head tracking. A maximum of two sessions can be opened for each QTM service.

Head tracking is not usable when any other process is using any of the cameras, QTM returns error 0xC8A18008 for this.

QTM services[edit]

Command Header Description
0x00010080 GetHeadtrackingInfoRaw
0x00020080 GetHeadtrackingInfo
0x00050040 (u8 input)
0x00060000 Writes an output u8 to cmdreply[2].

The commands under this section are available for all QTM services except for "qtm:c".

QTM user service "qtm:u"[edit]

The commands available for this are exactly the same as the commands listed under the "QTM services" section.

QTM system service "qtm:s"[edit]

Command Header Description
0x04010040 (float input)
0x04020000 Writes float output to cmdreply[2].
0x04050040 (u8 input)
0x04060000 Writes an u8 to cmdreply[2].
0x04070040 (u8 input)
0x04090000 Writes an u8 to cmdreply[2].
0x040A0040 (u8 input)

See also the "QTM services" section.

QTM service "qtm:sp"[edit]

Command Header Description
0x08010040 (u8 input) Internally compared with 2
0x08020000 Writes 1 to a flag
0x08030040 Returns a byte loaded from a flag
0x08040000 Writes 1 to a flag

This service has all of the commands listed under the "QTM services" section and the "qtm:s" section, in addition to the above commands.

This service is used by NS and GSP-module, hence no other processes can use this service.

QTM callibration service "qtm:c"[edit]

Command Header Description
0x00010000 InitializeHardwareCheck (sets 0x1EB63410, 0x1EB6342B, 0x1EB6340A to 1)
0x00020000 ? (sets 0x1EB6342B, 0x1EB6340A to 0)
0x00040000 Writes an output u8 to cmdreply[2].
0x00050040 SetIrLedCheck (u8 input)

The commands for this service are separate from the commands under the "QTM services" section.