Files
AnyPS5/docs/dev/debt/libSceScreenShot.md
T
Dean 96e89386ec Merge pull request #14223 from zaryabzip/feat/screenshot-local-checks
feat(libSceScreenShot): check the arguments of six exports as firmware 13.42 does
2026-11-07 11:29:11 +13:00

2.4 KiB

libSceScreenShot technical debt

Silent stubs

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: SetParam sends its strings to the service instead of keeping them for Capture. GetDrcParam's two counts (3rd and 6th arguments) are only used after the service call, and SetDrcParam'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-256 5638de4e19bf38b66cf8fc8fb81d3ae3b35f1411b4621799db29fbe867caeb3b. @BunnyFl matched each export's NID to its dynamic symbol table, which gives the six entry addresses; not measured on a console.