Changes

Jump to navigation Jump to search
3,581 bytes added ,  19:19, 20 March 2020
no edit summary
Line 1,179: Line 1,179:  
| 314 || [3.0.0+] [[#CheckFirmwareVersion]]
 
| 314 || [3.0.0+] [[#CheckFirmwareVersion]]
 
|-
 
|-
| 315 || [4.0.0+] SetFunctionLevel
+
| 315 || [4.0.0+] [[#SetFunctionLevel]]
 
|-
 
|-
| 316 || [4.0.0+] RunImageTransferExProcessor
+
| 316 || [4.0.0+] [[#RunImageTransferExProcessor]]
 
|-
 
|-
| 317 || [4.0.0+] RunIrLedProcessor
+
| 317 || [4.0.0+] [[#RunIrLedProcessor]]
 
|-
 
|-
| 318 || [4.0.0+] StopImageProcessorAsync
+
| 318 || [4.0.0+] [[#StopImageProcessorAsync]]
 
|-
 
|-
| 319 || [4.0.0+] ActivateIrsensorWithFunctionLevel
+
| 319 || [4.0.0+] [[#ActivateIrsensorWithFunctionLevel]]
 
|}
 
|}
   Line 1,222: Line 1,222:     
== GetNpadIrCameraHandle ==
 
== GetNpadIrCameraHandle ==
Takes an input u32 NpadTypeId. Returns an output [[#IrCameraHandle]].
+
Takes an input [[#NpadIdType]]. Returns an output [[#IrCameraHandle]].
    
== RunPointingProcessor ==
 
== RunPointingProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedDpdProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
+
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedPointingProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
    
== SuspendImageProcessor ==
 
== SuspendImageProcessor ==
Line 1,233: Line 1,233:  
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedMcuVersion]], and an [[AM_services|AppletResourceUserId]]. No output.
 
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedMcuVersion]], and an [[AM_services|AppletResourceUserId]]. No output.
   −
== PackedClusteringProcessorConfig ==
+
== SetFunctionLevel ==
This is a 0x28-byte struct.
+
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedFunctionLevel]], and an [[AM_services|AppletResourceUserId]]. No output.
   −
== PackedImageTransferProcessorConfig ==
+
== RunImageTransferExProcessor ==
This is a 0x18-byte struct. This is converted from another structure by the official user-process. The conversion is the same as PackedMomentProcessorConfig, except the code using out +0x1C/+0x1D was removed, and the constant is now located at out+0x10. The code which wrote to out u64 +0x10 from in+0x24 was replaced with code which writes an u8 to out+0x14.
+
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], a [[#PackedImageTransferProcessorExConfig]], an u64 for the TransferMemory_size, and a TransferMemory handle. No output.
   −
== ImageTransferProcessorState ==
+
Official sw creates the TransferMemory with an user-specified buffer and permissions=0.
This is a 0x10-byte struct.
     −
== PackedTeraPluginProcessorConfig ==
+
== RunIrLedProcessor ==
This is an u64.
+
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedIrLedProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
   −
== PackedDpdProcessorConfig ==
+
== StopImageProcessorAsync ==
This is a 0x10-byte struct.
+
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.
   −
== PackedMcuVersion ==
+
== ActivateIrsensorWithFunctionLevel ==
This is an u32.
+
Takes a PID-descriptor, an [[#PackedFunctionLevel]], and an [[AM_services|AppletResourceUserId]]. No output.
    
= irs:sys =
 
= irs:sys =
Line 1,258: Line 1,257:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 500 || SetAppletResourceUserId
+
| 500 || [[#SetAppletResourceUserId]]
 
|-
 
|-
| 501 || RegisterAppletResourceUserId
+
| 501 || [[#RegisterAppletResourceUserId]]
 
|-
 
|-
| 502 || UnregisterAppletResourceUserId
+
| 502 || [[#UnregisterAppletResourceUserId]]
 
|-
 
|-
| 503 || EnableAppletToGetInput
+
| 503 || [[#EnableAppletToGetInput]]
 
|}
 
|}
 +
 +
== SetAppletResourceUserId ==
 +
Takes an [[AM_services|AppletResourceUserId]]. No output.
 +
 +
== RegisterAppletResourceUserId ==
 +
Takes a bool and an [[AM_services|AppletResourceUserId]]. No output.
 +
 +
== UnregisterAppletResourceUserId ==
 +
Takes an [[AM_services|AppletResourceUserId]]. No output.
 +
 +
== EnableAppletToGetInput ==
 +
Takes a bool and an [[AM_services|AppletResourceUserId]]. No output.
    
= ahid:cd =
 
= ahid:cd =
Line 2,341: Line 2,352:     
= PackedMomentProcessorConfig =
 
= PackedMomentProcessorConfig =
This is a 0x20-byte struct. This is converted from another structure by the official user-process.
+
This is "nn::irsensor::PackedMomentProcessorConfig". This is a 0x20-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || ExposureTime (default is 0x493E0)
 +
|-
 +
| 0x8 || 0x1 || LightTarget (default is 0)
 +
|-
 +
| 0x9 || 0x1 || Gain (default is 0x8)
 +
|-
 +
| 0xA || 0x1 || IsNegativeImageUsed (default is 0)
 +
|-
 +
| 0xB || 0x5 || Padding
 +
|-
 +
| 0x10 || 0x2 || WindowOfInterestX (default is 0)
 +
|-
 +
| 0x12 || 0x2 || WindowOfInterestY (default is 0)
 +
|-
 +
| 0x14 || 0x2 || WindowOfInterestWidth (default is 0x140)
 +
|-
 +
| 0x16 || 0x2 || WindowOfInterestHeight (default is 0xF0)
 +
|-
 +
| 0x18 || 0x4 || Unknown (always 0xA0003)
 +
|-
 +
| 0x1C || 0x1 || Preprocess (default is 0x1)
 +
|-
 +
| 0x1D || 0x1 || PreprocessIntensityThreshold (default is 0x50)
 +
|-
 +
| 0x1E || 0x2 || Padding
 +
|}
 +
 
 +
= PackedClusteringProcessorConfig =
 +
This is "nn::irsensor::PackedClusteringProcessorConfig". This is a 0x28-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || ExposureTime
 +
|-
 +
| 0x8 || 0x1 || LightTarget
 +
|-
 +
| 0x9 || 0x1 || Gain
 +
|-
 +
| 0xA || 0x1 || IsNegativeImageUsed
 +
|-
 +
| 0xB || 0x5 || Padding
 +
|-
 +
| 0x10 || 0x2 || WindowOfInterestX
 +
|-
 +
| 0x12 || 0x2 || WindowOfInterestY
 +
|-
 +
| 0x14 || 0x2 || WindowOfInterestWidth
 +
|-
 +
| 0x16 || 0x2 || WindowOfInterestHeight
 +
|-
 +
| 0x18 || 0x4 || Unknown (always 0xA0003)
 +
|-
 +
| 0x1C || 0x4 || ObjectPixelCountMin
 +
|-
 +
| 0x20 || 0x4 || ObjectPixelCountMax
 +
|-
 +
| 0x24 || 0x1 || ObjectIntensityMin
 +
|-
 +
| 0x25 || 0x1 || IsExternalLightFilterEnabled
 +
|-
 +
| 0x26 || 0x2 || Padding
 +
|}
 +
 
 +
= PackedImageTransferProcessorConfig =
 +
This is "nn::irsensor::PackedImageTransferProcessorConfig". This is a 0x18-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || ExposureTime
 +
|-
 +
| 0x8 || 0x1 || LightTarget
 +
|-
 +
| 0x9 || 0x1 || Gain
 +
|-
 +
| 0xA || 0x1 || IsNegativeImageUsed
 +
|-
 +
| 0xB || 0x5 || Padding
 +
|-
 +
| 0x10 || 0x4 || Unknown (always 0xA0003)
 +
|-
 +
| 0x14 || 0x1 || Format
 +
|-
 +
| 0x15 || 0x3 || Padding
 +
|}
 +
 
 +
= ImageTransferProcessorState =
 +
This is "nn::irsensor::ImageTransferProcessorState". This is a 0x10-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || SamplingNumber
 +
|-
 +
| 0x8 || 0x1 || AmbientNoiseLevel
 +
|-
 +
| 0x9 || 0x7 || Padding
 +
|}
 +
 
 +
= PackedTeraPluginProcessorConfig =
 +
This is "nn::irsensor::PackedTeraPluginProcessorConfig". This is an u64.
 +
 
 +
= PackedPointingProcessorConfig =
 +
This is "nn::irsensor::PackedPointingProcessorConfig". This is a 0x10-byte struct.
 +
 
 +
= PackedMcuVersion =
 +
This is "nn::irsensor::PackedMcuVersion". This is an u32.
 +
 
 +
= PackedFunctionLevel =
 +
This is nn::irsensor::PackedFunctionLevel. This is an u32.
 +
 
 +
= PackedImageTransferProcessorExConfig =
 +
This is "nn::irsensor::PackedImageTransferProcessorExConfig". This is a 0x20-byte struct.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Offset || Size || Description || DefaultConfig
+
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x8 || ? || 0x493E0
+
| 0x0 || 0x8 || ExposureTime
 
|-
 
|-
| 0x8 || 0x1 || ? || 0x0
+
| 0x8 || 0x1 || LightTarget
 
|-
 
|-
| 0x9 || 0x1 || ? || 0x8
+
| 0x9 || 0x1 || Gain
 
|-
 
|-
| 0xA || 0x1 || ? || 0x0
+
| 0xA || 0x1 || IsNegativeImageUsed
 
|-
 
|-
| 0xB || 0x5 || Padding ||
+
| 0xB || 0x5 || Padding
 
|-
 
|-
| 0x10 || 0x8 || u16, u32, u16 || {Not written}, 0x1400000, 0xF0
+
| 0x10 || 0x4 || Unknown (always 0xA0003)
 
|-
 
|-
| 0x18 || 0x4 || Hard-coded to 0xA0003. ||  
+
| 0x14 || 0x1 || OrigFormat
 
|-
 
|-
| 0x1C || 0x1 || ? || 0x1
+
| 0x15 || 0x1 || TrimmingFormat
 
|-
 
|-
| 0x1D || 0x1 || ? || 0x50
+
| 0x16 || 0x2 || TrimmingStartX
 
|-
 
|-
| 0x1E || 0x2 || Padding ||  
+
| 0x18 || 0x2 || TrimmingStartY
 +
|-
 +
| 0x1A || 0x1 || IsExternalLightFilterEnabled
 +
|-
 +
| 0x1B || 0x5 || Padding
 
|}
 
|}
 +
 +
= PackedIrLedProcessorConfig =
 +
This is "nn::irsensor::PackedIrLedProcessorConfig". This is a 0x10-byte struct.
    
= BusHandle =
 
= BusHandle =

Navigation menu