Changes

Jump to navigation Jump to search
959 bytes added ,  19:53, 14 January 2020
no edit summary
Line 72: Line 72:  
| 78 || ResetAccelerometerPlayMode
 
| 78 || ResetAccelerometerPlayMode
 
|-
 
|-
| 79 || SetGyroscopeZeroDriftMode
+
| 79 || [[#SetGyroscopeZeroDriftMode]]
 
|-
 
|-
| 80 || GetGyroscopeZeroDriftMode
+
| 80 || [[#GetGyroscopeZeroDriftMode]]
 
|-
 
|-
| 81 || ResetGyroscopeZeroDriftMode
+
| 81 || [[#ResetGyroscopeZeroDriftMode]]
 
|-
 
|-
 
| 82 || IsSixAxisSensorAtRest
 
| 82 || IsSixAxisSensorAtRest
Line 273: Line 273:     
== SetSixAxisSensorFusionParameters ==
 
== SetSixAxisSensorFusionParameters ==
Takes a PID-descriptor, an u32 SixAxisSensorHandle, two floats, and an u64 [[AM_services|AppletResourceUserId]], no output.
+
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], two floats, and an u64 [[AM_services|AppletResourceUserId]], no output.
    
Official sw will throw an error before using this cmd, if the first float is outside of the bounds of 0.0f-1.0f.
 
Official sw will throw an error before using this cmd, if the first float is outside of the bounds of 0.0f-1.0f.
    
== GetSixAxisSensorFusionParameters ==
 
== GetSixAxisSensorFusionParameters ==
Takes a PID-descriptor, an u32 SixAxisSensorHandle, and an u64 [[AM_services|AppletResourceUserId]], returns two output floats.
+
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], returns two output floats.
    
== ResetSixAxisSensorFusionParameters ==
 
== ResetSixAxisSensorFusionParameters ==
Takes a PID-descriptor, an u32 SixAxisSensorHandle, and an u64 [[AM_services|AppletResourceUserId]], no output.
+
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], no output.
 +
 
 +
== SetGyroscopeZeroDriftMode ==
 +
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], an u32 [[#GyroscopeZeroDriftMode]], and an u64 [[AM_services|AppletResourceUserId]], no output.
 +
 
 +
== GetGyroscopeZeroDriftMode ==
 +
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], returns an output u32 [[#GyroscopeZeroDriftMode]].
 +
 
 +
Gets the value written by [[#SetGyroscopeZeroDriftMode]].
 +
 
 +
== ResetGyroscopeZeroDriftMode ==
 +
Takes a PID-descriptor, an u32 [[#SixAxisSensorHandle]], and an u64 [[AM_services|AppletResourceUserId]], no output.
 +
 
 +
Same as [[#SetGyroscopeZeroDriftMode]] except the [[#GyroscopeZeroDriftMode]] is hard-coded to value 1 (Standard).
    
== SetSupportedNpadStyleSet ==
 
== SetSupportedNpadStyleSet ==
Line 402: Line 415:     
The NpadInterfaceType must be 1-4, otherwise this will assert.
 
The NpadInterfaceType must be 1-4, otherwise this will assert.
  −
== VibrationDeviceHandle ==
  −
This is an u32.
  −
  −
== VibrationDeviceInfo ==
  −
This is a 0x8-byte struct.
  −
  −
== VibrationValue ==
  −
This is a 0x10-byte struct, which contains 4 float values.
      
== IAppletResource ==
 
== IAppletResource ==
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 437: Line 440:  
Takes an input [[#VibrationDeviceHandle]]. No output.
 
Takes an input [[#VibrationDeviceHandle]]. No output.
   −
== NpadStyleTag ==
+
== GyroscopeZeroDriftMode ==
This is a bitfield describing which controller styles are supported.
+
This is "nn::hid::GyroscopeZeroDriftMode".
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Bits
+
Value
 
!  Description
 
!  Description
!  Notes
   
|-
 
|-
| 0
+
| 0 || Loose
| NpadFullKey
  −
| Pro Controller.
   
|-
 
|-
| 1
+
| 1 || Standard
| NpadHandheld
  −
| Joy-Con controller in handheld mode.
   
|-
 
|-
| 2
+
| 2 || Tight
| NpadJoyDual
+
|}
| Joy-Con controller in dual mode.
+
 
 +
== SixAxisSensorHandle ==
 +
This is an u32.
 +
 
 +
== VibrationDeviceHandle ==
 +
This is an u32.
 +
 
 +
== VibrationDeviceInfo ==
 +
This is a 0x8-byte struct.
 +
 
 +
== VibrationValue ==
 +
This is a 0x10-byte struct, which contains 4 float values.
 +
 
 +
== NpadStyleTag ==
 +
This is a bitfield describing which controller styles are supported.
 +
 
 +
{| class="wikitable" border="1"
 +
!  Bits
 +
!  Description
 +
!  Notes
 
|-
 
|-
| 3
+
| 0
| NpadJoyLeft
+
| NpadFullKey
| Joy-Con left controller in single mode.
+
| Pro Controller.
 +
|-
 +
| 1
 +
| NpadHandheld
 +
| Joy-Con controller in handheld mode.
 +
|-
 +
| 2
 +
| NpadJoyDual
 +
| Joy-Con controller in dual mode.
 +
|-
 +
| 3
 +
| NpadJoyLeft
 +
| Joy-Con left controller in single mode.
 
|-
 
|-
 
| 4
 
| 4
Line 1,492: Line 1,521:  
The specified controller must have a HOME button.
 
The specified controller must have a HOME button.
   −
This sends subcommand 0x38 to the specified controller, for setting the pattern for the HOME button notification LED. The input structure is converted to the format used by this [https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/master/bluetooth_hid_subcommands_notes.md#subcommand-0x38-set-home-light subcommand].
+
This sends subcommand 0x38 to the specified controller, for setting the pattern for the HOME button notification LED. The input structure is converted to the format used by this [https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/master/bluetooth_hid_subcommands_notes.md#subcommand-0x38-set-home-light subcommand].
 
+
 
[9.0.0+] This runs code similar to [[#SetNotificationLedPatternWithTimeout]], except it passes the following param values to an internal func: flag=1 and TimeSpan=0 (with [[#SetNotificationLedPatternWithTimeout]] these are flag=0 and TimeSpan={input value}).
+
[9.0.0+] This runs code similar to [[#SetNotificationLedPatternWithTimeout]], except it passes the following param values to an internal func: flag=1 and TimeSpan=0 (with [[#SetNotificationLedPatternWithTimeout]] these are flag=0 and TimeSpan={input value}).
 
+
 
== SetNotificationLedPatternWithTimeout ==
+
== SetNotificationLedPatternWithTimeout ==
Takes an input [[#NotificationLedPattern]], an u64 '''UniquePadId''', and an s64 TimeSpan, no output.
+
Takes an input [[#NotificationLedPattern]], an u64 '''UniquePadId''', and an s64 TimeSpan, no output.
 
+
 
== PrepareHidsForNotificationWake ==
+
== PrepareHidsForNotificationWake ==
Takes a type-0x9 input buffer containing an array of u64 '''UniquePadId''', no output.
+
Takes a type-0x9 input buffer containing an array of u64 '''UniquePadId''', no output.
 
+
 
== GetHidbusSystemServiceObject ==
+
== GetHidbusSystemServiceObject ==
No input, returns an [[#IHidbusSystemServer]].
+
No input, returns an [[#IHidbusSystemServer]].
 +
 
 +
== IHidbusSystemServer ==
 +
This is "nn::hidbus::IHidbusSystemServer".
 +
 
 +
This was added with [5.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 500 || SetAppletResourceUserId
 +
|-
 +
| 501 || RegisterAppletResourceUserId
 +
|-
 +
| 502 || UnregisterAppletResourceUserId
 +
|}
    
== NotificationLedPattern ==
 
== NotificationLedPattern ==
Line 1,749: Line 1,794:  
| System
 
| System
 
| Generic controller.
 
| Generic controller.
|}
  −
  −
== IHidbusSystemServer ==
  −
This is "nn::hidbus::IHidbusSystemServer".
  −
  −
This was added with [5.0.0+].
  −
  −
{| class="wikitable" border="1"
  −
|-
  −
! Cmd || Name
  −
|-
  −
| 500 || SetAppletResourceUserId
  −
|-
  −
| 501 || RegisterAppletResourceUserId
  −
|-
  −
| 502 || UnregisterAppletResourceUserId
   
|}
 
|}
  

Navigation menu