Changes

Jump to navigation Jump to search
! Cmd || Name || Notes
|-
| 1 || [[#CaptureRawImage]] ||
|-
| 2 || [[#CaptureRawImageWithTimeout]] ||
|-
| 3 || [5.0.0+] ? AttachSharedBuffer || Takes a total of 8-bytes of input, no output.
|-
| 5 || [5.0.0+] ? CaptureRawImageToAttachedSharedBuffer || Takes a total of 0x10-bytes of input, no output.
|-
| 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.
|-
| [2.0.0-4.1.0] 1001 || RequestTakingScreenShot || Takes a total of 0x10-bytes of input, no output.
|-
| [2.0.0-4.1.0] 1002 || RequestTakingScreenShotWithTimeout || Takes a total of 0x18-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.
|-
| 1009 || [5.0.0+] ? CancelTakingScreenShot || Takes a total of 0x10-bytes of input, no output.
|-
| 1010 || [5.0.0+] ? SetTakingScreenShotCancelState || Takes a total of 0x10-bytes of input, no output.
|-
| 1011 || NotifyTakingScreenShotRefused || Takes a total of 8-bytes of input, no output.
|-
| 1012 || NotifyTakingScreenShotFailed || Takes a total of 8-bytes of input, no output.
|-
| 1101 || [4.0.0+] ? [[#SetupOverlayMovieThumbnail]] ||
|-
| 1106 || [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.
|-
| 1202 || [3.0.0+] ? CloseRawScreenShotReadStream || No input/output.
|-
| 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.|-| 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.
|}
* 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.
[8.0.0+] Cmd210 and cmd1004 now takes an additional type-0x15 input buffer. == Cmd1 CaptureRawImage ==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'''.
'''width'''/'''height''' must match 1280/720. '''buffer_index''' must be < '''buffer_count'''. '''buffer_index''' and '''buffer_count''' must not be negative.
Stubbed with [5.0.0+], where it now returns error 0x7FECE.
== Cmd2 CaptureRawImageWithTimeout ==Calls the same internal func as cmd1[[#CaptureRawImage]], 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.
== Cmd1101 SetupOverlayMovieThumbnail ==
Takes two input u64s '''width'''/'''height''', a 0x18-byte input struct, and two type-0x46 output buffers.
== Cmd1106 ==
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', 4 a 0x18-byte input u64sstruct, two type-0x15 input buffers, a type-0x6 output buffer, and two type-0x46 output buffers, returns 3 output u64s. '''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 [[#Cmd11015.0.0+]]. The size Now takes a total of the type0x68-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#Cmd1101]]bytes of input instead of 0x30.
== Cmd1107 ==
Takes a 0x40-byte input struct, two input u64s '''width'''/'''height''', 4 a 0x18-byte input u64sstruct, two type-0x15 input buffers, a type-0x6 output buffer, and a type-0x45 input buffer, returns 3 output u64s. '''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 [[#Cmd1101]5.0.0+]. The size Now takes a total of the type0x68-0x6 buffer must be at least 0x7D000. The size bytes of input instead of the type-0x45 buffer must be at least 0x3840000x30.
= caps:ss =
! Cmd || Name
|-
| 201 ||SaveScreenShot|-| 202 || SaveEditedScreenShot|-| 203 || [3.0.0+] SaveScreenShotEx0
|-
| 202 204 ||[3.0.0+] SaveEditedScreenShotEx0
|-
| 203 206 ||[?+]
|-
| 204 208 ||[5.0.0+] SaveScreenShotOfMovieEx1
|}
= caps:su =
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+].
{| class="wikitable" border="1"
! Cmd || Name
|-
| 0 ||RegisterCallback|-| 1 || UnregisterCallback|-| 2 || TriggerSystemEvent|-| 3 || PerformAction|-| 4 || QueryState|-| 5 || OnSystemEvent|-| 6 || [2.0.0+] CancelCurrentCall
|-
| 1 100 || [4.0.0+] GetHdcpServiceObject|} GetHdcpServiceObject: No input, returns a [[#IHdcpController]]. = IHdcpController =This is "nn::hdcp::IHdcpController". Added with [4.0.0+]. {|class="wikitable" border="1"
|-
| 2 ! Cmd ||Name
|-
| 3 0 ||GetHdcpStateTransitionEvent
|-
| 4 1 ||GetHdcpAuthenticationState
|-
| 5 2 ||SetCurrentHdcpMode
|-
| 6 3 ||GetCurrentHdcpMode
|}
| 0 || [[#vi:u|GetDisplayService]]
|-
| 1 || [9.0.0+] [[#vi:u|GetDisplayServiceWithProxyNameExchange]]
|}
== GetDisplayService ==
Returns an [[#IApplicationDisplayService]]. Takes an input u32, user-processes use 0 or 1, with 0 for regular-applications normally. 0 = user-service(vi:u), 1 = non-user-system/manager service? (vi:s/vi:m). Returns an error when using value 1 with vi:u(same error listed below for IApplicationDisplayService for unavailable commands), however passing 1 to vi:s/vi:m results in the IApplicationDisplayService having greater privileges. == GetDisplayServiceWithProxyNameExchange ==Takes an input u32, and returns an [[#IApplicationDisplayService]].
= vi:s =
== GetDisplayResolution ==
Takes an input u64 DisplayId and returns two output u64ss64s: width and height. Official sw copies these to s32 output fields.
== OpenLayer ==
== GetIndirectLayerImageMap ==
Takes a PID-descriptor, an type-0x46 buffer, and four u64s: two s64s width(s32), /height(s32), then two u64s: <output from [[AM_services|AM]] GetIndirectLayerConsumerHandle>, and [[AM_services|AppletResourceUserId]]. Returns two output s64s, which are copied to output u64sby 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.
== GetIndirectLayerImageRequiredMemoryInfo ==
Takes two input u64ss64s: width and height. Returns two output s64s, which are copied to output u64sby official sw. First u64 field is the buffer size to use with the ImageMap cmds, second u64 field is the buffer address alignment for those cmds. Official sw sets the width/height using input s32s.
== GetDisplayVsyncEvent ==
| 1203 || GetDisplayLogicalResolution
|-
| 1204 || [3.0.0+] SetDisplayMagnification
|-
| 2201 || SetLayerPosition
| 2209 || SetLayerAlpha
|-
| 2312 || [1.0.0-6.2.0] 2312 || CreateStrayLayer
|-
| 2400 || OpenIndirectLayer
|-
| 3217 || SetDisplayCmuLuma
|-
| 6013 || [10.0.0+] GetLayerPresentationSubmissionTimestamps
|-
| 8225 || [4.0.0+] GetSharedBufferMemoryHandleId
| 201 || [4.0.0+] FreeProcessHeapBlock
|-
| 1102 || [3.0.0+] GetDisplayResolution
|-
| 2010 || CreateManagedLayer
|-
| 2302 || GetDisplayHotplugEvent
|-
| 2303 || [5.1.0+] GetDisplayModeChangedEvent
|-
| 2402 || GetDisplayHotplugState
|-
| 6010 || [5.0.0+] GetLayerPresentationAllFencesExpiredEvent
|-
| 6011 || [7.0.0+] EnableLayerAutoClearTransitionBuffer
|-
| 6012 || [7.0.0+] DisableLayerAutoClearTransitionBuffer
|-
| 7000 || SetContentVisibility
|-
| 8000 || SetConductorLayer
|-
| 8001 || [8.0.0+] SetTimestampTracking
|-
| 8100 || SetIndirectProducerFlipOffset
| 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.
= DisplayInfo =

Navigation menu