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 = |