GRC services: Difference between revisions

 
(7 intermediate revisions by 2 users not shown)
Line 19: Line 19:
|-
|-
| 101 || [5.0.0+] [[#CreateMovieMaker]]
| 101 || [5.0.0+] [[#CreateMovieMaker]]
|-
| 110 || [19.0.0+]
|-
|-
| 9903 || [5.0.0+] [[#SetOffscreenRecordingMarker]]
| 9903 || [5.0.0+] [[#SetOffscreenRecordingMarker]]
Line 40: Line 42:
== CreateMovieMaker ==
== CreateMovieMaker ==
Takes a total of 0x10-bytes of input, returns an [[#IMovieMaker]].
Takes a total of 0x10-bytes of input, returns an [[#IMovieMaker]].
== Cmd110 ==
Takes a total of 0x20-bytes of input and a handle. Returns an [[#IMovieWriter]].
This is stubbed on NX: this just closes the input handle if needed, then returns Result 0xFFED4.


== SetOffscreenRecordingMarker ==
== SetOffscreenRecordingMarker ==
Line 58: Line 65:
|-
|-
| 4 || [17.0.0+] UpdateRecordingStartTick
| 4 || [17.0.0+] UpdateRecordingStartTick
|-
| 5 || [20.0.0+]
|-
|-
| 10 || GetNotFlushingEvent
| 10 || GetNotFlushingEvent
Line 73: Line 82:


[8.0.0+] ContinuousRecordingFlushParameter is now an sf::LargeData type, so StartFlush/StartFlushWithEvent now take in parameter via type-0x15 input buffer.
[8.0.0+] ContinuousRecordingFlushParameter is now an sf::LargeData type, so StartFlush/StartFlushWithEvent now take in parameter via type-0x15 input buffer.
=== Cmd5 ===
Takes an input u32, no output.
On NX this is identical to StartRecording, the input u32 is ignored.


== IGameMovieTrimmer ==
== IGameMovieTrimmer ==
Line 88: Line 102:
|-
|-
| 20 || [[#SetThumbnailRgba]]
| 20 || [[#SetThumbnailRgba]]
|-
| 21 || [19.0.0+]
|}
|}


Line 109: Line 125:


'''width''' must be 1280, '''height''' must be 720, and the buffer size must be at least 0x384000. After this validation, this just copies the input buffer to state with size 0x384000 and returns 0.
'''width''' must be 1280, '''height''' must be 720, and the buffer size must be at least 0x384000. After this validation, this just copies the input buffer to state with size 0x384000 and returns 0.
=== Cmd21 ===
Takes a total of 8-bytes of input and a type-0x45 input buffer. No output.
On NX this just Aborts with Result 0xFFED4.


= grc:d =
= grc:d =
Line 147: Line 168:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Cmd || Name || Notes
! Cmd || Name
|-
|-
| 201 || CreateOffscreenLayer || Takes an aruid, returns an 8-byte handle to the layer.
| 201 || [[#CreateOffscreenLayer]]
|-
|-
| 202 || DestroyOffscreenLayer || Takes in an 8-byte layer handle previously returned by CreateOffscreenLayer.
| 202 || [[#DestroyOffscreenLayer]]
|}
|}
== CreateOffscreenLayer ==
Takes an aruid, returns an 8-byte handle to the layer.
== DestroyOffscreenLayer ==
Takes in an 8-byte layer handle previously returned by CreateOffscreenLayer.


= IMovieMaker =
= IMovieMaker =
Line 264: Line 291:
== GetOffscreenLayerAudioEncodeReadyEvent ==
== GetOffscreenLayerAudioEncodeReadyEvent ==
Takes an input u64 '''LayerHandle''', returns an output event handle with autoclear disabled.
Takes an input u64 '''LayerHandle''', returns an output event handle with autoclear disabled.
= IMovieWriter =
This is "nn::grcsrv::IMovieWriter".
This was added with [19.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 ||
|-
| 10 ||
|-
| 20 ||
|-
| 100 ||
|-
| 110 ||
|-
| 120 ||
|-
| 130 ||
|}


= OffscreenRecordingParameter =
= OffscreenRecordingParameter =