HID services: Difference between revisions

No edit summary
No edit summary
(3 intermediate revisions by the same user not shown)
Line 755: Line 755:


== GetUniquePadDeviceTypeSetInternal ==
== GetUniquePadDeviceTypeSetInternal ==
Takes a total of 8-bytes of input, returns a total of 4-bytes of output.
Takes an input u64 '''UniquePadId''', returns an [[#DeviceTypeInternal]].
 
[9.0.0+] Now takes a total of 8-bytes of input, returns a total of 1-byte of output.


== GetAbstractedPadHandles ==
== GetAbstractedPadHandles ==
Line 970: Line 968:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Only one bit can be set, see below.
| 0x0 || 0x4 || [[#DeviceTypeInternal]]
|-
|-
| 0x4 || 0x4 || RGBA Single Body Color
| 0x4 || 0x4 || RGBA Single Body Color
Line 986: Line 984:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x1 || Type value, must match certain values (not used with the below table).
| 0x0 || 0x1 || [[#DeviceTypeInternal]]
|-
|-
| 0x1 || 0x1 || [[#NpadInterfaceType]]. Similar to the field from the old struct.
| 0x1 || 0x1 || [[#NpadInterfaceType]]. Similar to the field from the old struct.
Line 1,003: Line 1,001:
This is a 0x10-byte struct. [9.0.0+] This is a 0x14-byte struct.
This is a 0x10-byte struct. [9.0.0+] This is a 0x14-byte struct.


Bits for the above type field:
== DeviceTypeInternal ==
This is an u32 "nn::hid::detail::DeviceTypeInternal".
 
[9.0.0+] This an u8 "nn::hidtypes::DeviceType".
 
Bits for "nn::hid::detail::DeviceTypeInternal", only 1 bit can be set:


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,049: Line 1,052:
|  
|  
| Generic controller
| Generic controller
|}
u8 values for "nn::hidtypes::DeviceType", must match one of the these values:
{| class="wikitable" border="1"
!  Value
!  Description
!  Notes
|-
| 1 || JoyRight ||
|-
| 2 || JoyLeft ||
|-
| 3 || FullKey ||
|-
| 4 || JoyLeft ||
|-
| 5 || JoyRight ||
|-
| 6 || FullKey ||
|-
| 7 || LarkLeft (HVC) ||
|-
| 8 || LarkRight (HVC) ||
|-
| 9 || LarkLeft (NES) ||
|-
| 10 || LarkRight (NES) ||
|-
| 11 || Invalid ||
|-
| 12 || Palma ||
|-
| 13 || FullKey ||
|-
| 14 || Invalid ||
|-
| 15 || FullKey ||
|-
| 16 || Controller is missing in sharedmem.
|-
| 17-18 || Invalid ||
|-
| 19 || [[#DeviceType]] System with [[#NpadStyleTag]] |= NpadFullKey
|-
| 20 || [[#DeviceType]] System with [[#NpadStyleTag]] |= NpadJoyDual
|-
| 21 || [[#DeviceType]] System with [[#NpadStyleTag]] |= NpadJoyDual
|}
|}