Files
AnyPS5/docs/dev/debt/libSceMove.md
T
erickerxhalliandClaude Opus 5.5 95ea06e80b fix(libSceMove): throw when opening for another user or an open slot
sceMoveOpen returned a new handle for any user, type and index, although
the console's result for a user other than the initial user and for a
type and index that are already open is not known. Both now throw, as
libSceHmd2 does for another user. Record which shadPS4 behaviour the
handle and open checks add to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Arbzg9c2DA4DEFKVSvRgYv
2026-10-19 22:31:58 +00:00

1.6 KiB

libSceMove technical debt

Silent stubs

  • libSceMove implements only the no-controller path: initialization and termination succeed, sceMoveOpen returns a new handle, sceMoveClose and sceMoveResetLightSphere succeed for an open handle, and the device info, state, extension port, vibration and sceMoveSetLightSphere calls return 1 (no controller connected) and write nothing

Unknown function info

  • libSceMove (libSceMove) - behaviour, error codes and the handle values (0x30B0100, then every 0x100) follow shadPS4 (PS4), which checks no handle or open arguments; none is measured on a PS5. Signatures follow Orbital, except sceMoveGetExtensionPortInfo, which follows shadPS4. Before sceMoveInit and after sceMoveTerm every other call returns NOT_INIT (0x80EE0001); a null output or a negative timestamp returns INVALID_ARG (0x80EE0003). Closes when: measured on a PS5
  • libSceMove (libSceMove) - a handle that was never opened, is closed or was opened before sceMoveTerm throws: the console's INVALID_HANDLE (0x80EE0004) result and its order against INVALID_ARG are not known. sceMoveOpen throws for a user other than the initial user and for a type and index that are already open, whose console results are not known, and accepts any type and index. Closes when: measured on a PS5