Changes

Jump to navigation Jump to search
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]]

Navigation menu