db2575839 (#8307) made both return 0, following their bodies in the
firmware module libSceVideoRecording.sprx (xor eax, eax; ret), but left
the entry saying they are parameterless stubs that throw. The firmware
body leaves no open gap, so the entry goes. sceVideoRecordingGetStatus
no longer lists sceVideoRecordingInit among the initializers that throw.
3.4 KiB
libSceVideoRecordingP technical debt
Unknown function info
-
sceVideoRecordingGetInfo, sceVideoRecordingSetInfo support native validation and errors before a recording context exists. Open and initialization remain protected unimplemented exports; live recording queries, control and volume changes are unavailable.
-
_sceVideoRecordingQueryParam_nid_postfix: the supplied module reads a 64-bit size and writes a 32-bit mode at offset 12 for sizes at least 16, plus a 32-bit option at offset 28 for sizes at least 64. Mode/option meanings remain unresolved; the protected implementation is unchanged.
-
sceVideoRecordingCloseByHandle, sceVideoRecordingGetInfoByHandle - native handles are context pointers. Recording state and per-handle queries remain unimplemented.
-
sceVideoRecordingCopyBGRAtoNV12 - the destination, source, 32-bit width and height arguments are confirmed. Pixel conversion remains unimplemented.
-
sceVideoRecordingGetSupportInfo, sceVideoRecordingGetVideoOutMode - GetSupportInfo writes an 18-byte payload whose fields remain unresolved. GetVideoOutMode takes a four-byte output confirmed by the native recording assembly and Avcap2 IPC descriptor; the mode values remain unresolved. Both exports remain unimplemented.
-
sceVideoRecordingInitialize: the native initializer consumes no caller arguments; the former optional parameter is not read by the Avcap2 initializer or recording setup. Its unused parameter slot is retained because the protected body references it.
-
sceVideoRecordingOpen, sceVideoRecordingOpen2 - the 32-byte and 40-byte parameter variants, four argument registers and 32-bit heap size are recovered. Mode, output mode, option and format semantics remain incomplete. QueryHddSize2 returns a signed 64-bit size or error; recording and sizing exports remain unimplemented.
-
Handle and support queries - native recording handles are context pointers, and GetSupportInfo writes 18 bytes. Support payload field semantics remain incomplete. RestModeProcessStart, RestModeProcessGetStatus and SendCommand consume no caller arguments in the supplied native module; their existing unused parameter slots remain because the protected bodies reference those parameter names.
Functional
- sceVideoRecordingGetStatus (libSceVideoRecordingP) always returns 0,
None("The recorder is not open") in SharpProspero'sVideoRecordingStatus, also listed in shadPS4. It is true here becausesceVideoRecordingOpenthrows, so no recorder is ever open. Unverified: whether the console returns 0 or an error beforesceVideoRecordingInit/sceVideoRecordingInitialize, and when it reportsRunning(1) orPaused(2)