HID services: Difference between revisions

 
(26 intermediate revisions by 3 users not shown)
Line 154: Line 154:
| 137 || [20.0.0+] SetNpadGcAnalogStick8bitRawValue
| 137 || [20.0.0+] SetNpadGcAnalogStick8bitRawValue
|-
|-
| 138 || [S2]
| 138 || [S2] [20.0.0+] [[#SetSceneIdForPrivateApp|SetSceneIdForPrivateApp]]
|-
|-
| 139 || [S2]
| 139 || [S2] [20.0.0+] [[#GetSceneIdForPrivateApp|GetSceneIdForPrivateApp]]
|-
|-
| 200 || [[#GetVibrationDeviceInfo]]
| 200 || [[#GetVibrationDeviceInfo]]
Line 188: Line 188:
| 214 || [17.0.0+] SendVibrationValuesInMode
| 214 || [17.0.0+] SendVibrationValuesInMode
|-
|-
| 220 || [S2]
| 220 || [S2] [20.0.0+] [[#IsOunceVibrationDeviceMounted|IsOunceVibrationDeviceMounted]]
|-
|-
| 300 || [3.0.0+] [[#ActivateConsoleSixAxisSensor]]
| 300 || [3.0.0+] [[#ActivateConsoleSixAxisSensor]]
Line 298: Line 298:
| 529 || [8.0.0+] [[#SetDisallowedPalmaConnection]]
| 529 || [8.0.0+] [[#SetDisallowedPalmaConnection]]
|-
|-
| 550 || [S2]
| 550 || [S2] [20.0.0+] [[#GetGlGrButtonConfigState|GetGlGrButtonConfigState]]
|-
|-
| 1000 || [[#SetNpadCommunicationMode]]
| 1000 || [[#SetNpadCommunicationMode]]
Line 346: Line 346:
| 3015 || [21.0.0+] SetDebugPadKeyboardMap
| 3015 || [21.0.0+] SetDebugPadKeyboardMap
|-
|-
| 3110 || [S2]
| 3110 || [S2] [[#InitializeJcms|InitializeJcms]]
|-
|-
| 3111 || [S2]
| 3111 || [S2] [[#FinalizeJcms|FinalizeJcms]]
|-
|-
| 3112 || [S2]
| 3112 || [S2] [[#StartJcms|StartJcms]]
|-
|-
| 3113 || [S2]
| 3113 || [S2] [[#StopJcms|StopJcms]]
|-
|-
| 3130 || [S2]
| 3130 || [S2] [20.0.0+] [[#InitializeNmouse|InitializeNmouse]]
|-
|-
| 3131 || [S2]
| 3131 || [S2] [20.0.0+] [[#FinalizeNmouse|FinalizeNmouse]]
|-
|-
| 3132 || [S2]
| 3132 || [S2] [20.0.0+] [[#SetNmousePointerRanges|SetNmousePointerRanges]]
|-
|-
| 3133 || [S2]
| 3133 || [S2] [20.0.0+] [[#GetNmousePointerRanges|GetNmousePointerRanges]]
|-
|-
| 3135 || [S2]
| 3135 || [S2] [20.0.0+] [[#EnableShowingCursor|EnableShowingCursor]]
|-
|-
| 3136 || [S2]
| 3136 || [S2] [20.0.0+] [[#SetNmouseButtonConfigJoyLeftJcms|SetNmouseButtonConfigJoyLeftJcms]]
|-
|-
| 3137 || [S2]
| 3137 || [S2] [20.0.0+] [[#SetNmouseButtonConfigJoyRightJcms|SetNmouseButtonConfigJoyRightJcms]]
|-
|-
| 3138 || [S2]
| 3138 || [S2] [20.0.0+] [[#SetMergedNmouseSourceTypes|SetMergedNmouseSourceTypes]]
|-
|-
| 3139 || [S2]
| 3139 || [S2] [20.0.0+] [[#InitializeNmouse2|InitializeNmouse2]]
|-
|-
| 3140 || [S2]
| 3140 || [S2] [20.0.0+] [[#SetNmousePointerPosition|SetNmousePointerPosition]]
|-
|-
| 3141 || [S2]
| 3141 || [S2] [20.0.0+] [[#EnableNmousePointer|EnableNmousePointer]]
|-
|-
| 3142 || [S2]
| 3142 || [S2] [20.0.0+] [[#RestrictNmousePointer|RestrictNmousePointer]]
|-
|-
| 3143 || [S2]
| 3143 || [S2] [20.0.0+]
|-
|-
| 3150 || [21.0.0+] SetMouseLibraryVersion
| 3150 || [21.0.0+] SetMouseLibraryVersion
Line 384: Line 384:


== CreateAppletResource ==
== CreateAppletResource ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]]. Returns an [[#IAppletResource]].
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an [[#IAppletResource]].


== ActivateDebugPad ==
== ActivateDebugPad ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== ActivateTouchScreen ==
== ActivateTouchScreen ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== ActivateMouse ==
== ActivateMouse ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== ActivateKeyboard ==
== ActivateKeyboard ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SendKeyboardLockKeyEvent ==
== SendKeyboardLockKeyEvent ==
Takes a PID, an u32 BitFlagSet [[#KeyboardLockKeyEvent]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an u32 BitFlagSet [[#KeyboardLockKeyEvent]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


This is identical to the hidsys cmd.
This is identical to the hidsys cmd.
Line 414: Line 414:


== ActivateXpad ==
== ActivateXpad ==
Takes a PID, an u32 "nn::hid::BasicXpadId", an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an u32 "nn::hid::BasicXpadId", an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


[10.0.0+] Stubbed, just returns 0.
[10.0.0+] Stubbed, just returns 0.
Line 469: Line 469:


== StartSixAxisSensor ==
== StartSixAxisSensor ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== StopSixAxisSensor ==
== StopSixAxisSensor ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== IsSixAxisSensorFusionEnabled ==
== IsSixAxisSensorFusionEnabled ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns an output bool.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


== EnableSixAxisSensorFusion ==
== EnableSixAxisSensorFusion ==
Takes a PID, a bool, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SetSixAxisSensorFusionParameters ==
== SetSixAxisSensorFusionParameters ==
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], two floats, and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], two floats, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Official sw will throw an error before using this cmd, if the first float is outside of the bounds of 0.0f-1.0f.
Official sw will throw an error before using this cmd, if the first float is outside of the bounds of 0.0f-1.0f.


== GetSixAxisSensorFusionParameters ==
== GetSixAxisSensorFusionParameters ==
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], returns two output floats.
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns two output floats.


== ResetSixAxisSensorFusionParameters ==
== ResetSixAxisSensorFusionParameters ==
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SetAccelerometerParameters ==
== SetAccelerometerParameters ==
Takes a PID, a [[#SixAxisSensorHandle]], two floats, and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], two floats, and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


sdknso will throw an error before using this cmd, if either of the floats are less than 0.0f, or when the second float is larger than the first float.
sdknso will throw an error before using this cmd, if either of the floats are less than 0.0f, or when the second float is larger than the first float.
Line 499: Line 499:


== GetAccelerometerParameters ==
== GetAccelerometerParameters ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns two output floats.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns two output floats.


sdknso 10.x removed the nn::hid wrapper for this.
sdknso 10.x removed the nn::hid wrapper for this.


== ResetAccelerometerParameters ==
== ResetAccelerometerParameters ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


sdknso 10.x removed the nn::hid wrapper for this.
sdknso 10.x removed the nn::hid wrapper for this.


== SetAccelerometerPlayMode ==
== SetAccelerometerPlayMode ==
Takes a PID, a [[#SixAxisSensorHandle]], an u32 [[#AccelerometerPlayMode]], and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], an u32 [[#AccelerometerPlayMode]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


sdknso 10.x removed the nn::hid wrapper for this.
sdknso 10.x removed the nn::hid wrapper for this.


== GetAccelerometerPlayMode ==
== GetAccelerometerPlayMode ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns an output u32 [[#AccelerometerPlayMode]].
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u32 [[#AccelerometerPlayMode]].


sdknso 10.x removed the nn::hid wrapper for this.
sdknso 10.x removed the nn::hid wrapper for this.


== ResetAccelerometerPlayMode ==
== ResetAccelerometerPlayMode ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


sdknso 10.x removed the nn::hid wrapper for this.
sdknso 10.x removed the nn::hid wrapper for this.


== SetGyroscopeZeroDriftMode ==
== SetGyroscopeZeroDriftMode ==
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], an u32 [[#GyroscopeZeroDriftMode]], and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], an u32 [[#GyroscopeZeroDriftMode]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== GetGyroscopeZeroDriftMode ==
== GetGyroscopeZeroDriftMode ==
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], returns an output u32 [[#GyroscopeZeroDriftMode]].
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u32 [[#GyroscopeZeroDriftMode]].


Gets the value written by [[#SetGyroscopeZeroDriftMode]].
Gets the value written by [[#SetGyroscopeZeroDriftMode]].


== ResetGyroscopeZeroDriftMode ==
== ResetGyroscopeZeroDriftMode ==
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Same as [[#SetGyroscopeZeroDriftMode]] except the [[#GyroscopeZeroDriftMode]] is hard-coded to value 1 (Standard).
Same as [[#SetGyroscopeZeroDriftMode]] except the [[#GyroscopeZeroDriftMode]] is hard-coded to value 1 (Standard).


== IsSixAxisSensorAtRest ==
== IsSixAxisSensorAtRest ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns an output bool.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


== IsFirmwareUpdateAvailableForSixAxisSensor ==
== IsFirmwareUpdateAvailableForSixAxisSensor ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns an output bool.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


== EnableSixAxisSensorUnalteredPassthrough ==
== EnableSixAxisSensorUnalteredPassthrough ==
Takes a PID, a [[#SixAxisSensorHandle]], a bool, and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], a bool, and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== IsSixAxisSensorUnalteredPassthroughEnabled ==
== IsSixAxisSensorUnalteredPassthroughEnabled ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns an output bool.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


== StoreSixAxisSensorCalibrationParameter ==
== StoreSixAxisSensorCalibrationParameter ==
Takes a PID, a [[#SixAxisSensorHandle]], a SixAxisSensorCalibrationParameter, and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], a SixAxisSensorCalibrationParameter, and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== LoadSixAxisSensorCalibrationParameter ==
== LoadSixAxisSensorCalibrationParameter ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns a SixAxisSensorCalibrationParameter.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns a SixAxisSensorCalibrationParameter.


== GetSixAxisSensorIcInformation ==
== GetSixAxisSensorIcInformation ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], returns a SixAxisSensorIcInformation.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns a SixAxisSensorIcInformation.


== ResetIsSixAxisSensorDeviceNewlyAssigned ==
== ResetIsSixAxisSensorDeviceNewlyAssigned ==
Takes a PID, a [[#SixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#SixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== ActivateGesture ==
== ActivateGesture ==
Takes a PID-descriptor, a s32, and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID-descriptor, a s32, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


sdknso passes hard-coded value 1 for the s32.
sdknso passes hard-coded value 1 for the s32.


== SetSupportedNpadStyleSet ==
== SetSupportedNpadStyleSet ==
Takes a PID-descriptor, an u32 [[#NpadStyleTag]], and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID-descriptor, an u32 [[#NpadStyleTag]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== GetSupportedNpadStyleSet ==
== GetSupportedNpadStyleSet ==
Takes a PID-descriptor and an u64 [[AM_services|AppletResourceUserId]], returns an u32 [[#NpadStyleTag]].
Takes a PID-descriptor and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an u32 [[#NpadStyleTag]].


== SetSupportedNpadIdType ==
== SetSupportedNpadIdType ==
Takes a PID-descriptor, a type-0x9 input buffer, and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, a type-0x9 input buffer, and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


The input buffer contains an array of [[#NpadIdType]]. The total entries in this array must be <=10.
The input buffer contains an array of [[#NpadIdType]]. The total entries in this array must be <=10.


== ActivateNpad ==
== ActivateNpad ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


On newer sysvers this runs the same code as [[#ActivateNpadWithRevision]], with revision=0.
On newer sysvers this runs the same code as [[#ActivateNpadWithRevision]], with revision=0.


== DeactivateNpad ==
== DeactivateNpad ==
Takes a PID and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


This just returns 0.
This just returns 0.
Line 589: Line 589:


== AcquireNpadStyleSetUpdateEventHandle ==
== AcquireNpadStyleSetUpdateEventHandle ==
Takes a PID, an input u32, an u64 [[AM_services|AppletResourceUserId]], and an u64. Returns an output event handle, autoclear for this is user-specified.
Takes a PID, an input u32, an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and an u64. Returns an output event handle, autoclear for this is user-specified.


The value for the last u64 doesn't seem to matter (?): official sw sets this to the address of the structure used for storing the event which is initialized after using this cmd.
The value for the last u64 doesn't seem to matter (?): official sw sets this to the address of the structure used for storing the event which is initialized after using this cmd.


== DisconnectNpad ==
== DisconnectNpad ==
Takes a PID, an u32 [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID, an u32 [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== GetPlayerLedPattern ==
== GetPlayerLedPattern ==
Line 600: Line 600:


== ActivateNpadWithRevision ==
== ActivateNpadWithRevision ==
Takes a PID-descriptor, a s32 revision, and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, a s32 revision, and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


Revisions:
Revisions:
Line 610: Line 610:


== SetNpadJoyHoldType ==
== SetNpadJoyHoldType ==
Takes a PID-descriptor, an input [[#NpadJoyHoldType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an input [[#NpadJoyHoldType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== GetNpadJoyHoldType ==
== GetNpadJoyHoldType ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. Returns an output [[#NpadJoyHoldType]].
Takes a PID-descriptor and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output [[#NpadJoyHoldType]].


sdknso will Abort when the output is not 0-1.
sdknso will Abort when the output is not 0-1.


== SetNpadJoyAssignmentModeSingleByDefault ==
== SetNpadJoyAssignmentModeSingleByDefault ==
Takes a PID-descriptor, an u32 [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an u32 [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


This eventually calls the same func as [[#SetNpadJoyAssignmentModeSingle]], except with [[#NpadJoyDeviceType]]=0.
This eventually calls the same func as [[#SetNpadJoyAssignmentModeSingle]], except with [[#NpadJoyDeviceType]]=0.


== SetNpadJoyAssignmentModeSingle ==
== SetNpadJoyAssignmentModeSingle ==
Takes a PID-descriptor, an u32 [[#NpadIdType]], [[AM_services|AppletResourceUserId]], and s64 [[#NpadJoyDeviceType]]. No output.
Takes a PID-descriptor, an u32 [[#NpadIdType]], [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and s64 [[#NpadJoyDeviceType]]. No output.


This eventually runs the same code as [[#SetNpadJoyAssignmentModeSingleWithDestination]], except the output fields aren't exposed.
This eventually runs the same code as [[#SetNpadJoyAssignmentModeSingleWithDestination]], except the output fields aren't exposed.


== SetNpadJoyAssignmentModeDual ==
== SetNpadJoyAssignmentModeDual ==
Takes a PID-descriptor, an u32 [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an u32 [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== MergeSingleJoyAsDualJoy ==
== MergeSingleJoyAsDualJoy ==
Takes a PID-descriptor, two u32 [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, two u32 [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== StartLrAssignmentMode ==
== StartLrAssignmentMode ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== StopLrAssignmentMode ==
== StopLrAssignmentMode ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SetNpadHandheldActivationMode ==
== SetNpadHandheldActivationMode ==
Takes a PID, an [[AM_services|AppletResourceUserId]], a s64 [[#NpadHandheldActivationMode]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a s64 [[#NpadHandheldActivationMode]], no output.


== GetNpadHandheldActivationMode ==
== GetNpadHandheldActivationMode ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]]. Returns an output s64 [[#NpadHandheldActivationMode]]. Official user-processes Abort if the output value is not 0-2.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output s64 [[#NpadHandheldActivationMode]]. Official user-processes Abort if the output value is not 0-2.


== SwapNpadAssignment ==
== SwapNpadAssignment ==
Takes a PID, two u32s [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID, two u32s [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== IsUnintendedHomeButtonInputProtectionEnabled ==
== IsUnintendedHomeButtonInputProtectionEnabled ==
Takes a PID, an u32 [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. Returns an output bool.
Takes a PID, an u32 [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output bool.


Unused by sdknso, the flag from [[#NpadSystemProperties]] is used instead.
Unused by sdknso, the flag from [[#NpadSystemProperties]] is used instead.


== EnableUnintendedHomeButtonInputProtection ==
== EnableUnintendedHomeButtonInputProtection ==
Takes a PID, a bool, an u32 [[#NpadIdType]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID, a bool, an u32 [[#NpadIdType]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== SetNpadJoyAssignmentModeSingleWithDestination ==
== SetNpadJoyAssignmentModeSingleWithDestination ==
Takes a PID, an u32, an [[AM_services|AppletResourceUserId]], and s64 [[#NpadJoyDeviceType]]. Returns an output bool and u32 [[#NpadIdType]].
Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and s64 [[#NpadJoyDeviceType]]. Returns an output bool and u32 [[#NpadIdType]].


The bool indicates whether the output [[#NpadIdType]] is set.
The bool indicates whether the output [[#NpadIdType]] is set.


== SetNpadAnalogStickUseCenterClamp ==
== SetNpadAnalogStickUseCenterClamp ==
Takes a PID, a bool, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SetNpadCaptureButtonAssignment ==
== SetNpadCaptureButtonAssignment ==
Takes a PID, a [[#NpadStyleSet]], an [[AM_services|AppletResourceUserId]], a [[#NpadButtonSet]], no output.
Takes a PID, a [[#NpadStyleSet]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#NpadButtonSet]], no output.


Exactly 1 bit must be set in the [[#NpadStyleSet]]. Multiple button bits can be set.
Exactly 1 bit must be set in the [[#NpadStyleSet]]. Multiple button bits can be set.
Line 672: Line 672:


== ClearNpadCaptureButtonAssignment ==
== ClearNpadCaptureButtonAssignment ==
Takes a PID, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd138 ==
== SetSceneIdForPrivateApp ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, two input u64s, no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], an u64, no output.
 
The u64 is converted from a s32 by official sw.


== Cmd139 ==
== GetSceneIdForPrivateApp ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u64, returns an output u64.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u64.
 
The u64 is converted to a s32 by official sw.


== GetVibrationDeviceInfo ==
== GetVibrationDeviceInfo ==
Line 688: Line 692:


== SendVibrationValue ==
== SendVibrationValue ==
Takes a PID-descriptor, a [[#VibrationDeviceHandle]], a [[#VibrationValue]] immediately after that, and an u64 [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, a [[#VibrationDeviceHandle]], a [[#VibrationValue]] immediately after that, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== GetActualVibrationValue ==
== GetActualVibrationValue ==
Takes a PID-descriptor, a [[#VibrationDeviceHandle]], and an u64 [[AM_services|AppletResourceUserId]]. Returns an output [[#VibrationValue]].
Takes a PID-descriptor, a [[#VibrationDeviceHandle]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output [[#VibrationValue]].


== CreateActiveVibrationDeviceList ==
== CreateActiveVibrationDeviceList ==
Line 705: Line 709:


== SendVibrationValues ==
== SendVibrationValues ==
Takes an u64 [[AM_services|AppletResourceUserId]], and two type-0x9 input buffers containing an array of: [[#VibrationDeviceHandle]] for first buffer, and [[#VibrationValue]] for the second buffer.
Takes an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and two type-0x9 input buffers containing an array of: [[#VibrationDeviceHandle]] for first buffer, and [[#VibrationValue]] for the second buffer.


Official sw uses the same entry-count for each array.
Official sw uses the same entry-count for each array.


== SendVibrationGcErmCommand ==
== SendVibrationGcErmCommand ==
Takes a PID, a [[#VibrationDeviceHandle]], [[AM_services|AppletResourceUserId]], an u64 [[#VibrationGcErmCommand]], no output.
Takes a PID, a [[#VibrationDeviceHandle]], [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], an u64 [[#VibrationGcErmCommand]], no output.


== GetActualVibrationGcErmCommand ==
== GetActualVibrationGcErmCommand ==
Takes a PID, a [[#VibrationDeviceHandle]], [[AM_services|AppletResourceUserId]], returns an output u64 [[#VibrationGcErmCommand]].
Takes a PID, a [[#VibrationDeviceHandle]], [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u64 [[#VibrationGcErmCommand]].


== BeginPermitVibrationSession ==
== BeginPermitVibrationSession ==
Takes an input [[AM_services|AppletResourceUserId]], no output.
Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Begins a forced-permitted vibration session.
Begins a forced-permitted vibration session.
Line 726: Line 730:


== IsVibrationDeviceMounted ==
== IsVibrationDeviceMounted ==
Takes a PID, an [[#VibrationDeviceHandle]], and an u64 [[AM_services|AppletResourceUserId]], returns an output u8 bool.
Takes a PID, an [[#VibrationDeviceHandle]], and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 bool.


== SendVibrationValueInBool ==
== SendVibrationValueInBool ==
Takes a PID, a bool, a [[#VibrationDeviceHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, a [[#VibrationDeviceHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Stubbed, this just returns 0.
Stubbed, this just returns 0.
Line 735: Line 739:
This is currently not exposed by sdknso.
This is currently not exposed by sdknso.


== Cmd220 ==
== IsOunceVibrationDeviceMounted ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u32, an u64, returns an output u8.
Takes a PID, a [[#VibrationDeviceHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


== ActivateConsoleSixAxisSensor ==
== ActivateConsoleSixAxisSensor ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


As of [10.0.0+] sdknso no longer uses this with SevenSixAxisSensor.
As of [10.0.0+] sdknso no longer uses this with SevenSixAxisSensor.


== StartConsoleSixAxisSensor ==
== StartConsoleSixAxisSensor ==
Takes a PID, a [[#ConsoleSixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#ConsoleSixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== StopConsoleSixAxisSensor ==
== StopConsoleSixAxisSensor ==
Takes a PID, a [[#ConsoleSixAxisSensorHandle]], and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#ConsoleSixAxisSensorHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== ActivateSevenSixAxisSensor ==
== ActivateSevenSixAxisSensor ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Unused by official sw, [[#ActivateConsoleSixAxisSensor]] is used instead. However, internally ActivateSevenSixAxisSensor is identical to [[#ActivateConsoleSixAxisSensor]]. Deactivation is done with hiddbg DeactivateConsoleSixAxisSensor (which is unused by official sw).
Unused by official sw, [[#ActivateConsoleSixAxisSensor]] is used instead. However, internally ActivateSevenSixAxisSensor is identical to [[#ActivateConsoleSixAxisSensor]]. Deactivation is done with hiddbg DeactivateConsoleSixAxisSensor (which is unused by official sw).


== StartSevenSixAxisSensor ==
== StartSevenSixAxisSensor ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== StopSevenSixAxisSensor ==
== StopSevenSixAxisSensor ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== InitializeSevenSixAxisSensor ==
== InitializeSevenSixAxisSensor ==
Takes a PID, an u64 [[AM_services|AppletResourceUserId]], two u64s for the size of each TransferMemory, and two TransferMemory handles. No output.
Takes a PID, an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], two u64s for the size of each TransferMemory, and two TransferMemory handles. No output.


The size of the first TransferMemory is 0x1000 with MemoryPermission=read-only, while the second one has size 0x7F000 with MemoryPermission=none. sdknso uses an user-specified buffer for this, with the second tmem immediately following the first one. sdknso later uses data at buf+0 for loading SevenSixAxisSensor state.
The size of the first TransferMemory is 0x1000 with MemoryPermission=read-only, while the second one has size 0x7F000 with MemoryPermission=none. sdknso uses an user-specified buffer for this, with the second tmem immediately following the first one. sdknso later uses data at buf+0 for loading SevenSixAxisSensor state.
Line 829: Line 833:


== FinalizeSevenSixAxisSensor ==
== FinalizeSevenSixAxisSensor ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SetSevenSixAxisSensorFusionStrength ==
== SetSevenSixAxisSensorFusionStrength ==
Takes a PID, a float, and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a float, and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== GetSevenSixAxisSensorFusionStrength ==
== GetSevenSixAxisSensorFusionStrength ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], returns an output float.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output float.


== ResetSevenSixAxisSensorTimestamp ==
== ResetSevenSixAxisSensorTimestamp ==
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== IsUsbFullKeyControllerEnabled ==
== IsUsbFullKeyControllerEnabled ==
Line 872: Line 876:


== GetNpadOfHighestBatteryLevel ==
== GetNpadOfHighestBatteryLevel ==
Takes a PID, a type-0x9 input buffer containing an array of u32 [[#NpadIdType]], an u64 [[AM_services|AppletResourceUserId]], returns an output u32 [[#NpadIdType]].
Takes a PID, a type-0x9 input buffer containing an array of u32 [[#NpadIdType]], an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u32 [[#NpadIdType]].


[[#NpadIdType|Handheld]] is ignored.
[[#NpadIdType|Handheld]] is ignored.


== GetPalmaConnectionHandle ==
== GetPalmaConnectionHandle ==
Takes a PID, an u32 [[#NpadIdType]], an [[AM_services|AppletResourceUserId]], returns an output [[#PalmaConnectionHandle]].
Takes a PID, an u32 [[#NpadIdType]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output [[#PalmaConnectionHandle]].


== InitializePalma ==
== InitializePalma ==
Line 1,001: Line 1,005:


== SetIsPalmaAllConnectable ==
== SetIsPalmaAllConnectable ==
Takes a PID, a bool, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


The sysmodule also calls the code which eventually runs from this, from various other funcs internally (bool value varies).
The sysmodule also calls the code which eventually runs from this, from various other funcs internally (bool value varies).
Line 1,008: Line 1,012:


== SetIsPalmaPairedConnectable ==
== SetIsPalmaPairedConnectable ==
Takes a PID, a bool, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


The actual cmd impl ignores the PID/AppletResourceUserId.
The actual cmd impl ignores the PID/AppletResourceUserId.
Line 1,030: Line 1,034:


== EnablePalmaBoostMode ==
== EnablePalmaBoostMode ==
Takes a PID, a bool, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== GetPalmaBluetoothAddress ==
== GetPalmaBluetoothAddress ==
Line 1,036: Line 1,040:


== SetDisallowedPalmaConnection ==
== SetDisallowedPalmaConnection ==
Takes a PID, an [[AM_services|AppletResourceUserId]], a type-0x9 input buffer containing an array of [[Bluetooth_Driver_services#Address|Address]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a type-0x9 input buffer containing an array of [[Bluetooth_Driver_services#Address|Address]], no output.


== Cmd550 ==
== GetGlGrButtonConfigState ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u32, an u64, returns two output u8s.
Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns two output bools.


== SetNpadCommunicationMode ==
== SetNpadCommunicationMode ==
Takes a PID, an [[AM_services|AppletResourceUserId]], a s64 [[#NpadCommunicationMode]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a s64 [[#NpadCommunicationMode]], no output.


[2.0.0+] Stubbed, just returns 0.
[2.0.0+] Stubbed, just returns 0.
Line 1,056: Line 1,060:


== SetTouchScreenConfiguration ==
== SetTouchScreenConfiguration ==
Takes a PID, a [[#TouchScreenConfigurationForNx]], an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a [[#TouchScreenConfigurationForNx]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== IsFirmwareUpdateNeededForNotification ==
== IsFirmwareUpdateNeededForNotification ==
Takes a PID, a s32, an [[AM_services|AppletResourceUserId]], returns an output bool.
Takes a PID, a s32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


sdknso passes hard-coded value 1 for the s32.
sdknso passes hard-coded value 1 for the s32.


== SetTouchScreenOutputRanges ==
== SetTouchScreenOutputRanges ==
Takes a PID, a s32 width, a s32 height, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a s32 width, a s32 height, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


This is used by user-processes prior to [[#ActivateTouchScreen|ActivateTouchScreen]], on newer versions.
This is used by user-processes prior to [[#ActivateTouchScreen|ActivateTouchScreen]], on newer versions.
Line 1,071: Line 1,075:


== ActivateDigitizer ==
== ActivateDigitizer ==
Takes a PID and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== Cmd3110 ==
== InitializeJcms ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, a handle, an u64, an u64, no output.
Takes a PID, a TransferMemory handle, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], an u64 tmem_size, no output.
 
The input TransferMemory is created with permissions = R--. The user-process later reads from the buffer used with this to get the JcmsState for the specified [[#JcmsHandle|JcmsHandle]].


== Cmd3111 ==
== FinalizeJcms ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID and an u64, no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== Cmd3112 ==
== StartJcms ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u32, an u64, no output.
Takes a PID, a [[#JcmsHandle|JcmsHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd3113 ==
== StopJcms ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u32, an u64, no output.
Takes a PID, a [[#JcmsHandle|JcmsHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd3130 ==
== InitializeNmouse ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, a handle, an u8, two u32s, two u64s, no output.
Takes a PID, a TransferMemory handle, an u8, two s32s (width/height), an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], an u64 tmem_size, no output.
 
Official sw converts the input [[#NmouseStateRange|NmouseStateRange]] to the relevant s32s (the s32s are not directly exposed).
 
Official sw passes value 0 for the u8.
 
After official sw finishes using this, it also uses [[#SetMergedNmouseSourceTypes|SetMergedNmouseSourceTypes]] with value 0x6.
 
The input TransferMemory is created with permissions = R--. The user-process later reads from the buffer used with this.


== Cmd3131 ==
== FinalizeNmouse ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd3132 ==
== SetNmousePointerRanges ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u32, an u32, an u64, no output.
Takes a PID, two s32s (width/height), an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
This is also exposed as SetNmouseStateRanges, with the input [[#NmouseStateRange|NmouseStateRange]] being converted to the relevant s32s.


== Cmd3133 ==
== GetNmousePointerRanges ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u64, returns two output u32s.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns two output s32s (width/height).
 
This is also exposed as GetNmouseStateRanges, with the output data being compared to determine the output [[#NmouseStateRange|NmouseStateRange]].


== Cmd3135 ==
== EnableShowingCursor ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, a bool, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd3136 ==
== SetNmouseButtonConfigJoyLeftJcms ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u64, an u64, no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#NmouseButtonConfigJoyLeftJcms|NmouseButtonConfigJoyLeftJcms]], no output.


== Cmd3137 ==
== SetNmouseButtonConfigJoyRightJcms ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u64, an u64, no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#NmouseButtonConfigJoyRightJcms|NmouseButtonConfigJoyRightJcms]], no output.


== Cmd3138 ==
== SetMergedNmouseSourceTypes ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, an u32, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Official sw masks the u32 with bitmask 0x6.
Official sw masks the u32 with bitmask 0x6.


== Cmd3139 ==
The input u32 is a 32bit BitFlagSet of [[#NmouseType|NmouseType]].
 
== InitializeNmouse2 ==
Unofficial name.
 
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, a TransferMemory handle, an u8, an u32 width, an u32 height, an u32, an [[AM_services|AppletResourceUserId]], an u64 tmem_size, no output.
Takes a PID, a TransferMemory handle, a [[#NmousePointerType|NmousePointerType]], a s32 width, a s32 height, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], an u64 tmem_size, no output.


The input TransferMemory is created with permissions = R--. The user-process later reads from the buffer used with this.
The input TransferMemory is created with permissions = R--. The user-process later reads from the buffer used with this (same as with [[#InitializeNmouse|InitializeNmouse]]).


Official sw always (?) passes value 1 for the last u32.
Official sw passes value 1 for the last u32.


This and the related nearby cmds are likely (?) for Joy-Con 2 Mouse Mode.
This and the related nearby cmds are for Joy-Con 2 Mouse Mode.


== Cmd3140 ==
== SetNmousePointerPosition ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, two u32s, two u64s, no output.
Takes a PID, two s32s, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#NmouseHandle|NmouseHandle]], no output.


== Cmd3141 ==
== EnableNmousePointer ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, a bool, an [[AM_services|AppletResourceUserId]], an u64, no output.
Takes a PID, a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#NmouseHandle|NmouseHandle]], no output.


== Cmd3142 ==
== RestrictNmousePointer ==
This is exclusive to S2.
This is exclusive to S2.


Takes a PID, 4 floats, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, 4 floats, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd3143 ==
== Cmd3143 ==
Line 1,600: Line 1,622:


== DeactivateNpad ==
== DeactivateNpad ==
Takes a PID and an [[AM_services|AppletResourceUserId]], no output.
Takes a PID and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


This just returns 0.
This just returns 0.
Line 1,944: Line 1,966:
| 334 || [20.0.0+] AcquireUniquePadButtonStateChangedEventHandle
| 334 || [20.0.0+] AcquireUniquePadButtonStateChangedEventHandle
|-
|-
| 500 || SetAppletResourceUserId
| 500 || [[#SetAppletResourceUserId]]
|-
|-
| 501 || [[#RegisterAppletResourceUserId|RegisterAppletResourceUserId]]
| 501 || [[#RegisterAppletResourceUserId]]
|-
|-
| 502 || UnregisterAppletResourceUserId
| 502 || [[#UnregisterAppletResourceUserId]]
|-
|-
| 503 || EnableAppletToGetInput
| 503 || [[#EnableAppletToGetInput]]
|-
|-
| 504 || SetAruidValidForVibration
| 504 || [[#SetAruidValidForVibration]]
|-
|-
| 505 || EnableAppletToGetSixAxisSensor
| 505 || [[#EnableAppletToGetSixAxisSensor]]
|-
|-
| 506 || [14.0.0+] EnableAppletToGetPadInput
| 506 || [14.0.0+] [[#EnableAppletToGetPadInput]]
|-
|-
| 507 || [14.0.0+] EnableAppletToGetTouchScreen
| 507 || [14.0.0+] [[#EnableAppletToGetTouchScreen]]
|-
|-
| 510 || [[#SetVibrationMasterVolume]]
| 510 || [[#SetVibrationMasterVolume]]
Line 2,379: Line 2,401:
|-
|-
| 1326 || [21.0.0+] SetTouchScreenOffset
| 1326 || [21.0.0+] SetTouchScreenOffset
|-
| 1327 || [22.0.0+] SetTouchStateSuppressed
|-
|-
| 1350 || [S2]
| 1350 || [S2]
Line 2,451: Line 2,475:
|-
|-
| 1480 || [S2]
| 1480 || [S2]
|-
| 1490 || [22.0.0+] GetInteractiveArea
|-
| 1491 || [22.0.0+] AcquireInteractiveAreaChangedEventHandle
|-
|-
| 12010 || [11.0.0-17.0.1] [[#SetButtonConfigLeft]]
| 12010 || [11.0.0-17.0.1] [[#SetButtonConfigLeft]]
Line 2,459: Line 2,487:


== AcquireHomeButtonEventHandle ==
== AcquireHomeButtonEventHandle ==
Takes a PID, an [[AM_services|AppletResourceUserId]], returns an output Event handle.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output Event handle.


The EventClearMode used by sdknso is user-specified. The Event is signaled when [[#HomeButtonState]] is updated.
The EventClearMode used by sdknso is user-specified. The Event is signaled when [[#HomeButtonState]] is updated.
Line 2,466: Line 2,494:


== ActivateHomeButton ==
== ActivateHomeButton ==
Takes a PID, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Activates the [[#HomeButtonSharedMemoryFormat|HomeButton]] sharedmem.
Activates the [[#HomeButtonSharedMemoryFormat|HomeButton]] sharedmem.


== AcquireSleepButtonEventHandle ==
== AcquireSleepButtonEventHandle ==
Takes a PID, an [[AM_services|AppletResourceUserId]], returns an output Event handle.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output Event handle.


The EventClearMode used by sdknso is user-specified. The Event is signaled when [[#SleepButtonState]] is updated.
The EventClearMode used by sdknso is user-specified. The Event is signaled when [[#SleepButtonState]] is updated.
Line 2,478: Line 2,506:


== ActivateSleepButton ==
== ActivateSleepButton ==
Takes a PID, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Activates the [[#SleepButtonSharedMemoryFormat|SleepButton]] sharedmem.
Activates the [[#SleepButtonSharedMemoryFormat|SleepButton]] sharedmem.


== AcquireCaptureButtonEventHandle ==
== AcquireCaptureButtonEventHandle ==
Takes a PID, an [[AM_services|AppletResourceUserId]], returns an output Event handle.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output Event handle.


The EventClearMode used by sdknso is user-specified. The Event is signaled when [[#CaptureButtonState]] is updated.
The EventClearMode used by sdknso is user-specified. The Event is signaled when [[#CaptureButtonState]] is updated.
Line 2,490: Line 2,518:


== ActivateCaptureButton ==
== ActivateCaptureButton ==
Takes a PID, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


Activates the [[#CaptureButtonSharedMemoryFormat|CaptureButton]] sharedmem.
Activates the [[#CaptureButtonSharedMemoryFormat|CaptureButton]] sharedmem.
Line 2,503: Line 2,531:


The output buffer contains an array of [[#UniquePadId]].
The output buffer contains an array of [[#UniquePadId]].
== SetAppletResourceUserId ==
Takes an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
Passing 0 instead of [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] results in process being tied to currently focused applet.


== RegisterAppletResourceUserId ==
== RegisterAppletResourceUserId ==
Takes an input bool, an [[Applet_Manager_services|AppletResourceUserId]], no output.
Takes an input bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
If input bool is '''true''', inlined [[#SetAppletResourceUserId]] is executed after successful registration.
 
[20.4.0+] Takes an input bool, an u8 [[Applet_Manager_services|ApplicationSpec]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
== UnregisterAppletResourceUserId ==
Takes an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
== EnableAppletToGetInput ==
Takes an input bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
== SetAruidValidForVibration ==
Takes an input bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
== EnableAppletToGetSixAxisSensor ==
Takes an input bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
 
== EnableAppletToGetPadInput ==
Takes an input bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


[20.4.0+] Takes an input bool, an u8, an [[Applet_Manager_services|AppletResourceUserId]], no output.
== EnableAppletToGetTouchScreen ==
Takes an input bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== SetVibrationMasterVolume ==
== SetVibrationMasterVolume ==
Line 2,658: Line 2,711:


== IsFirmwareAvailableForNotification ==
== IsFirmwareAvailableForNotification ==
Takes a PID, a s32, an [[#UniquePadId]], an [[AM_services|AppletResourceUserId]], returns an output bool.
Takes a PID, a s32, an [[#UniquePadId]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output bool.


sdknso uses hard-coded value 1 for the s32.
sdknso uses hard-coded value 1 for the s32.
Line 2,923: Line 2,976:
This is likely SetSelectorUiPresentationPolicy?
This is likely SetSelectorUiPresentationPolicy?


Takes a PID, an u8 SelectorUiPresentationPolicy, an [[AM_services|AppletResourceUserId]], no output.
Takes a PID, an u8 SelectorUiPresentationPolicy, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.


== Cmd1471 ==
== Cmd1471 ==
Line 2,930: Line 2,983:
This is likely GetSelectorUiPresentationPolicy?
This is likely GetSelectorUiPresentationPolicy?


Takes a PID, an [[AM_services|AppletResourceUserId]], returns an output u8 SelectorUiPresentationPolicy.
Takes a PID, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 SelectorUiPresentationPolicy.


== IHidbusSystemServer ==
== IHidbusSystemServer ==
Line 2,941: Line 2,994:
! Cmd || Name
! Cmd || Name
|-
|-
| 500 || SetAppletResourceUserId
| 500 || [[#SetAppletResourceUserId_2|#SetAppletResourceUserId]]
|-
|-
| 501 || RegisterAppletResourceUserId
| 501 || [[#RegisterAppletResourceUserId_2|#RegisterAppletResourceUserId]]
|-
|-
| 502 || UnregisterAppletResourceUserId
| 502 || [[#UnregisterAppletResourceUserId_2|#UnregisterAppletResourceUserId]]
|}
|}
== SetAppletResourceUserId ==
Takes an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
This function is called by [[AM_services|Applet Manager services]] after hid:sys [[#SetAppletResourceUserId|SetAppletResourceUserId]].
== RegisterAppletResourceUserId ==
Takes an u8 [[Applet_Manager_services#AppletId|AppletId]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
This function is called by [[AM_services|Applet Manager services]] after hid:sys [[#RegisterAppletResourceUserId|RegisterAppletResourceUserId]].
== UnregisterAppletResourceUserId ==
Takes an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
This function is called by [[AM_services|Applet Manager services]] before hid:sys [[#UnregisterAppletResourceUserId|UnregisterAppletResourceUserId]].


= hid:tmp =
= hid:tmp =
Line 3,009: Line 3,080:


== ActivateIrsensor ==
== ActivateIrsensor ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== DeactivateIrsensor ==
== DeactivateIrsensor ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== GetIrsensorSharedMemoryHandle ==
== GetIrsensorSharedMemoryHandle ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. Returns a SharedMemory handle.
Takes a PID-descriptor and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns a SharedMemory handle.


The SharedMemory is "nn::irsensor::detail::StatusManager". It's mapped with permission read-only and size 0x8000.
The SharedMemory is "nn::irsensor::detail::StatusManager". It's mapped with permission read-only and size 0x8000.
Line 3,363: Line 3,434:


== StopImageProcessor ==
== StopImageProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== RunMomentProcessor ==
== RunMomentProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], and a [[#PackedMomentProcessorConfig]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and a [[#PackedMomentProcessorConfig]]. No output.


== RunClusteringProcessor ==
== RunClusteringProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], and a [[#PackedClusteringProcessorConfig]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], and a [[#PackedClusteringProcessorConfig]]. No output.


== RunImageTransferProcessor ==
== RunImageTransferProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], a [[#PackedImageTransferProcessorConfig]], an u64 for the TransferMemory's size, and a TransferMemory handle. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#PackedImageTransferProcessorConfig]], an u64 for the TransferMemory's size, and a TransferMemory handle. No output.


The TransferMemory is created with an user specified buffer and permission none.
The TransferMemory is created with an user specified buffer and permission none.


== GetImageTransferProcessorState ==
== GetImageTransferProcessorState ==
Takes a PID-descriptor, a type-0x6 output buffer, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. Returns an [[#ImageTransferProcessorState]]. No output.
Takes a PID-descriptor, a type-0x6 output buffer, an [[#IrCameraHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an [[#ImageTransferProcessorState]]. No output.


== RunTeraPluginProcessor==
== RunTeraPluginProcessor==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedTeraPluginProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedTeraPluginProcessorConfig]] (immediately after the previous word), and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== GetNpadIrCameraHandle ==
== GetNpadIrCameraHandle ==
Line 3,386: Line 3,457:


== RunPointingProcessor ==
== RunPointingProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedPointingProcessorConfig]] (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 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== SuspendImageProcessor ==
== SuspendImageProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


sdknso uses this from the Run*Processor funcs to suspend the current Processor when the current [[#PackedFunctionLevel|FunctionLevel]] is >= 0x1, prior to starting another Processor if needed (depending on  what Processor was already active via a state field). Hence, this cmd is only used with [4.0.0+].
sdknso uses this from the Run*Processor funcs to suspend the current Processor when the current [[#PackedFunctionLevel|FunctionLevel]] is >= 0x1, prior to starting another Processor if needed (depending on  what Processor was already active via a state field). Hence, this cmd is only used with [4.0.0+].


== CheckFirmwareVersion ==
== CheckFirmwareVersion ==
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 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


sdknso didn't actually use this until 4.x (the RequiredMcuVersion was also updated with that version).
sdknso didn't actually use this until 4.x (the RequiredMcuVersion was also updated with that version).


== SetFunctionLevel ==
== SetFunctionLevel ==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedFunctionLevel]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedFunctionLevel]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== RunImageTransferExProcessor ==
== RunImageTransferExProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], a [[#PackedImageTransferProcessorExConfig]], an u64 for the TransferMemory's size, and a TransferMemory handle. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], a [[#PackedImageTransferProcessorExConfig]], an u64 for the TransferMemory's size, and a TransferMemory handle. No output.


The TransferMemory is created with an user specified buffer and permission none.
The TransferMemory is created with an user specified buffer and permission none.


== RunIrLedProcessor ==
== RunIrLedProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedIrLedProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedIrLedProcessorConfig]] (immediately after the previous word), and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== StopImageProcessorAsync ==
== StopImageProcessorAsync ==
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== ActivateIrsensorWithFunctionLevel ==
== ActivateIrsensorWithFunctionLevel ==
Takes a PID-descriptor, an [[#PackedFunctionLevel]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#PackedFunctionLevel]], and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


= irs:sys =
= irs:sys =
Line 3,422: Line 3,493:
! Cmd || Name
! Cmd || Name
|-
|-
| 500 || [[#SetAppletResourceUserId]]
| 500 || [[#SetAppletResourceUserId_3|#SetAppletResourceUserId]]
|-
|-
| 501 || [[#RegisterAppletResourceUserId]]
| 501 || [[#RegisterAppletResourceUserId_3|#RegisterAppletResourceUserId]]
|-
|-
| 502 || [[#UnregisterAppletResourceUserId]]
| 502 || [[#UnregisterAppletResourceUserId_3|#UnregisterAppletResourceUserId]]
|-
|-
| 503 || [[#EnableAppletToGetInput]]
| 503 || [[#EnableAppletToGetInput_2|#EnableAppletToGetInput]]
|}
|}


== SetAppletResourceUserId ==
== SetAppletResourceUserId ==
Takes an [[AM_services|AppletResourceUserId]]. No output.
Takes an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== RegisterAppletResourceUserId ==
== RegisterAppletResourceUserId ==
Takes a bool and an [[AM_services|AppletResourceUserId]]. No output.
Takes a bool and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== UnregisterAppletResourceUserId ==
== UnregisterAppletResourceUserId ==
Takes an [[AM_services|AppletResourceUserId]]. No output.
Takes an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== EnableAppletToGetInput ==
== EnableAppletToGetInput ==
Takes a bool and an [[AM_services|AppletResourceUserId]]. No output.
Takes a bool and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


= ahid:cd =
= ahid:cd =
Line 3,667: Line 3,738:


Official sw opens a temporary service-session for each func using this, with it being closed once done: no global session is kept open.
Official sw opens a temporary service-session for each func using this, with it being closed once done: no global session is kept open.
[S2] Official sw no longer supports this (this service still exists for S1-compat however).


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,704: Line 3,777:


== GetBusHandle ==
== GetBusHandle ==
Takes an input u32 [[#NpadIdType]], an u64 [[#BusType]] and an u64 [[AM_services|AppletResourceUserId]]. Returns an output bool '''HasHandle''' and a [[#BusHandle]].
Takes an input u32 [[#NpadIdType]], an u64 [[#BusType]] and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output bool '''HasHandle''' and a [[#BusHandle]].


'''HasHandle''' indicates whether the [[#BusHandle]] is valid.
'''HasHandle''' indicates whether the [[#BusHandle]] is valid.
Line 3,718: Line 3,791:


== Initialize ==
== Initialize ==
Takes an input [[#BusHandle]] and an u64 [[AM_services|AppletResourceUserId]]. No output.
Takes an input [[#BusHandle]] and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


Prior to using this cmd, sdknso handles [[#GetSharedMemoryHandle|sharedmem]] mapping if not done previously.
Prior to using this cmd, sdknso handles [[#GetSharedMemoryHandle|sharedmem]] mapping if not done previously.


== Finalize ==
== Finalize ==
Takes an input [[#BusHandle]] and an u64 [[AM_services|AppletResourceUserId]]. No output.
Takes an input [[#BusHandle]] and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


== EnableExternalDevice ==
== EnableExternalDevice ==
Takes an input bool '''IsEnabled''', a [[#BusHandle]], an u64 '''Version''' and an u64 [[AM_services|AppletResourceUserId]]. No output.
Takes an input bool '''IsEnabled''', a [[#BusHandle]], an u64 '''Version''' and an u64 [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output.


sdknso passes value 0x38900050018 (0x3A600050018 with 7.x+) for '''Version'''.
sdknso passes value 0x38900050018 (0x3A600050018 with 7.x+) for '''Version'''.
Line 8,843: Line 8,916:
|}
|}


= AbstractedPadState =
= JcmsHandle =
This is "nn::hid::JcmsHandle".
 
This is a 0x4-byte struct.
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Type, only 1 bit can be set. Converted to [[#HdlsDeviceInfo]]::type internally by [[#SetAutoPilotVirtualPadState]].
| 0x0 || 0x1 || [[#NpadIdType|NpadIdType]] (must be <8)
|-
|-
| 0x4 || 0x1 || Flags. [[#SetAutoPilotVirtualPadState]] only uses bit0: when clear it will skip using the rest of the input and run [[#UnsetAutoPilotVirtualPadState]] internally.
| 0x1 || 0x1 || [[#JcmsType|JcmsType]]
|-
|}
| 0x5 || 0x3 || Padding
 
= JcmsType =
This is "nn::hid::JcmsType".
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 ||
|-
| 1 ||
|}
 
= NmouseHandle =
This is "nn::hid::NmouseHandle".
 
This is a 0x8-byte struct.
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
|}
 
= NmousePointerType =
This is u8 enum "nn::hid::NmousePointerType".
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
!  Value
!  Description
|-
|}
 
= NmouseType =
This is "nn::hid::NmouseType".
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
|-
! Bit
! Description
|-
| 1 ||
|-
| 2 ||
|}
 
= NmouseButtonConfigJoyLeftJcms =
This is "nn::hid::NmouseButtonConfigJoyLeftJcms".
 
This is a 0x8-byte struct.
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
|}
 
= NmouseButtonConfigJoyRightJcms =
This is "nn::hid::NmouseButtonConfigJoyRightJcms".
 
This is a 0x8-byte struct.
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
|}
 
= NmouseStateRange =
This is u8 enum "nn::hid::NmouseStateRange".
 
This is exclusive to S2.
 
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || 1280x720
|-
| 1 || 1920x1080
|-
| 2 || 2560x1440
|-
| 3 || 3840x2160
|}
 
= AbstractedPadState =
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || Type, only 1 bit can be set. Converted to [[#HdlsDeviceInfo]]::type internally by [[#SetAutoPilotVirtualPadState]].
|-
| 0x4 || 0x1 || Flags. [[#SetAutoPilotVirtualPadState]] only uses bit0: when clear it will skip using the rest of the input and run [[#UnsetAutoPilotVirtualPadState]] internally.
|-
| 0x5 || 0x3 || Padding
|-
|-
| 0x8 || 0x4 || RGBA Single Body Color
| 0x8 || 0x4 || RGBA Single Body Color
Line 10,808: Line 10,994:
| [14.0.0+]
| [14.0.0+]
| 0419
| 0419
|-
| [21.0.0+]
| 0420
|}
|}


Line 10,843: Line 11,032:
| [8.0.0+]
| [8.0.0+]
| 081B
| 081B
|-
| [20.1.0+]
| 0920
|}
|}


Line 10,853: Line 11,045:
| [1.0.0+]
| [1.0.0+]
| 0305
| 0305
|-
| [20.1.0+]
| 0403
|}
|}