mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-08 13:50:20 +00:00
2.4 KiB
2.4 KiB
libSceScreenShot technical debt
Silent stubs
- sceScreenShotEnableNotification and sceScreenShotDisableNotification (libSceScreenShot) - return 0 without effect: on the console they ask the system software to show or hide the capture notification, which this project does not display
- sceScreenShotSetOverlayImage and sceScreenShotSetOverlayImageWithOrigin (libSceScreenShot) - check the arguments and the file as the PS5 module does, then return 0 without keeping the image, since this project takes no screenshots to overlay
- sceScreenShotIsDisabled (libSceScreenShot) - reports one process-wide flag set by sceScreenShotDisable and cleared by sceScreenShotEnable for any id other than -1; returning ErrorArgument for a non-null unmapped pointer is a host-safety fallback, and console system software behaviour is unmeasured
Unknown function info
- sceScreenShotSetParam, Capture, GetAppInfo, IsVshScreenCaptureDisabled, GetDrcParam and SetDrcParam (libSceScreenShot) - argument lists and checks follow @BunnyFl's firmware 13.42 run and disassembly, under an emulator with imports stubbed, not on a console; names are inferred. Each failed check returns 0x80BE0001 (the order is in the code). Past its checks each call would create a client for the screenshot service, which AnyPS5 doesn't have, so it throws. The module keeps no state between calls:
SetParamsends its strings to the service instead of keeping them forCapture.GetDrcParam's two counts (3rd and 6th arguments) are only used after the service call, andSetDrcParam's 0x400 and 0x8000 fields look like counts of 4-byte elements (inferred). The service's answers,Capture's cancel callback and the connect retries aren't modelled. - The 13.42 module behind those checks (libSceScreenShot) - is
system/common/lib/libSceScreenShot.sprx, 69,340 bytes, SHA-2565638de4e19bf38b66cf8fc8fb81d3ae3b35f1411b4621799db29fbe867caeb3b. @BunnyFl matched each export's NID to its dynamic symbol table, which gives the six entry addresses; not measured on a console.