Line 48: |
Line 48: |
| == ControllerSupportArg == | | == ControllerSupportArg == |
| This is "nn::hid::ControllerSupportArg". This is a 0x21C-byte (0x9C-byte with version <=0x2, 0x430-byte with version 0x7) struct pushed for input storage. | | This is "nn::hid::ControllerSupportArg". This is a 0x21C-byte (0x9C-byte with version <=0x2, 0x430-byte with version 0x7) struct pushed for input storage. |
− |
| |
− | Layout with the original version:
| |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 57: |
Line 55: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0x0 || 0x1 || s8 playerCountMin (must be >=0 and <=max_controllers). Older versions assert when invalid, newer versions clamp the used value to a valid range. | + | | 0x0 || 0x1 || s8 playerCountMin (must be >=0 and <=max_supported_players). Older versions assert when invalid, newer versions clamp the used value to a valid range. |
| |- | | |- |
− | | 0x1 || 0x1 || s8 playerCountMax (must be >=1 and <=max_controllers). Older versions assert when invalid, newer versions clamp the used value to a valid range. | + | | 0x1 || 0x1 || s8 playerCountMax (must be >=1 and <=max_supported_players). Older versions assert when invalid, newer versions clamp the used value to a valid range. |
| |- | | |- |
− | | 0x2 || 0x1 || u8 enableTakeOverConnection. | + | | 0x2 || 0x1 || u8 enableTakeOverConnection. Disconnects the controllers when not enabled. |
| |- | | |- |
| | 0x3 || 0x1 || u8 enableLeftJustify. | | | 0x3 || 0x1 || u8 enableLeftJustify. |
Line 67: |
Line 65: |
| | 0x4 || 0x1 || u8 enablePermitJoyDual. | | | 0x4 || 0x1 || u8 enablePermitJoyDual. |
| |- | | |- |
− | | 0x5 || 0x1 || u8 enableSingleMode. | + | | 0x5 || 0x1 || u8 enableSingleMode. Enables using a single player in handheld-mode, dual-mode, or single-mode (playerCount* are overridden). Using handheld-mode is not allowed if this is not enabled. |
| |- | | |- |
− | | 0x6 || 0x1 || u8 enableIdentificationColor. Enables using the array at offset 0x7 when non-zero. | + | | 0x6 || 0x1 || u8 enableIdentificationColor. Enables using the identificationColor array when non-zero. |
| |- | | |- |
− | | 0x7 || 4*max_controllers || u8 identificationColor[4]. Array of 4-byte entries for each controller, see below for total entries (max controllers). This entry contains individual u8s. | + | | 0x7 || 4*max_supported_players || u8 identificationColor[4]. Array of 4-byte entries for each player, see below for total entries (max controllers). This entry contains 4 u8s, for the RGBA8 color. This controls the color of the UI player box outline. |
| |- | | |- |
− | | 0x7 + 4*max_controllers || 0x1 || u8 enableExplainText. Enables using the ExplainText data when non-zero. | + | | 0x7 + 4*max_supported_players || 0x1 || u8 enableExplainText. Enables using the ExplainText data when non-zero. |
| |} | | |} |
| | | |
Line 89: |
Line 87: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0x0 || 0x1 || u8 enableForceUpdate. | + | | 0x0 || 0x1 || u8 enableForceUpdate, non-zero to enable. Default is 0. Forces a firmware update when enabled, without an UI option to skip it. |
| |- | | |- |
| | 0x1 || 0x3 || u8 padding[3]. | | | 0x1 || 0x3 || u8 padding[3]. |
Line 115: |
Line 113: |
| | | |
| ShowControllerSupportCore will assert if the mode is ShowControllerFirmwareUpdate, and ShowControllerFirmwareUpdateCore will assert if the mode is not ShowControllerFirmwareUpdate. | | ShowControllerSupportCore will assert if the mode is ShowControllerFirmwareUpdate, and ShowControllerFirmwareUpdateCore will assert if the mode is not ShowControllerFirmwareUpdate. |
| + | |
| + | ShowControllerSupport seems to only display the applet UI when doing so is actually needed?(This doesn't apply to the ForSystem version) |
| | | |
| == ControllerSupportCaller == | | == ControllerSupportCaller == |
Line 124: |
Line 124: |
| |- | | |- |
| | 0 || Application | | | 0 || Application |
| + | |- |
| + | | 1 || Skips the firmware-update confirmation dialog. This has the same affect as using the controller-update option from qlaunch System Settings. |
| |} | | |} |
| | | |
Line 139: |
Line 141: |
| | 0x1 || 0x3 || u8 padding[3]. | | | 0x1 || 0x3 || u8 padding[3]. |
| |- | | |- |
− | | 0x4 || 0x4 || u32 selectedId. | + | | 0x4 || 0x4 || u32 selectedId, NpadId. |
| |} | | |} |
| | | |