79 Commits
Author SHA1 Message Date
boykopovar 2a8c0f82ab fix(pad): define vr controller sample layout 2026-10-21 21:54:00 +03:00
boykopovar fdcf961f5c fix(pad): restore output report argument registers 2026-10-21 21:53:27 +03:00
boykopovar 4a84bfe06b fix(pad): restore profile writes and virtual device parameters 2026-10-21 21:51:38 +03:00
boykopovar 43398d5572 fix(pad): restore internal data and device control signatures 2026-10-21 21:51:37 +03:00
boykopovar 2f8bf3c16e fix(pad): restore profile and device setting signatures 2026-10-21 21:50:48 +03:00
boykopovar 86b8fe3a25 fix(pad): restore report tracker and vr trigger signatures 2026-10-21 21:50:48 +03:00
boykopovar dd2a009f1e fix: restore batch priority and vr trigger query signatures 2026-10-21 21:48:00 +03:00
boykopovar 787318c3d8 fix(pad): recover vr vibration and update query signatures 2026-10-21 21:47:30 +03:00
boykopovar d25257b90b fix(pad): recover capability and tracker color signatures 2026-10-21 21:47:27 +03:00
boykopovar 4e067caa65 fix(pad): recover infrared transfer signatures 2026-10-21 21:47:26 +03:00
boykopovar fa38f4e2af fix(pad): recover profile selection and infrared status signatures 2026-10-21 21:47:25 +03:00
boykopovar 7c741db5ef fix(pad): recover controller update status and data signatures 2026-10-21 21:47:24 +03:00
boykopovar ae33ab4bb1 fix(pad): recover feature report and compatibility signatures 2026-10-21 21:47:23 +03:00
boykopovar b878641d26 fix(pad): recover tracker and connection query signatures 2026-10-21 21:47:23 +03:00
boykopovar 482c0e92d4 fix(pad): recover profile and copilot control signatures 2026-10-21 21:47:21 +03:00
boykopovar 891d790b6a fix(pad): recover idle counters and device query signatures 2026-10-21 21:47:20 +03:00
boykopovar 5f1d9bafa2 fix(pad): recover controller settings signatures 2026-10-21 21:47:18 +03:00
Dean 1bcaa14234 Merge pull request #8307 from hypermoist/fix/libs-console-results-part2
fix(libs): return what the firmware returns from 31 more calls it does not implement
2026-10-21 20:57:00 +13:00
Dean 3e7d1d297c Merge pull request #8138 from bl4nkTHEBUNKER/fix/pad-touchpad-resolution
fix(libScePad): report the DualSense touchpad resolution
2026-10-21 06:25:52 +13:00
Adrià 01e5f8f199 Merge pull request #7552 from voidlakhan/fix/pad-invalid-argument-errors
fix(pad): return invalid argument error on null buffer in scePadRead and scePadReadState
2026-10-20 12:31:46 +02:00
hypermistandClaude Opus 5.5 db25758397 fix(libs): return what the firmware returns from 29 more calls it does not implement
The NetCtl ApRp calls, the SaveData debug calls, HttpDbgEnableProfile,
HttpDbgSetPrintf, PadEnableExtensionPort and VideoRecording Init, Term
and SendCommand return 0; ImeForTestFunction returns 0x80BC00FF; the Hmd
distortion work memory align and size are 0x400 and 0x20000 and
DistortionGetCompoundEyeCorrectionCommand returns 0x81110009;
AjmInstanceCodecType returns the instance id shifted right by 14.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:38:57 +13:00
bl4nkTHEBUNKER f57b79ef51 fix(libScePad): report the DualSense touchpad resolution
The controller information reported 1920 by 943, the DualShock 4 height with
the DualSense pixel density, while the host controller's fingers were scaled to
1920 by 942 and the keyboard touch contacts sat on the 942 centre line. A title
that maps touch coordinates through the reported resolution lost the lower part
of the touchpad. The width and height now live beside the pad state and all
three places use them.
2026-10-20 01:52:50 +02:00
Dean dbac9fa15b Merge pull request #7909 from parl0v/feat/pad-accessibility-controller-state
feat(libScePad): implement scePadGetAccessibilityControllerState (zBsgF0q8DIM)
2026-10-20 05:24:48 +13:00
Josip Parlov acd1e0ef8f feat(libScePad): implement scePadGetAccessibilityControllerState (zBsgF0q8DIM)
The name hashes to zBsgF0q8DIM. Signature and error order follow the
OS 10.01 system module: NOT_INITIALIZED, INVALID_ARG for a NULL output,
INVALID_HANDLE for a bad handle. The emulated pad is not an Access
controller and reports 0.
2026-10-19 15:06:28 +02:00
Josip Parlov d68d797c76 fix(libScePad): return 0 from n3kSX62fgNo after scePadInit, with a pad open or not
The OS 10.01 system module checks only that the library is initialised,
then sends a per-process value to ShellCore over Mbus and returns 0 when
that call succeeds. It does not look at pad handles, so the throw while a
pad is open is gone. 0x809200ff, measured in a process that is not a game,
is the failed Mbus call; a game process is assumed to get 0.
2026-10-19 15:06:08 +02:00
Adrià a67389debc Merge pull request #6600 from ymatrix1/feat/pad-missing-exports
feat(libScePad): export missing firmware pad interfaces
2026-10-19 09:37:43 +02:00
lakhantheboss 23aa711e7f fix(pad): return invalid argument error on null buffer in scePadRead and scePadReadState
scePadRead_nid_postfix and scePadReadState threw APS5_INVALID_ARG_EX (std::invalid_argument) when passed a null output buffer or a non-positive buffer count, terminating the guest process across the PRX ABI boundary.

