Changes

3,251 bytes added ,  04:13, 23 October 2024
no edit summary
Line 10: Line 10:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 1 || [[#CaptureRawImage]]
+
| 1 || [[#CaptureRawImageRgba32IntoArray]]
 
|-
 
|-
| 2 || [[#CaptureRawImageWithTimeout]]
+
| 2 || [[#CaptureRawImageRgba32IntoArrayWithTimeout]]
 
|-
 
|-
| 3 || [5.0.0+] [[#AttachSharedBuffer]]
+
| 3 || [5.0.0+] [[#AttachSharedBufferToCaptureModule]]
 
|-
 
|-
 
| 5 || [5.0.0+] [[#CaptureRawImageToAttachedSharedBuffer]]
 
| 5 || [5.0.0+] [[#CaptureRawImageToAttachedSharedBuffer]]
 
|-
 
|-
| 210 || [6.0.0+]
+
| 210 || [6.0.0+] [[#SaveScreenShotEx2ViaAm]]
 
|-
 
|-
| [2.0.0-4.1.0] 1001 || [[#RequestTakingScreenShot]]
+
| 1001 || [2.0.0-4.1.0] [[#RequestTakingScreenShot]]
 
|-
 
|-
| [2.0.0-4.1.0] 1002 || [[#RequestTakingScreenShotWithTimeout]]
+
| 1002 || [2.0.0-4.1.0] [[#RequestTakingScreenShotWithTimeout]]
 
|-
 
|-
| [3.0.0-4.1.0] 1003 || [[#RequestTakingScreenShotEx]]
+
| 1003 || [3.0.0-4.1.0] [[#RequestTakingScreenShotEx]]
 
|-
 
|-
 
| 1004 || [5.0.0+] [[#RequestTakingScreenShotEx1]]
 
| 1004 || [5.0.0+] [[#RequestTakingScreenShotEx1]]
Line 35: Line 35:  
|-
 
|-
 
| 1012 || [[#NotifyTakingScreenShotFailed]]
 
| 1012 || [[#NotifyTakingScreenShotFailed]]
 +
|-
 +
| 1100 || [18.0.0+]
 
|-
 
|-
 
| 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]]
 
| 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]]
 
|-
 
|-
| 1106 || [4.0.0+]
+
| 1106 || [4.0.0+] [[#CreateProtoMovieMetaDataNv12Ex2]]
 +
|-
 +
| 1107 || [4.0.0+] [[#CreateProtoMovieMetaDataRgbaEx2]]
 +
|-
 +
| 1108 || [18.0.0+]
 +
|-
 +
| 1109 || [19.0.0+]
 +
|-
 +
| 1110 || [19.0.0+]
 +
|-
 +
| 1111 || [19.0.0+]
 +
|-
 +
| 1112 || [19.0.0+]
 +
|-
 +
| 1113 || [19.0.0+]
 
|-
 
|-
| 1107 || [4.0.0+]
+
| 1114 || [19.0.0+]
 
|-
 
|-
 
| 1201 || [3.0.0+] [[#OpenRawScreenShotReadStream]]
 
| 1201 || [3.0.0+] [[#OpenRawScreenShotReadStream]]
Line 48: Line 64:  
| 1203 || [3.0.0+] [[#ReadRawScreenShotReadStream]]
 
| 1203 || [3.0.0+] [[#ReadRawScreenShotReadStream]]
 
|-
 
|-
| 1204 || [9.0.0+]
+
| 1204 || [9.0.0+] [[#CaptureCrashScreenShot]]
 
|}
 
|}
    
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.
   −
== CaptureRawImage ==
+
== CaptureRawImageRgba32IntoArray ==
 
Takes a type-0x46 output buffer, an input u32 '''layer_stack''', two input u64s '''width'''/'''height''', an input s64 '''buffer_count''', and an input s64 '''buffer_index'''.
 
Takes a type-0x46 output buffer, an input u32 '''layer_stack''', two input u64s '''width'''/'''height''', an input s64 '''buffer_count''', and an input s64 '''buffer_index'''.
   Line 66: Line 82:  
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
 
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
   −
== CaptureRawImageWithTimeout ==
+
== CaptureRawImageRgba32IntoArrayWithTimeout ==
Calls the same internal func as [[#CaptureRawImage]], where the last param is an additional cmd input u64 instead of hard-coded value 0x5f5e100.
+
Calls the same internal func as [[#CaptureRawImageRgba32IntoArray]], where the last param is an additional cmd input u64 instead of hard-coded value 0x5f5e100.
    
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
 
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
   −
== AttachSharedBuffer ==
+
== AttachSharedBufferToCaptureModule ==
 
Takes a total of 8-bytes of input. No output.
 
Takes a total of 8-bytes of input. No output.
   Line 77: Line 93:  
Takes a total of 0x10-bytes of input. No output.
 
Takes a total of 0x10-bytes of input. No output.
   −
== Cmd210 ==
+
== SaveScreenShotEx2ViaAm ==
 
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.
 
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.
   Line 101: Line 117:     
[11.0.0+] Now takes an additional 8-bytes of input.
 
[11.0.0+] Now takes an additional 8-bytes of input.
 +
 +
[19.0.0+] Now takes another additional 8-bytes of input.
    
== CancelTakingScreenShot ==
 
== CancelTakingScreenShot ==
Line 123: Line 141:  
The requirements for the second buffer address/size are the same as the first buffer, except the minimum size is ('''width'''*'''height''')/2.
 
The requirements for the second buffer address/size are the same as the first buffer, except the minimum size is ('''width'''*'''height''')/2.
   −
== Cmd1106 ==
+
== CreateProtoMovieMetaDataNv12Ex2 ==
 
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and two type-0x46 output buffers, returns 3 output u64s.
 
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and two type-0x46 output buffers, returns 3 output u64s.
   Line 132: Line 150:  
[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.
   −
== Cmd1107 ==
+
[19.0.0+] Now takes an additional 0x10-bytes of input.
 +
 
 +
== CreateProtoMovieMetaDataRgbaEx2 ==
 
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and a type-0x45 input buffer, returns 3 output u64s.
 
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', a 0x18-byte input struct, two type-0x15 input buffers, a type-0x6 output buffer, and a type-0x45 input buffer, returns 3 output u64s.
   Line 140: Line 160:     
[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.
 +
 +
[19.0.0+] Now takes an additional 0x10-bytes of input.
 +
 +
== Cmd1108 ==
 +
Takes a total of 0x70-bytes of input, three type-0x15 input buffers, a type-0x6 output buffer. Returns a total of 0x18-bytes of output.
 +
 +
[19.0.0+] Now takes an additional 0x10-bytes of input.
    
== OpenRawScreenShotReadStream ==
 
== OpenRawScreenShotReadStream ==
Line 156: Line 183:  
Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
 
Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
   −
== Cmd1204 ==
+
== CaptureCrashScreenShot ==
 
Takes a total of 0x10-bytes of input and a type-0x46 output buffer. Returns a total of 8-bytes of output.
 
Takes a total of 0x10-bytes of input and a type-0x46 output buffer. Returns a total of 8-bytes of output.
   Line 178: Line 205:  
| 204 || [3.0.0+] SaveEditedScreenShotEx0
 
| 204 || [3.0.0+] SaveEditedScreenShotEx0
 
|-
 
|-
| 206 || [?+]
+
| 206 || [4.0.0+] SaveEditedScreenShotEx1
 
|-
 
|-
 
| 208 || [5.0.0+] SaveScreenShotOfMovieEx1
 
| 208 || [5.0.0+] SaveScreenShotOfMovieEx1
 +
|-
 +
| 1000 || [13.0.0+] [[#RequestTakingScreenShotForApplet]]
 
|}
 
|}
 +
 +
== RequestTakingScreenShotForApplet ==
 +
Takes a total of 0x68-bytes of input, two type-0x15 input buffers. Returns a total of 0x20-bytes of output.
 +
 +
[19.0.0+] Now takes an additional 8-bytes of input.
    
= caps:su =
 
= caps:su =
Line 224: Line 258:     
== GetHdcpServiceObject ==
 
== GetHdcpServiceObject ==
No input, returns a [[#IHdcpController]].
+
No input. Returns a [[#IHdcpController]].
    
= IHdcpController =
 
= IHdcpController =
This is "nn::hdcp::IHdcpController".
+
This is "nn::hdcp::detail::IHdcpController".
    
This was added with [4.0.0+].
 
This was added with [4.0.0+].
Line 251: Line 285:  
! 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 314: Line 372:  
|-
 
|-
 
| 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 584: Line 650:  
| 4 || StartFirmwareUpdateWithSpecifiedImage
 
| 4 || StartFirmwareUpdateWithSpecifiedImage
 
|-
 
|-
| 5 || [11.0.0-11.0.1] OverwriteFirmware
+
| 5 || GetFirmwareUpdateState ([11.0.0-11.0.1] OverwriteFirmware)
 +
|-
 +
| 6 || ResetDevice ([11.0.0-11.0.1] OverwriteFirmwareWithSpecifiedImage)
 
|-
 
|-
| 6 || [11.0.0-11.0.1] OverwriteFirmwareWithSpecifiedImage
+
| 7 || [16.0.0-18.1.0] StartBootFirmwareUpdate ([11.0.0-11.0.1] GetFirmwareUpdateState)
 
|-
 
|-
| 5 ([11.0.0-11.0.1] 7) || GetFirmwareUpdateState
+
| 8 || [16.0.0+] StartBootFirmwareUpdateWithSpecifiedImage ([11.0.0-11.0.1] ResetDevice)
 
|-
 
|-
| 6 ([11.0.0-11.0.1] 8) || ResetDevice
+
| 9 || [17.0.0+] GetBootFirmwareVersion
 
|}
 
|}
   Line 623: Line 691:  
|-
 
|-
 
| 2055 || DestroyIndirectConsumerEndPoint
 
| 2055 || DestroyIndirectConsumerEndPoint
 +
|-
 +
| 2060 || [16.0.0+] CreateWatermarkCompositor
 +
|-
 +
| 2062 || [16.0.0+] SetWatermarkText
 +
|-
 +
| 2063 || [16.0.0+] SetWatermarkLayerStacks
 
|-
 
|-
 
| 2300 || AcquireLayerTexturePresentingEvent
 
| 2300 || AcquireLayerTexturePresentingEvent
Line 681: Line 755:  
|-
 
|-
 
| 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 738: Line 818:  
| 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 754: Line 834:     
[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 ==
 
== SetDisplayFatalErrorEnabled ==
Line 856: Line 941:  
== IsVrModeEnabled ==
 
== IsVrModeEnabled ==
 
No input. Returns an output u8 bool set by the above commands.
 
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 =
Line 941: Line 1,058:  
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.
 
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 =
+
= 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 Notes =
+
== 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 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 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.