QTM Services

From 3dbrew
Revision as of 00:44, 6 September 2024 by TuxSH (talk | contribs)
Jump to navigation Jump to search


QTM is the New_3DS system module in charge of handling head tracking. A maximum of three (only two until 9.3.0-21) 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

Command Header Description
0x00010080 GetHeadtrackingInfoRaw
0x00020080 GetHeadtrackingInfo
0x00030000
0x00040000
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"

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

QTM system service "qtm:s"

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

See also the "QTM services" section.

QTM service "qtm:sp"

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 until 9.3.0-21.

QTM callibration service "qtm:c"

Command Header Description
0x00010000 InitializeHardwareCheck (sets 0x1EB63410, 0x1EB6342B, 0x1EB6340A to 1)
0x00020000 ? (sets 0x1EB6342B, 0x1EB6340A to 0)
0x00030040
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.