mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
21 lines
5.1 KiB
Markdown
21 lines
5.1 KiB
Markdown
# libSceVisionManager technical debt
|
|
|
|
### Unknown function info
|
|
|
|
- [sceVisionManagerApplyCalibrateHmdResult, sceVisionManagerCancelRequest, sceVisionManagerFinalize, sceVisionManagerGenerateRegisterUserData, sceVisionManagerGenerateRegisterUserDataFinalize, sceVisionManagerGenerateRegisterUserDataInitialize, sceVisionManagerGetCalibrateTrackingLedInfo, sceVisionManagerGetCalibrateTrackingLedNecessity, sceVisionManagerGetHitCountOfRegisterUserData, sceVisionManagerGetRegisterUserDataSize, sceVisionManagerGetRegisterUserDataVersion, sceVisionManagerGetResultOfCalibrateHmd, sceVisionManagerGetResultOfCalibrateStereoCamera, sceVisionManagerGetResultOfCalibrateTrackingLed, sceVisionManagerGetResultOfFindFace, sceVisionManagerGetStoreCameraImgYPtr, sceVisionManagerInitialize, sceVisionManagerRegistryClear, sceVisionManagerRequestCalibrateHmd, sceVisionManagerRequestCalibrateStereoCamera, sceVisionManagerRequestCalibrateTrackingLed, sceVisionManagerRequestClose, sceVisionManagerRequestFindFace, sceVisionManagerRequestHeadDetection, sceVisionManagerRequestInitializeRegisterUserData, sceVisionManagerRequestOpen, sceVisionManagerRequestRecogUtility, sceVisionManagerRequestStoreCameraImgY, sceVisionManagerSetCallbackForUpdateCalibrateHmdResult, sceVisionManagerSetCallbackForUpdateCalibrateStereoCameraResult, sceVisionManagerSetCallbackForUpdateCalibrateTrackingLedResult, sceVisionManagerSetCallbackForUpdateCameraFrame, sceVisionManagerSetCallbackForUpdateCtrlCore, sceVisionManagerSetCallbackForUpdateRecog, sceVisionManagerSetCallbackForUpdateRunningStatus, sceVisionManagerSetCallbackForUpdateStoreFrame and sceVisionManagerWaitResponse](../../../core/libs/prx/libSceVisionManager/Export.cpp) (libSceVisionManager) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceVisionManager.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
- [sceVisionManagerGetLibraryVersion, sceVisionManagerGetNumOfRegisterUserDataSlot, sceVisionManagerGetWorkingMemorySize, sceVisionManagerRequestFindPad, sceVisionManagerRequestFindPadCorrespondRegion, sceVisionManagerRequestPadTracking, sceVisionManagerGetResultOfFindPad, sceVisionManagerGetResultOfFindPadCorrespondRegion and `-R5dI6KjYpY`](../../../core/libs/prx/libSceVisionManager/Export.cpp) - the parameter names and the layouts behind the pointers are unknown. They follow firmware 13.42's libSceVisionManager.sprx, read from its disassembly and run natively on x86-64 (not a console); argument types are inferred from register use. None of them reads library state. `sceVisionManagerGetLibraryVersion` writes 0x1020000214072421 and returns 0, or returns 0x80E70000 for a null pointer. `sceVisionManagerGetNumOfRegisterUserDataSlot(version, count)` writes 16 for version 0x1017000014043000 and 30 for 0x1020000214072421 and returns 0; any other version returns 0x80E70000 and writes nothing. `sceVisionManagerGetWorkingMemorySize` writes 0, 0x1600000 and 0x4200000 through its three pointers, without checking them, and returns 0. The pad requests never succeed: `sceVisionManagerRequestFindPad(context, parameter)` returns 0x80E70004 when both pointers are set and `*parameter` is nonzero and below 5 (signed), and 0x80E70000 otherwise; `sceVisionManagerRequestFindPadCorrespondRegion(context, parameter, region, result)` adds that `region` is 1 to 4 and `result` is set; `sceVisionManagerRequestPadTracking` ignores its first argument and uses a limit of 4. `sceVisionManagerGetResultOfFindPad` and `sceVisionManagerGetResultOfFindPadCorrespondRegion` return 0x80E70004 when all three pointers are set and 0x80E70000 otherwise. `-R5dI6KjYpY(input, output)` returns 0x80E70000 for a null pointer; otherwise it clears 32 bytes of `output`, writes 5 to `output[0]` when the larger of `input[0]` and `input[1]` (unsigned) is 10 to 29 and 10 when it is 30 or more, and returns 0
|
|
|
|
### Additional callable exports
|
|
|
|
- [Additional callable exports](../../../core/libs/prx/libSceVisionManager/Export.cpp) - 7 entries present in both version-labelled images are import-resolution declarations only. Neither label independently authenticates retail firmware provenance. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry except `-R5dI6KjYpY`, described under Unknown function info, throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv).
|
|
|
|
| Name | NID |
|
|
| --- | --- |
|
|
| `Unknown` | `-R5dI6KjYpY` |
|
|
| `Unknown` | `0chNZ7GKUO0` |
|
|
| `Unknown` | `9gGQMrf6sWg` |
|
|
| `Unknown` | `ORAn12NcHYs` |
|
|
| `Unknown` | `YQiB-svtbcc` |
|
|
| `Unknown` | `dzN0VRFvA84` |
|
|
| `Unknown` | `wu4afKNlup4` |
|