Files
AnyPS5/docs/dev/debt/libSceMouse.md
T
Dean c47ee4e034 Merge pull request #12958 from zaryabzip/feat/mouse-absolute-position
feat(libSceMouse): implement the absolute position calls as firmware 13.42 does
2026-11-03 06:25:57 +13:00

3.7 KiB

libSceMouse technical debt

Unknown function info

  • libSceMouse additional exports - these name/NID pairs are present in the 13.60 export inventory. Parameter lists, return types and behavior are unverified. Parameterless int declarations are import-resolution placeholders, not verified ABI prototypes; every entry throws through NotImplemented_nid_no_patch. No runtime functionality is implemented.
Name NID
sceMouseDisconnectAll 8fjFFh4zZXU
sceMouseExtensionGetCursor UBO+tFHvcyE
sceMouseExtensionRead doRbAW89lZE
sceMouseExtensionReadState CvUnq1gsWMg
sceMouseExtensionScalePosition GE+ZU2Y9pEs
sceMouseExtensionSetConfig T4BHUjH773k
sceMouseExtensionSetCursor 2KVa2-HqIRs
sceMouseGetHandle P+9UQOe1F2g
sceMouseVirtualDeviceAddDevice JB6ycme-yJ8
sceMouseVirtualDeviceDeleteDevice HN2s86AOUiM
sceMouseVirtualDeviceGetCursor rdrYJpbUJyA

Functional

  • Publish (libSceMouse) - consecutive motion-only reports with the same buttons are summed into the newest unread entry, so a title that reads a few entries per frame gets current motion instead of a full queue of old reports. Reports with no motion and no button, wheel, tilt or connection change are dropped. Per-report granularity and the console's own report rate are not reproduced

  • sceMouseResetAbsolutePosition, sceMouseSetAbsoluteVirtualScreenSize, sceMouseSetAbsoluteHighPrecisionMode, sceMouseReadAbsolutePosition (libSceMouse) - follow firmware 13.42 run natively with the driver stubbed: checks and order, screen sizes and rescale, the mode byte, the curve with its fraction, the 40-byte record. Host choices, after XatiX's title-tested version: each host event is one sample with unscaled counts, in its own queue, so sceMouseRead's motion merging does not feed the curve. A read takes all pending samples; past num, same-button neighbours share a record, each still moving the pointer, and the last num records are kept. Speed is taken as 4, the hand swap and flagged bit never apply, and a disconnected mouse stands in for a zero driver status