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. | + | | 1001 || [2.0.0-4.1.0] [[#RequestTakingScreenShot]] |
| |- | | |- |
− | | [2.0.0-4.1.0] 1002 || RequestTakingScreenShotWithTimeout || Takes a total of 0x18-bytes of input, no output. | + | | 1002 || [2.0.0-4.1.0] [[#RequestTakingScreenShotWithTimeout]] |
| |- | | |- |
− | | [3.0.0-4.1.0] 1003 || RequestTakingScreenShotEx || Takes a total of 0x58-bytes of input, no output. | + | | 1003 || [3.0.0-4.1.0] [[#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]] || | + | | 1100 || [18.0.0+] |
| |- | | |- |
− | | 1106 || [4.0.0+] ? || | + | | 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]] |
| |- | | |- |
− | | 1107 || [4.0.0+] ? || | + | | 1106 || [4.0.0+] |
| |- | | |- |
− | | 1201 || [3.0.0+] OpenRawScreenShotReadStream || Takes a total of 0x10-bytes of input, returns a total of 0x18-bytes of output. | + | | 1107 || [4.0.0+] |
| |- | | |- |
− | | 1202 || [3.0.0+] CloseRawScreenShotReadStream || No input/output. | + | | 1108 || [18.0.0+] |
| |- | | |- |
− | | 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. | + | | 1201 || [3.0.0+] [[#OpenRawScreenShotReadStream]] |
| |- | | |- |
− | | 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. | + | | 1202 || [3.0.0+] [[#CloseRawScreenShotReadStream]] |
| + | |- |
| + | | 1203 || [3.0.0+] [[#ReadRawScreenShotReadStream]] |
| + | |- |
| + | | 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 74: |
| | | |
| 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 131: |
| | | |
| '''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 140: |
| | | |
| '''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 117: |
Line 185: |
| |- | | |- |
| | 208 || [5.0.0+] SaveScreenShotOfMovieEx1 | | | 208 || [5.0.0+] SaveScreenShotOfMovieEx1 |
| + | |- |
| + | | 1000 || [13.0.0+] |
| |} | | |} |
| | | |
Line 122: |
Line 192: |
| 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 154: |
Line 226: |
| | 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 = |
− | This is "nn::hdcp::IHdcpController". | + | This is "nn::hdcp::detail::IHdcpController". |
| | | |
− | Added with [4.0.0+].
| + | This was added with [4.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 179: |
Line 252: |
| = 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 186: |
Line 257: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || InitializeOld | + | | 0 || [[#InitializeOld]] |
| |- | | |- |
− | | 1 || FinalizeOld | + | | 1 || [[#FinalizeOld]] |
| |- | | |- |
− | | 2 || SetAndWaitOld | + | | 2 || [[#SetAndWaitOld]] |
| |- | | |- |
− | | 3 || GetOld | + | | 3 || [[#GetOld]] |
| |- | | |- |
− | | 4 || Initialize | + | | 4 || [[#Initialize]] |
| |- | | |- |
− | | 5 || Finalize | + | | 5 || [[#Finalize]] |
| |- | | |- |
− | | 6 || SetAndWait | + | | 6 || [[#SetAndWait]] |
| |- | | |- |
− | | 7 || Get | + | | 7 || [[#Get]] |
| |} | | |} |
| + | |
| + | == InitializeOld == |
| + | Takes an input [[#Module]], an input [[#Priority]] and an input u32 '''EventClearMode'''. No output. |
| + | |
| + | == FinalizeOld == |
| + | Takes an input [[#Module]]. No output. |
| + | |
| + | == SetAndWaitOld == |
| + | Takes an input [[#Module]] and two input [[#Setting]] '''Min''' and '''Max'''. No output. |
| + | |
| + | == GetOld == |
| + | Takes an input [[#Module]]. Returns an output [[#Setting]] '''Current'''. |
| + | |
| + | == Initialize == |
| + | Same as [[#InitializeOld]], but returns an output u32 '''RequestId'''. |
| + | |
| + | == Finalize == |
| + | Same as [[#FinalizeOld]], but takes an input u32 '''RequestId''' instead of an input [[#Module]]. |
| + | |
| + | == SetAndWait == |
| + | Same as [[#SetAndWaitOld]], but takes an input u32 '''RequestId''' instead of an input [[#Module]]. |
| + | |
| + | == Get == |
| + | Same as [[#GetOld]], but takes an input u32 '''RequestId''' instead of an input [[#Module]]. |
| | | |
| = vi:u = | | = vi:u = |
Line 231: |
Line 326: |
| |- | | |- |
| | 3 || [[#vi:s|GetDisplayServiceWithProxyNameExchange]] | | | 3 || [[#vi:s|GetDisplayServiceWithProxyNameExchange]] |
− | |-
| |
| |} | | |} |
| | | |
Line 251: |
Line 345: |
| | 3 || [[#vi:m|GetDisplayServiceWithProxyNameExchange]] | | | 3 || [[#vi:m|GetDisplayServiceWithProxyNameExchange]] |
| |- | | |- |
| + | | 100 || [16.0.0+] PrepareFatal |
| + | |- |
| + | | 101 || [16.0.0+] ShowFatal |
| + | |- |
| + | | 102 || [16.0.0+] DrawFatalRectangle |
| + | |- |
| + | | 103 || [16.0.0+] DrawFatalText32 |
| |} | | |} |
| | | |
Line 424: |
Line 525: |
| | 2209 || SetLayerAlpha | | | 2209 || SetLayerAlpha |
| |- | | |- |
− | | 2210 || [11.0.0+] SetLayerPositionAndSize | + | | 2210 || [11.0.0-11.0.1] SetLayerPositionAndSize |
| |- | | |- |
| | 2312 || [1.0.0-6.2.0] CreateStrayLayer | | | 2312 || [1.0.0-6.2.0] CreateStrayLayer |
Line 496: |
Line 597: |
| | 8258 || [5.0.0+] CancelSharedFrameBuffer | | | 8258 || [5.0.0+] CancelSharedFrameBuffer |
| |- | | |- |
− | | 9000 || [11.0.0+] GetDp2hdmiController | + | | 9000 || [11.0.0+] [[#GetDp2hdmiController]] |
| |} | | |} |
| | | |
Line 521: |
Line 622: |
| | 4 || StartFirmwareUpdateWithSpecifiedImage | | | 4 || StartFirmwareUpdateWithSpecifiedImage |
| |- | | |- |
− | | 5 || OverwriteFirmware | + | | 5 || GetFirmwareUpdateState ([11.0.0-11.0.1] OverwriteFirmware) |
| |- | | |- |
− | | 6 || OverwriteFirmwareWithSpecifiedImage | + | | 6 || ResetDevice ([11.0.0-11.0.1] OverwriteFirmwareWithSpecifiedImage) |
| |- | | |- |
− | | 7 || GetFirmwareUpdateState | + | | 7 || [16.0.0+] StartBootFirmwareUpdate ([11.0.0-11.0.1] GetFirmwareUpdateState) |
| |- | | |- |
− | | 8 || ResetDevice | + | | 8 || [16.0.0+] StartBootFirmwareUpdateWithSpecifiedImage ([11.0.0-11.0.1] ResetDevice) |
| + | |- |
| + | | 9 || [17.0.0+] GetBootFirmwareVersion |
| |} | | |} |
| | | |
Line 560: |
Line 663: |
| |- | | |- |
| | 2055 || DestroyIndirectConsumerEndPoint | | | 2055 || DestroyIndirectConsumerEndPoint |
| + | |- |
| + | | 2060 || [16.0.0+] CreateWatermarkCompositor |
| + | |- |
| + | | 2062 || [16.0.0+] SetWatermarkText |
| + | |- |
| + | | 2063 || [16.0.0+] SetWatermarkLayerStacks |
| |- | | |- |
| | 2300 || AcquireLayerTexturePresentingEvent | | | 2300 || AcquireLayerTexturePresentingEvent |
Line 587: |
Line 696: |
| | 4207 || [11.0.0+] ResetDisplayPanel | | | 4207 || [11.0.0+] ResetDisplayPanel |
| |- | | |- |
− | | 4208 || [11.0.0+] EnableDisplayFatalError | + | | 4208 || [11.0.0+] [[#SetDisplayFatalErrorEnabled]] ([11.0.0-11.0.1] EnableDisplayFatalError) |
| + | |- |
| + | | 4209 || [12.0.0+] IsDisplayPanelOn |
| |- | | |- |
| | 4300 || [11.0.0+] GetInternalPanelId | | | 4300 || [11.0.0+] GetInternalPanelId |
Line 616: |
Line 727: |
| |- | | |- |
| | 6012 || [7.0.0+] DisableLayerAutoClearTransitionBuffer | | | 6012 || [7.0.0+] DisableLayerAutoClearTransitionBuffer |
| + | |- |
| + | | 6013 || [13.0.0+] SetLayerOpacity |
| + | |- |
| + | | 6014 || [16.0.0+] AttachLayerWatermarkCompositor |
| + | |- |
| + | | 6015 || [16.0.0+] DetachLayerWatermarkCompositor |
| |- | | |- |
| | 7000 || SetContentVisibility | | | 7000 || SetContentVisibility |
Line 673: |
Line 790: |
| | 8292 || [4.0.0+] FillDetachedSharedFrameBufferColor | | | 8292 || [4.0.0+] FillDetachedSharedFrameBufferColor |
| |- | | |- |
− | | 8293 || [4.0.0+] GetDetachedSharedFrameBufferImage | + | | 8293 || [4.0.0+] [[#GetDetachedSharedFrameBufferImage]] |
| |- | | |- |
| | 8294 || [4.0.0+] SetDetachedSharedFrameBufferImage | | | 8294 || [4.0.0+] SetDetachedSharedFrameBufferImage |
Line 689: |
Line 806: |
| | | |
| [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. |
| + | |
| + | === GetDetachedSharedFrameBufferImage === |
| + | Takes a total of 0x10-bytes of input and a type-0x6 output buffer, returns a total of 8-bytes of output. |
| + | |
| + | [15.0.0+] Now takes a total of 0x28-bytes of input and a type-0x6 output buffer, returns a total of 8-bytes of output. |
| + | |
| + | == SetDisplayFatalErrorEnabled == |
| + | Takes an input u64, no output. |
| + | |
| + | [12.0.0+] Takes an input bool and u64, no output. |
| + | |
| + | = 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 |
| + | |} |
| + | |
| + | == GetAmbientLightSensorValue == |
| + | No input. Outputs lux in float. |
| + | |
| + | [5.0.0+] Now returns an output [[#AmbientLightSensorValue]]. |
| + | |
| + | == 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. |
| + | |
| + | = Module = |
| + | This is "nn::mmnv::Module". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Name |
| + | |- |
| + | | 0 || Cpu |
| + | |- |
| + | | 1 || Gpu |
| + | |- |
| + | | 2 || Emc |
| + | |- |
| + | | 3 || SysBus |
| + | |- |
| + | | 4 || Mselect |
| + | |- |
| + | | 5 || Nvdec |
| + | |- |
| + | | 6 || Nvenc |
| + | |- |
| + | | 7 || Nvjpg |
| + | |- |
| + | | 8 || Test |
| + | |} |
| + | |
| + | = Priority = |
| + | This is "nn::mmnv::Priority". This is an u32. |
| + | |
| + | = Setting = |
| + | This is "nn::mmnv::Setting". This is an u32. |
| | | |
| = DisplayInfo = | | = DisplayInfo = |
| + | This is "nn::vi::DisplayInfo". This is a 0x60-byte structure. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x40 || [[#DisplayName]] | + | | 0x0 || 0x40 || [[#DisplayName|Name]] |
| |- | | |- |
− | | 0x40 || 0x1 || Whether or not the display has a constrained number of layers. | + | | 0x40 || 0x1 || HasLayerLimit |
| |- | | |- |
− | | 0x41 || 0x7 || Padding/Reserved | + | | 0x41 || 0x7 || Reserved |
| |- | | |- |
− | | 0x48 || 0x8 || If this display has a constrained number of layers (0x40 is set), indicates the maximum number of layers. | + | | 0x48 || 0x8 || LayerCountMax |
| |- | | |- |
− | | 0x50 || 0x8 || Width in pixels | + | | 0x50 || 0x8 || LayerWidthPixelCountMax |
| |- | | |- |
− | | 0x58 || 0x8 || Height in pixels | + | | 0x58 || 0x8 || LayerHeightPixelCountMax |
| |} | | |} |
− |
| |
− | This is a 0x60-byte structure.
| |
| | | |
| The width/height for the "Default" Display is the resolution for 1080p even when in handheld-mode. | | The width/height for the "Default" Display is the resolution for 1080p even when in handheld-mode. |
| | | |
| = DisplayName = | | = DisplayName = |
− | This is a 0x40-byte block: a NUL-terminated string. | + | This is "nn::vi::DisplayName". This is a 0x40-byte block: a NUL-terminated string. |
| | | |
| 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 732: |
Line 993: |
| | 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 763: |
Line 1,019: |
| 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. |
| + | |
| + | = Notes = |
| + | == 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 == |
| + | 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]] |