Changes

746 bytes added ,  17:05, 31 January 2021
no edit summary
Line 2: Line 2:     
= caps:sc =
 
= caps:sc =
This is "nn::capsrv::sf::IScreenShotControlService". This is available with [2.0.0+].
+
This is "nn::capsrv::sf::IScreenShotControlService".
 +
 
 +
This was added with [2.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 1 || [[#CaptureRawImage]] ||
+
| 1 || [[#CaptureRawImage]]
 
|-
 
|-
| 2 || [[#CaptureRawImageWithTimeout]] ||
+
| 2 || [[#CaptureRawImageWithTimeout]]
 
|-
 
|-
| 3 || [5.0.0+] AttachSharedBuffer || Takes a total of 8-bytes of input, no output.
+
| 3 || [5.0.0+] [[#AttachSharedBuffer]]
 
|-
 
|-
| 5 || [5.0.0+] CaptureRawImageToAttachedSharedBuffer || Takes a total of 0x10-bytes of input, no output.
+
| 5 || [5.0.0+] [[#CaptureRawImageToAttachedSharedBuffer]]
 
|-
 
|-
| 210 || [6.0.0+] ? || Takes a total of 0x50-bytes of input, a type-0x15 input buffer, and a type-0x45 input buffer, returns a total of 0x20-bytes of output.
+
| 210 || [6.0.0+]
 
|-
 
|-
| [2.0.0-4.1.0] 1001 || RequestTakingScreenShot || Takes a total of 0x10-bytes of input, no output.
+
| [2.0.0-4.1.0] 1001 || [[#RequestTakingScreenShot]]
 
|-
 
|-
| [2.0.0-4.1.0] 1002 || RequestTakingScreenShotWithTimeout || Takes a total of 0x18-bytes of input, no output.
+
| [2.0.0-4.1.0] 1002 || [[#RequestTakingScreenShotWithTimeout]]
 
|-
 
|-
| [3.0.0-4.1.0] 1003 || RequestTakingScreenShotEx || Takes a total of 0x58-bytes of input, no output.
+
| [3.0.0-4.1.0] 1003 || [[#RequestTakingScreenShotEx]]
 
|-
 
|-
| 1004 || [5.0.0+] RequestTakingScreenShotEx1 || Takes a total of 0x60-bytes of input, no output. [6.0.0+]: In addition, this also takes a type-0x15 input buffer. [11.0.0+] Now takes an additional 8-bytes of input.
+
| 1004 || [5.0.0+] [[#RequestTakingScreenShotEx1]]
 
|-
 
|-
| 1009 || [5.0.0+] CancelTakingScreenShot || Takes a total of 0x10-bytes of input, no output.
+
| 1009 || [5.0.0+] [[#CancelTakingScreenShot]]
 
|-
 
|-
| 1010 || [5.0.0+] SetTakingScreenShotCancelState || Takes a total of 0x10-bytes of input, no output.
+
| 1010 || [5.0.0+] [[#SetTakingScreenShotCancelState]]
 
|-
 
|-
| 1011 || NotifyTakingScreenShotRefused || Takes a total of 8-bytes of input, no output.
+
| 1011 || [[#NotifyTakingScreenShotRefused]]
 
|-
 
|-
| 1012 || NotifyTakingScreenShotFailed || Takes a total of 8-bytes of input, no output.
+
| 1012 || [[#NotifyTakingScreenShotFailed]]
 
|-
 
|-
| 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]] ||
+
| 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]]
 
|-
 
|-
| 1106 || [4.0.0+] ? ||
+
| 1106 || [4.0.0+]
 
|-
 
|-
| 1107 || [4.0.0+] ? ||
+
| 1107 || [4.0.0+]
 
|-
 
|-
| 1201 || [3.0.0+] OpenRawScreenShotReadStream || Takes a total of 0x10-bytes of input, returns a total of 0x18-bytes of output.
+
| 1201 || [3.0.0+] [[#OpenRawScreenShotReadStream]]
 
|-
 
|-
| 1202 || [3.0.0+] CloseRawScreenShotReadStream || No input/output.
+
| 1202 || [3.0.0+] [[#CloseRawScreenShotReadStream]]
 
|-
 
|-
| 1203 || [3.0.0+] ReadRawScreenShotReadStream || Takes a total of 8-bytes of input and a type-0x6 output buffer, returns a total of 8-bytes of output.
+
| 1203 || [3.0.0+] [[#ReadRawScreenShotReadStream]]
 
|-
 
|-
| 1204 || [9.0.0+] || Takes a total of 0x10-bytes of input and a type-0x46 output buffer, returns a total of 8-bytes of output.
+
| 1204 || [9.0.0+]
 
|}
 
|}
  −
* cmd210: User-processes use hard-coded size 0x88 for the type-0x15 buffer.
  −
* cmd1106/1107: User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers.
  −
* cmd1201/1202/1203: These are only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
  −
* cmd1204: Also required the mentioned debug flag but does no longer as of [10.0.0].
      
The only caps:sc commands used by [[GRC_services|GRC]] are: 1101, 1106, and 1107.
 
The only caps:sc commands used by [[GRC_services|GRC]] are: 1101, 1106, and 1107.
  −
[8.0.0+] Cmd210 and cmd1004 now takes an additional type-0x15 input buffer.
      
== CaptureRawImage ==
 
== CaptureRawImage ==
Line 75: Line 70:     
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
 
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
 +
 +
== AttachSharedBuffer ==
 +
Takes a total of 8-bytes of input. No output.
 +
 +
== CaptureRawImageToAttachedSharedBuffer ==
 +
Takes a total of 0x10-bytes of input. No output.
 +
 +
== Cmd210 ==
 +
Takes a total of 0x50-bytes of input, a type-0x15 input buffer, and a type-0x45 input buffer, returns a total of 0x20-bytes of output.
 +
 +
User-processes use hard-coded size 0x88 for the type-0x15 buffer.
 +
 +
[8.0.0+] Now takes an additional type-0x15 input buffer.
 +
 +
== RequestTakingScreenShot ==
 +
Takes a total of 0x10-bytes of input. No output.
 +
 +
== RequestTakingScreenShotWithTimeout ==
 +
Takes a total of 0x18-bytes of input. No output.
 +
 +
== RequestTakingScreenShotEx ==
 +
Takes a total of 0x58-bytes of input. No output.
 +
 +
== RequestTakingScreenShotEx1 ==
 +
Takes a total of 0x60-bytes of input. No output.
 +
 +
[6.0.0+] In addition, this also takes a type-0x15 input buffer.
 +
 +
[8.0.0+] Now takes an additional type-0x15 input buffer.
 +
 +
[11.0.0+] Now takes an additional 8-bytes of input.
 +
 +
== CancelTakingScreenShot ==
 +
Takes a total of 0x10-bytes of input. No output.
 +
 +
== SetTakingScreenShotCancelState ==
 +
Takes a total of 0x10-bytes of input. No output.
 +
 +
== NotifyTakingScreenShotRefused ==
 +
Takes a total of 8-bytes of input. No output.
 +
 +
== NotifyTakingScreenShotFailed ==
 +
Takes a total of 8-bytes of input. No output.
    
== SetupOverlayMovieThumbnail ==
 
== SetupOverlayMovieThumbnail ==
Line 89: Line 127:     
'''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#SetupOverlayMovieThumbnail]].
 
'''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#SetupOverlayMovieThumbnail]].
 +
 +
User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers.
    
[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
 
[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
Line 96: Line 136:     
'''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The size of the type-0x45 buffer must be at least 0x384000.
 
'''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The size of the type-0x45 buffer must be at least 0x384000.
 +
 +
User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers.
    
[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
 
[5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30.
 +
 +
== OpenRawScreenShotReadStream ==
 +
Takes a total of 0x10-bytes of input. Returns a total of 0x18-bytes of output.
 +
 +
Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
 +
 +
== CloseRawScreenShotReadStream ==
 +
No input/output.
 +
 +
Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
 +
 +
== ReadRawScreenShotReadStream ==
 +
Takes a total of 8-bytes of input and a type-0x6 output buffer. Returns a total of 8-bytes of output.
 +
 +
Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
 +
 +
== Cmd1204 ==
 +
Takes a total of 0x10-bytes of input and a type-0x46 output buffer. Returns a total of 8-bytes of output.
 +
 +
Also required the mentioned debug flag but does no longer as of [10.0.0].
    
= caps:ss =
 
= caps:ss =
This is "nn::capsrv::sf::IScreenShotService". This is available with [2.0.0+].
+
This is "nn::capsrv::sf::IScreenShotService".
 +
 
 +
This was added with [2.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 122: Line 186:  
This is "nn::capsrv::sf::IScreenShotApplicationService".
 
This is "nn::capsrv::sf::IScreenShotApplicationService".
   −
This was added with [3.0.0+]. This was moved to [[Applet_Manager_services|AM]] with [6.0.0+].
+
This was added with [3.0.0+].
 +
 
 +
[6.0.0+] This was moved to [[Applet_Manager_services|AM]].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 163: Line 229:  
This is "nn::hdcp::IHdcpController".
 
This is "nn::hdcp::IHdcpController".
   −
Added with [4.0.0+].
+
This was added with [4.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 180: Line 246:  
= mm:u =
 
= mm:u =
 
This is "nn::mmnv::IRequest".
 
This is "nn::mmnv::IRequest".
  −
NVIDIA multimedia (NvMM) platform service.
      
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 232: Line 296:  
|-
 
|-
 
| 3 || [[#vi:s|GetDisplayServiceWithProxyNameExchange]]
 
| 3 || [[#vi:s|GetDisplayServiceWithProxyNameExchange]]
|-
   
|}
 
|}
   Line 251: Line 314:  
|-
 
|-
 
| 3 || [[#vi:m|GetDisplayServiceWithProxyNameExchange]]
 
| 3 || [[#vi:m|GetDisplayServiceWithProxyNameExchange]]
|-
   
|}
 
|}
   Line 761: Line 823:  
|}
 
|}
   −
== Ambient Light Sensor Notes ==
+
== GetAmbientLightSensorValue ==
The BH1730 outputs 2 values. Visible light and IR light. This is then calculated through an algorithm that checks for Gain, Measurement time, filter qualities and ouputs lux (max correct measurement of 100K lux).
+
No input. Outputs lux in float.
The default values are Gain 64x and ITIME of 38 (256 - 218). This allows for a max lux value of 17972 lux when visible light value is maximum and IR light is 0. When both of them are on their limit, the output is 1192 lux.
  −
The sensor is fully configurable.
     −
== GetAmbientLightSensorValue ==
+
[5.0.0+] Now returns an output [[#AmbientLightSensorValue]].
No input. Before 5.x, outputs lux in float. (5.0.0+) Returns an output struct:
  −
{| class="wikitable" border="1"
  −
|-
  −
! Offset || Size || Description
  −
|-
  −
| 0x0 || 0x4 || bOverLimit. (u32) Equals to 1 if visible or IR light data is over 65534.
  −
|-
  −
| 0x4 || 0x4 || fLux. (float) Value in lux from the ambient light sensor.
  −
|}
  −
Note: if bOverLimit=1 and the default ALS configuration is used, the measurement of fLux should not be considered and the actual max value depends on the type of light. Ranges from 12.5K - 17.5K.
      
== GetCurrentBrightnessSetting ==
 
== GetCurrentBrightnessSetting ==
Line 826: Line 876:     
Can be "Default", "External", "[https://en.wikipedia.org/wiki/Extended_Display_Identification_Data Edid]", "Internal" or "Null".
 
Can be "Default", "External", "[https://en.wikipedia.org/wiki/Extended_Display_Identification_Data Edid]", "Internal" or "Null".
 +
 +
= NativeWindow =
 +
Max size of this buffer is 0x100-bytes(outbuf size used by official user-processes). Parsed("...DeserializeNativeWindow()") by a function called by the code described under [[#OpenLayer]], which executes code with Android symbols.
 +
 +
This is a [[#Parcel]].
    
= Parcel =
 
= Parcel =
Line 842: Line 897:  
| 0x10 || ? || FlattenedBinder
 
| 0x10 || ? || FlattenedBinder
 
|}
 
|}
  −
= NativeWindow =
  −
Max size of this buffer is 0x100-bytes(outbuf size used by official user-processes). Parsed("...DeserializeNativeWindow()") by a function called by the code described under [[#OpenLayer]], which executes code with Android symbols.
  −
  −
This is a [[#Parcel]].
      
== ParcelData ==
 
== ParcelData ==
Line 873: Line 923:  
This normally contains an u32 with value 0?
 
This normally contains an u32 with value 0?
   −
= Resolution handling =
+
= AmbientLightSensorValue =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || bOverLimit. (u32) Equals to 1 if visible or IR light data is over 65534.
 +
|-
 +
| 0x4 || 0x4 || fLux. (float) Value in lux from the ambient light sensor.
 +
|}
 +
Note: if bOverLimit=1 and the default ALS configuration is used, the measurement of fLux should not be considered and the actual max value depends on the type of light. Ranges from 12.5K - 17.5K.
 +
 
 +
= Resolution Handling =
 
There doesn't seem to be a way to get the actual TV resolution while using the "Default" Display. Official apps just hard-code what resolution to use depending on the current [[AM_services|OperationMode]].
 
There doesn't seem to be a way to get the actual TV resolution while using the "Default" Display. Official apps just hard-code what resolution to use depending on the current [[AM_services|OperationMode]].
 +
 +
= Ambient Light Sensor Notes =
 +
The BH1730 outputs 2 values. Visible light and IR light. This is then calculated through an algorithm that checks for Gain, Measurement time, filter qualities and ouputs lux (max correct measurement of 100K lux).
 +
The default values are Gain 64x and ITIME of 38 (256 - 218). This allows for a max lux value of 17972 lux when visible light value is maximum and IR light is 0. When both of them are on their limit, the output is 1192 lux.
 +
The sensor is fully configurable.
    
[[Category:Services]]
 
[[Category:Services]]