HID services: Difference between revisions

Line 677: Line 677:


This TransferMemory is used as input/output by the other Hdls commands.
This TransferMemory is used as input/output by the other Hdls commands.
Hdls is for virtual HID controllers.


== ReleaseHdlsWorkBuffer ==
== ReleaseHdlsWorkBuffer ==
Line 684: Line 686:
No input/output.
No input/output.


After using this cmd, the output 0x208-byte '''HdlsNpadAssignment''' struct is located at tmem+0.
After using this cmd, the output [[#HdlsNpadAssignment]] is located at tmem+0.


== DumpHdlsStates ==
== DumpHdlsStates ==
No input/output.
No input/output.


After using this cmd, the output 0x408-byte '''HdlsStateList''' struct is located at tmem+0.
After using this cmd, the output [[#HdlsStateList]] struct is located at tmem+0.


== ApplyHdlsNpadAssignmentState ==
== ApplyHdlsNpadAssignmentState ==
Takes an input u8 bool, no output.
Takes an input u8 bool, no output.


Prior to using this cmd, the input 0x208-byte '''HdlsNpadAssignment''' struct is written to tmem+0 by the user-process.
Prior to using this cmd, the input [[#HdlsNpadAssignment]] is written to tmem+0 by the user-process.


== ApplyHdlsStateList ==
== ApplyHdlsStateList ==
No input/output.
No input/output.


Prior to using this cmd, the input 0x408-byte '''HdlsStateList''' struct is written to tmem+0 by the user-process.
Prior to using this cmd, the input [[#HdlsStateList]] is written to tmem+0 by the user-process.


== AttachHdlsVirtualDevice ==
== AttachHdlsVirtualDevice ==
Takes an 0x10-byte '''HdlsDeviceInfo''' struct, returns a 8-byte '''HdlsHandle'''.
Takes an [[#HdlsDeviceInfo]], returns a 8-byte '''HdlsHandle'''.


== DetachHdlsVirtualDevice ==
== DetachHdlsVirtualDevice ==
Line 708: Line 710:


== SetHdlsState ==
== SetHdlsState ==
Takes an input 0x24-byte '''HdlsState''' struct and an input 8-byte '''HdlsHandle''', no output.
Takes an input [[#HdlsState]] and an input 8-byte '''HdlsHandle''', no output.
 
== HdlsNpadAssignment ==
This is a 0x208-byte struct. This seems to be an array, structure unknown.
 
== HdlsStateList ==
This is a 0x408-byte struct. This seems to be an array, structure unknown.
 
== HdlsDeviceInfo ==
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#NpadStyleTag]], only one bit can be set.
|-
| 0x4 || 0x4 || RGBA Single Body Color
|-
| 0x8 || 0x4 || RGBA Single Buttons Color
|-
| 0xC || 0x1 || Unknown
|-
| 0xD || 0x3 || Padding
|}
 
This is a 0x10-byte struct.
 
== HdlsState ==
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x8 || Unknown
|-
| 0x8 || 0x4 || Unknown. Written to [[HID_Shared_Memory#Controllers]] +0x419C.
|-
| 0xC || 0x4 || Buttons
|-
| 0x10 || 0x10(4*2*2) || Joystick data, see [[HID_Shared_Memory#Controller_State]].
|-
| 0x20 || 0x4 || Unused
|}
 
This is a 0x24-byte struct.


= hid:sys =
= hid:sys =