HID services: Difference between revisions

No edit summary
Line 347: Line 347:
Takes a PID-descriptor, an u32, and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an u32, and an [[AM_services|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, [[AM_services|AppletResourceUserId]], and s64 '''NpadJoyDeviceType'''. No output.
Takes a PID-descriptor, an u32, [[AM_services|AppletResourceUserId]], and s64 [[#NpadJoyDeviceType]]. No output.


== SetNpadJoyAssignmentModeDual ==
== SetNpadJoyAssignmentModeDual ==
Line 359: Line 359:


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


== GetVibrationDeviceInfo ==
== GetVibrationDeviceInfo ==
Line 500: Line 500:
Takes an input [[#VibrationDeviceHandle]]. No output.
Takes an input [[#VibrationDeviceHandle]]. No output.


== ConsoleSixAxisSensorHandle ==
= hid:dbg =
This is "nn::hid::ConsoleSixAxisSensorHandle". This is a 4-byte struct with 4-byte alignment.
This is "nn::hid::IHidDebugServer".
 
sdknso GetConsoleSixAxisSensorHandle always returns a handle with value 0x13.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Cmd || Name
|-
|-
| 0x0 || 0x4 || TypeValue
| 0 || DeactivateDebugPad
|-
|-
| 0x0 || 0x1 ||  
| 1 || SetDebugPadAutoPilotState
|-
|-
| 0x1 || 0x1 ||
| 2 || UnsetDebugPadAutoPilotState
|}
 
== SixAxisSensorHandle ==
This is "nn::hid::SixAxisSensorHandle". This is a 4-byte struct with 4-byte alignment.
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 10 || DeactivateTouchScreen
|-
|-
| 0x0 || 0x4 || TypeValue
| 11 || SetTouchScreenAutoPilotState
|-
|-
| 0x0 || 0x1 || NpadStyleIndex
| 12 || UnsetTouchScreenAutoPilotState
|-
|-
| 0x1 || 0x1 || PlayerNumber / [[#NpadIdType]]
| 13 || [9.0.0+] GetTouchScreenConfiguration
|-
|-
| 0x2 || 0x1 || Idx
| 20 || DeactivateMouse
|}
 
== VibrationDeviceHandle ==
This is "nn::hid::VibrationDeviceHandle". This is a 4-byte struct with 4-byte alignment.
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 21 || SetMouseAutoPilotState
|-
|-
| 0x0 || 0x4 || TypeValue
| 22 || UnsetMouseAutoPilotState
|-
|-
| 0x0 || 0x1 || NpadStyleIndex
| 30 || DeactivateKeyboard
|-
|-
| 0x1 || 0x1 || [[#NpadIdType|PlayerNumber]]
| 31 || SetKeyboardAutoPilotState
|-
|-
| 0x2 || 0x1 || DeviceIdx
| 32 || UnsetKeyboardAutoPilotState
|}
 
== VibrationDeviceInfo ==
This is "nn::hid::VibrationDeviceInfo" / "nn::hid::VibrationDeviceInfoForIpc". This is a 0x8-byte struct.
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 50 || DeactivateXpad
|-
| 0x0 || 0x4 ||
|-
| 0x4 || 0x4 ||
|}
 
== VibrationValue ==
This is "nn::hid::VibrationValue". This is a 0x10-byte struct, which contains 4 float values.
 
= hid:dbg =
This is "nn::hid::IHidDebugServer".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || DeactivateDebugPad
|-
| 1 || SetDebugPadAutoPilotState
|-
| 2 || UnsetDebugPadAutoPilotState
|-
| 10 || DeactivateTouchScreen
|-
| 11 || SetTouchScreenAutoPilotState
|-
| 12 || UnsetTouchScreenAutoPilotState
|-
| 13 || [9.0.0+] GetTouchScreenConfiguration
|-
| 20 || DeactivateMouse
|-
| 21 || SetMouseAutoPilotState
|-
| 22 || UnsetMouseAutoPilotState
|-
| 30 || DeactivateKeyboard
|-
| 31 || SetKeyboardAutoPilotState
|-
| 32 || UnsetKeyboardAutoPilotState
|-
| 50 || DeactivateXpad
|-
|-
| 51 || [1.0.0-9.2.0] SetXpadAutoPilotState
| 51 || [1.0.0-9.2.0] SetXpadAutoPilotState
Line 5,689: Line 5,626:
|}
|}


= NpadJoyAssignmentMode =
= NpadJoyDeviceType =
This is "nn::hid::NpadJoyAssignmentMode".
This is "nn::hid::NpadJoyDeviceType".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 5,696: Line 5,633:
!  Description
!  Description
|-
|-
| 0 || Dual
| 0 || Left
|-
|-
| 1 || Single
| 1 || Right
|}
|}


= AppletFooterUiType =
= NpadHandheldActivationMode =
This is "nn::hid::system::AppletFooterUiType".
This is "nn::hid::NpadHandheldActivationMode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 5,708: Line 5,645:
!  Description
!  Description
|-
|-
| 0 || None
| 0 || Dual
|-
| 1 || Single
|}
 
= NpadJoyAssignmentMode =
This is "nn::hid::NpadJoyAssignmentMode".
 
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || Dual
|-
| 1 || Single
|}
 
= AppletFooterUiType =
This is "nn::hid::system::AppletFooterUiType".
 
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || None
|-
|-
| 1 || HandheldNone
| 1 || HandheldNone
Line 6,057: Line 6,018:
= BatteryLevel =
= BatteryLevel =
This is "nn::hid::system::NpadBatteryLevel". This is a 4 byte value.
This is "nn::hid::system::NpadBatteryLevel". This is a 4 byte value.
= ConsoleSixAxisSensorHandle =
This is "nn::hid::ConsoleSixAxisSensorHandle". This is a 4-byte struct with 4-byte alignment.
sdknso GetConsoleSixAxisSensorHandle always returns a handle with value 0x13.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || TypeValue
|-
| 0x0 || 0x1 ||
|-
| 0x1 || 0x1 ||
|}
= SixAxisSensorHandle =
This is "nn::hid::SixAxisSensorHandle". This is a 4-byte struct with 4-byte alignment.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || TypeValue
|-
| 0x0 || 0x1 || NpadStyleIndex
|-
| 0x1 || 0x1 || PlayerNumber / [[#NpadIdType]]
|-
| 0x2 || 0x1 || Idx
|}
= VibrationDeviceHandle =
This is "nn::hid::VibrationDeviceHandle". This is a 4-byte struct with 4-byte alignment.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || TypeValue
|-
| 0x0 || 0x1 || NpadStyleIndex
|-
| 0x1 || 0x1 || [[#NpadIdType|PlayerNumber]]
|-
| 0x2 || 0x1 || DeviceIdx
|}
= VibrationDeviceInfo =
This is "nn::hid::VibrationDeviceInfo" / "nn::hid::VibrationDeviceInfoForIpc". This is a 0x8-byte struct.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#VibrationDeviceType|DeviceType]]
|-
| 0x4 || 0x4 || [[#VibrationDevicePosition|Position]]
|}
= VibrationDeviceType =
This is "nn::hid::VibrationDeviceType".
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || Unknown
|-
| 1 || LinearResonantActuator
|}
= VibrationDevicePosition =
This is "nn::hid::VibrationDevicePosition".
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || None
|-
| 1 || Left
|-
| 2 || Right
|}
= VibrationValue =
This is "nn::hid::VibrationValue". This is a 0x10-byte struct, which contains 4 float values.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| AmplitudeLow
|-
| 0x4
| 0x4
| FrequencyLow
|-
| 0x8
| 0x4
| AmplitudeHigh
|-
| 0xC
| 0x4
| FrequencyHigh
|}
= VibrationErmCommand =
This is "nn::hid::VibrationErmCommand".
{| class="wikitable" border="1"
!  Value
!  Description
|-
| 0 || Stop
|-
| 1 || Start
|}


= GyroscopeZeroDriftMode =
= GyroscopeZeroDriftMode =