Changes

Jump to navigation Jump to search
4,559 bytes added ,  17:03, 6 December 2020
no edit summary
Line 24: Line 24:  
| [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 || Takes a total of 0x58-bytes of input, no output.
 
|-
 
|-
| 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.
+
| 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.
 
|-
 
|-
 
| 1009 || [5.0.0+] CancelTakingScreenShot || Takes a total of 0x10-bytes of input, no output.
 
| 1009 || [5.0.0+] CancelTakingScreenShot || Takes a total of 0x10-bytes of input, no output.
Line 52: Line 52:  
* cmd1106/1107: User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers.
 
* 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.
 
* 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.
Line 153: Line 154:  
| 6 || [2.0.0+] CancelCurrentCall
 
| 6 || [2.0.0+] CancelCurrentCall
 
|-
 
|-
| 100 || [4.0.0+] GetHdcpServiceObject
+
| 100 || [4.0.0+] [[#GetHdcpServiceObject]]
 
|}
 
|}
   −
GetHdcpServiceObject: No input, returns a [[#IHdcpController]].
+
== GetHdcpServiceObject ==
 +
No input, returns a [[#IHdcpController]].
    
= IHdcpController =
 
= IHdcpController =
Line 218: Line 220:     
== GetDisplayServiceWithProxyNameExchange ==
 
== GetDisplayServiceWithProxyNameExchange ==
Returns an [[#IApplicationDisplayService]].
+
Takes an input u32, and returns an [[#IApplicationDisplayService]].
    
= vi:s =
 
= vi:s =
Line 352: Line 354:     
== GetDisplayResolution ==
 
== GetDisplayResolution ==
Takes an input u64 DisplayId and returns two output u64s: width and height.
+
Takes an input u64 DisplayId and returns two output s64s: width and height. Official sw copies these to s32 output fields.
    
== OpenLayer ==
 
== OpenLayer ==
Line 376: Line 378:     
== GetIndirectLayerImageMap ==
 
== GetIndirectLayerImageMap ==
Takes a PID-descriptor, an type-0x46 buffer, and four u64s: width(s32), height(s32), <output from [[AM_services|AM]] GetIndirectLayerConsumerHandle>, and [[AM_services|AppletResourceUserId]]. Returns two output u64s.
+
Takes a PID-descriptor, an type-0x46 buffer, two s64s width/height, then two u64s: <output from [[AM_services|AM]] GetIndirectLayerConsumerHandle>, and [[AM_services|AppletResourceUserId]]. Returns two output s64s, which are copied to output u64s by official sw.
 +
 
 +
Official sw sets the width/height using input s32s.
    
Calls the same func as [[#GetIndirectLayerImageCropMap]] internally, with the input floats set to 0.0f, then 1.0f for the rest.
 
Calls the same func as [[#GetIndirectLayerImageCropMap]] internally, with the input floats set to 0.0f, then 1.0f for the rest.
Line 384: Line 388:     
== GetIndirectLayerImageRequiredMemoryInfo ==
 
== GetIndirectLayerImageRequiredMemoryInfo ==
Takes two input u64s: width and height. Returns two output u64s. First u64 is the buffer size to use with the ImageMap cmds, second u64 is the buffer address alignment for those cmds.
+
Takes two input s64s: width and height. Returns two output s64s, which are copied to output u64s by official sw. First field is the buffer size to use with the ImageMap cmds, second field is the buffer address alignment for those cmds.
 +
 
 +
Official sw sets the width/height using input s32s.
    
== GetDisplayVsyncEvent ==
 
== GetDisplayVsyncEvent ==
Line 418: Line 424:  
|-
 
|-
 
| 2209 || SetLayerAlpha
 
| 2209 || SetLayerAlpha
 +
|-
 +
| 2210 || [11.0.0+] SetLayerPositionAndSize
 
|-
 
|-
 
| 2312 || [1.0.0-6.2.0] CreateStrayLayer
 
| 2312 || [1.0.0-6.2.0] CreateStrayLayer
Line 464: Line 472:  
|-
 
|-
 
| 3217 || SetDisplayCmuLuma
 
| 3217 || SetDisplayCmuLuma
 +
|-
 +
| 3218 || [11.0.0+] SetDisplayCrcMode
 +
|-
 +
| 6013 || [10.0.0+] GetLayerPresentationSubmissionTimestamps
 
|-
 
|-
 
| 8225 || [4.0.0+] GetSharedBufferMemoryHandleId
 
| 8225 || [4.0.0+] GetSharedBufferMemoryHandleId
Line 484: Line 496:  
|-
 
|-
 
| 8258 || [5.0.0+] CancelSharedFrameBuffer
 
| 8258 || [5.0.0+] CancelSharedFrameBuffer
 +
|-
 +
| 9000 || [11.0.0+] GetDp2hdmiController
 +
|}
 +
 +
=== GetDp2hdmiController ===
 +
No input, returns an [[#IDp2hdmiController]].
 +
 +
=== IDp2hdmiController ===
 +
This is "nn::dp2hdmi::detail::IDp2hdmiController".
 +
 +
This was added with [11.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetFirmwareVersion
 +
|-
 +
| 1 || GetAvailableFirmwareVersion
 +
|-
 +
| 2 || CheckFirmwareUpdateRequired
 +
|-
 +
| 3 || StartFirmwareUpdate
 +
|-
 +
| 4 || StartFirmwareUpdateWithSpecifiedImage
 +
|-
 +
| 5 || OverwriteFirmware
 +
|-
 +
| 6 || OverwriteFirmwareWithSpecifiedImage
 +
|-
 +
| 7 || GetFirmwareUpdateState
 +
|-
 +
| 8 || ResetDevice
 
|}
 
|}
   Line 530: Line 575:  
|-
 
|-
 
| 2601 || [4.0.0+] GetDisplayErrorEvent
 
| 2601 || [4.0.0+] GetDisplayErrorEvent
 +
|-
 +
| 2701 || [11.0.0+] GetDisplayFatalErrorEvent
 
|-
 
|-
 
| 4201 || SetDisplayAlpha
 
| 4201 || SetDisplayAlpha
Line 538: Line 585:  
|-
 
|-
 
| 4206 || [4.0.0+] SetDefaultDisplay
 
| 4206 || [4.0.0+] SetDefaultDisplay
 +
|-
 +
| 4207 || [11.0.0+] ResetDisplayPanel
 +
|-
 +
| 4208 || [11.0.0+] EnableDisplayFatalError
 +
|-
 +
| 4300 || [11.0.0+] GetInternalPanelId
 
|-
 
|-
 
| 6000 || AddToLayerStack
 
| 6000 || AddToLayerStack
Line 633: Line 686:  
| 8298 || [5.0.0+] ExpandStartupLogoOnSharedFrameBuffer
 
| 8298 || [5.0.0+] ExpandStartupLogoOnSharedFrameBuffer
 
|}
 
|}
 +
 +
[10.0.0+] AttachLayerPresentationTracer now takes an additional 8-bytes of input.
    
[5.0.0+] SetDetachedSharedFrameBufferImage now takes an additional 0x10-bytes of input. CopyDetachedSharedFrameBufferImage now takes an additional 0x18-bytes of input. SetDetachedSharedFrameBufferSubImage now takes an additional 0x10-bytes of input, and the buffer type was changed from 0x5 to 0x45.
 
[5.0.0+] SetDetachedSharedFrameBufferImage now takes an additional 0x10-bytes of input. CopyDetachedSharedFrameBufferImage now takes an additional 0x18-bytes of input. SetDetachedSharedFrameBufferSubImage now takes an additional 0x10-bytes of input, and the buffer type was changed from 0x5 to 0x45.
 +
 +
= lbl =
 +
This is "nn::lbl::detail::ILblController".
 +
 +
[11.0.0+] this was moved from [[PTM_services|ptm]].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || SaveCurrentSetting
 +
|-
 +
| 1 || LoadCurrentSetting
 +
|-
 +
| 2 || SetCurrentBrightnessSetting
 +
|-
 +
| 3 || GetCurrentBrightnessSetting
 +
|-
 +
| 4 || ApplyCurrentBrightnessSettingToBacklight
 +
|-
 +
| 5 || GetBrightnessSettingAppliedToBacklight
 +
|-
 +
| 6 || SwitchBacklightOn
 +
|-
 +
| 7 || SwitchBacklightOff
 +
|-
 +
| 8 || GetBacklightSwitchStatus
 +
|-
 +
| 9 || EnableDimming
 +
|-
 +
| 10 || DisableDimming
 +
|-
 +
| 11 || IsDimmingEnabled
 +
|-
 +
| 12 || EnableAutoBrightnessControl
 +
|-
 +
| 13 || DisableAutoBrightnessControl
 +
|-
 +
| 14 || IsAutoBrightnessControlEnabled
 +
|-
 +
| 15 || SetAmbientLightSensorValue
 +
|-
 +
| 16 || [[#GetAmbientLightSensorValue]]
 +
|-
 +
| 17 || SetBrightnessReflectionDelayLevel
 +
|-
 +
| 18 || GetBrightnessReflectionDelayLevel
 +
|-
 +
| 19 || SetCurrentBrightnessMapping
 +
|-
 +
| 20 || GetCurrentBrightnessMapping
 +
|-
 +
| 21 || SetCurrentAmbientLightSensorMapping
 +
|-
 +
| 22 || GetCurrentAmbientLightSensorMapping
 +
|-
 +
| 23 || [3.0.0+] IsAmbientLightSensorAvailable
 +
|-
 +
| 24 || [3.0.0+] SetCurrentBrightnessSettingForVrMode
 +
|-
 +
| 25 || [3.0.0+] GetCurrentBrightnessSettingForVrMode
 +
|-
 +
| 26 || [3.0.0+] [[#EnableVrMode]]
 +
|-
 +
| 27 || [3.0.0+] [[#DisableVrMode]]
 +
|-
 +
| 28 || [3.0.0+] [[#IsVrModeEnabled]]
 +
|-
 +
| 29 || [7.0.0+] IsAutoBrightnessControlSupported
 +
|}
 +
 +
== 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.
 +
 +
== GetAmbientLightSensorValue ==
 +
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 ==
 +
No input. Returns an output u32 int of the current backlight level.
 +
 +
== GetBrightnessSettingAppliedToBacklight ==
 +
No input. Returns an output u32 int of the backlight level computed from the ambient light sensor.
 +
 +
== IsAutoBrightnessControlEnabled ==
 +
No input. Returns an output u8 bool indicating whether auto brightness is enabled.
 +
 +
== EnableVrMode ==
 +
No input/output. Used by [[AM_services#SetVrModeEnabled]].
 +
 +
Sets a global state field to 0x1.
 +
 +
== DisableVrMode ==
 +
No input/output. Used by [[AM_services#SetVrModeEnabled]].
 +
 +
Sets the global state field used by [[#EnableVrMode]] to 0x0.
 +
 +
== IsVrModeEnabled ==
 +
No input. Returns an output u8 bool set by the above commands.
    
= DisplayInfo =
 
= DisplayInfo =

Navigation menu