Both functions now return PAD_ERROR_INVALID_ARG (-2137915391) on invalid arguments, matching the error return contract of all sibling libScePad APIs.
2026-10-18 18:45:15 +05:30
MarcZX100 4ae8caac9a fix(libScePad): refuse unknown NID calls with open controller 2026-10-16 20:40:53 +00:00
MarcZX100 513694a848 docs(libScePad): record unknown NID probe limits 2026-10-16 20:40:45 +00:00
MarcZX100 b85f017e5e fix(libScePad): return measured status for unknown Pad export 2026-10-16 20:40:45 +00:00
Yuri Olive b27e4c9710 feat(libScePad): export missing firmware pad interfaces 2026-10-15 19:24:39 -03:00
milescovielloandClaude Opus 5.5 d47651847d fix(pad): accept vibration mode 5
Crimson Desert (PPSA25286) calls scePadSetVibrationMode(handle, 5)
at start-up, and main rejects any mode above 3 with
SCE_PAD_ERROR_INVALID_ARG (0x80920001). The title then carries on
with the call failed.

The modes are not documented. SharpProspero names 1 (advanced) and 2
(compatible); mode 3 was accepted for PPSA21480. The call now also
accepts 5, which a shipped title passes, and keeps rejecting the values
no title has been seen to use (4, 6 and above). The mode is stored as
before and has no other effect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:05:40 +00:00
Adrià ffbc26c7d0 Merge pull request #5264 from hugodearaujo/fix/pad-vibration-mode-errors
fix(libScePad): check scePadSetVibrationMode's arguments in the console's order
2026-10-14 22:56:29 +02:00
fdfawef324andClaude Opus 5.5 babc68df74 feat(libScePad): declare the unknown import zBsgF0q8DIM
PPSA03671 fails to load because no library exports NID zBsgF0q8DIM from
libScePad. The NID database has no name for it and no candidate pad name
hashes to it, so it is exported under its NID as
scePadUnknown_zBsgF0q8DIM, declared without parameters, and throws when
called. Adds an Unknown function info entry to the libScePad debt file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:40:37 -04:00
hugodearaujoandClaude Opus 5.5 b80fefd467 fix(libScePad): check scePadSetVibrationMode's arguments in the console's order
Measured on a PS5 (firmware 13.60): before scePadInit the call returns
NOT_INITIALIZED (0x80920005); after it, a mode of 0 or below returns
INVALID_ARG before the handle is checked, and a bad handle with a
higher mode returns INVALID_HANDLE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:49:00 -03:00
Adrià 0587a755d6 Merge pull request #4775 from p3n1cillin/claude/pad-angular-velocity-deadband
feat(libScePad): apply the angular velocity deadband
2026-10-13 09:55:21 +02:00
p3nicillinandClaude Opus 5.5 1d115b8962 feat(libScePad): apply the angular velocity deadband
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 22:29:57 +01:00
xXPBSXxandClaude Sonnet 5.5 147c0db150 fix(exports): export the calls PPSA02530 imports
PPSA02530 (PRAGMATA) fails to load without these imports that no library exports. Their signatures are unknown, so they are declared without parameters and throw until they are implemented. Adds a TechnicalDebt entry.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 21:51:36 +02:00
Dean de24bd616d Merge pull request #4044 from xXPBSXx/fix/export-ppsa07411-vr2-imports
fix(exports): export the PS VR2 calls PPSA07411 imports that no library has
2026-10-12 20:01:13 +13:00
Adrià 43bc17f7ed Merge pull request #3727 from mariusyo07/fix/pad-vibration-mode-3
fix(pad): accept vibration mode 3
2026-10-12 00:14:30 +02:00
Adrià 7e4074fcb9 Merge pull request #3838 from gookie-dev/fix/pad-special-port-not-connected
fix(pad): report special ports as not connected in scePadOpen
2026-10-12 00:09:03 +02:00
xXPBSXxandClaude Sonnet 5.5 1b7e842b9c fix(exports): export the PS VR2 calls PPSA07411 imports that no library has
PPSA07411 (Resident Evil 4) fails to load without these imports. Their signatures are unknown, so they are declared without parameters and throw until they are implemented. Adds a TechnicalDebt entry.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 00:01:07 +02:00
gookie 73866db755 fix(pad): report special ports as not connected in scePadOpen
scePadOpen returned the standard pad's handle for a special port
(type 2) as well, and scePadGetHandle found it there. Both ports then
read the one input queue, so a press queued between two frames could be
drained by the special port's read and never reach the standard port.
PPSA16827 (Harmony's Odyssey) opens both ports for the initial user and
reads both every frame, also polling controller information and device
class data for the special one.

Special ports now return DEVICE_NOT_CONNECTED (0x80920007) from
scePadOpen, as scePadOpenExt already does because the host has no
special controller, and scePadGetHandle has no handle for them.
TechnicalDebt's scePadOpenExt entry now covers both calls.

guest_pad opens a special port before and after the standard one and
expects DEVICE_NOT_CONNECTED, and DEVICE_NO_HANDLE from scePadGetHandle
for the special port while the standard handle stays valid. It fails on
main.

PPSA16827 over 130 s of its title screen: 6812 scePadRead, 3408
scePadGetControllerInformation and 3406 scePadDeviceClassParseData calls
before, two reads of the same queue per frame; 2702 reads, one
information call and no parse calls after.
2026-10-11 19:26:30 +02:00
mariusyo07andxXPBSXx 1e3a9345f0 fix(pad): accept vibration mode 3
Broken Sword Reforged (PPSA21480) calls scePadSetVibrationMode(handle, 3) after
scePadOpen and treats a failure as fatal (ps5_controls.cpp:19 "Sony call failed
with code 80920001"). Modes up to 3 are accepted, 4 and above stay invalid.

Co-Authored-By: xXPBSXx <20614131+xXPBSXx@users.noreply.github.com>
2026-10-11 18:02:39 +02:00
hugodearaujoandClaude Opus 5.5 bdf67fcc49 feat(libs): declare the PS VR2 exports PPSA15878 imports
Propagation: Paradise Hotel (PPSA15878) does not load on main: its
executable imports 15 PS VR2 functions that no library exports, the
first reported being sceVrTracker2GetPlayAreaOrientedBoundingBox
(snYs7Nf-RKk). Declare the nine libSceHmd2 reprojection and gaze
exports, three libSceVrTracker2 exports and three scePadVrController
trigger effect exports, without parameters, as throwing stubs. Names
come from the aerolib NID list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 09:51:00 -03:00
xXPBSXxandClaude Sonnet 5.5 c60c123f37 fix(libScePad): export scePadUnknown_n3kSX62fgNo under its NID
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 11:07:03 +02:00
xXPBSXxandClaude Sonnet 5.5 c4d29f6a99 fix(exports): export the calls PPSA01530, PPSA23827 and PPSA13356 import
Forwards _sceUltWaitingQueueResourcePoolCreate and _sceUltSemaphoreCreate to the existing calls, like the other underscore Ult exports. Declares sceNetShowIfconfig, sceNpWebApi2GetMemoryPoolStats, Json::Value::setNullAccessCallBack, kqueue, kevent and one pad call of unknown name without an implementation.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 11:07:03 +02:00
Adrià 7feed2748a Merge pull request #1076 from TideOPL/fix/pad-read-debt-note
fix(libScePad): queue input states for scePadRead
2026-10-11 10:49:44 +02:00
Renan Pires 2d206e31bb feat(libScePad): export scePadVrControllerReadState 2026-10-10 19:21:32 -03:00
virp-mta 95cd0e8faf feat(libScePad): implement scePadSetAngularVelocityBiasCorrectionState 2026-10-10 02:54:42 +04:00