Commit Graph
22 Commits
Author SHA1 Message Date
Nithishvelan M 0b3b2d846c feat(libSceVrTracker2): identify sceVrTracker2GetRawCameraMeshSize export 2026-10-27 03:09:39 +05:30
hypermistandClaude Opus 5.5 8883a34320 Merge remote-tracking branch 'upstream/main' into feat/vrtracker2-initialize
Resolved Export.cpp and GuestVrTracker2.cpp keeping main's header layout; the new sceHmd2Internal exports are declared in the libSceHmd2 header and the test uses the library headers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 13:29:54 +13:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
hypermistandClaude Opus 5.5 439b426c4b feat(libSceVrTracker2): validate initialization and pass through the Hmd2 tracking result
sceVrTracker2Initialize follows the order read from firmware 13.60
libSceVrTracker2.sprx (disassembly, not measured on a console). It
rejects with 0x8A740006, in order: a null record or a size other than
72; a mode other than 0, 1000 or 1001; a null work memory; a size below
the mode's 32 MiB, 7 MiB or 3 MiB; an alignment below 0x10000; a
non-zero reserved byte at 0x3a..0x47; a thread priority outside
256..767; an affinity mask outside bits 0..12 in mode 0 or outside
0xEA00 in modes 1000 and 1001. It then moves the module state from 0 to
1 and returns 0x8A740002 if it was not 0.

From there every failure undoes what the call opened and resets the
state to 0. Mode 0 clears the first 32 MiB of work memory first. The
application attribute checks on the sceKernelGetAppInfo2 record
(0x8A74001E, 0x8A740020) are skipped: the host has none, and a zeroed
record passes them. The signed option at 0x39 accepts -1 and 0,
and 1 only for titles compiled with SDK 7.00 or later. Modes 0 and 1000
then call libSceHmd2 TrackingOpen, TrackingStart, LedDetectorOpen and
LedDetectorStart and return the first non-zero result unchanged.
Without a headset main's libSceHmd2 answers 0 and -1 (its measured
pre-initialization answers), so Initialize returns -1 and every other
export keeps answering 0x8A740001.

Modes 1000 and 1001 need the application category, which the host does
not have, and a fully successful Hmd2 sequence would need the tracker
runtime; both throw. The eight tracking and LED-detector exports become
named functions in libSceHmd2 so that libSceVrTracker2 can import them
by name; their answers are unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:18:29 +13:00
boykopovar 808e9d9da2 fix(vrtracker2): restore legacy input pointer contracts 2026-10-21 21:52:56 +03:00
boykopovar 6efa62b7fa fix(vrtracker2): restore mesh and image pose signatures 2026-10-21 21:52:21 +03:00
boykopovar e1cfd8adfb fix(vrtracker2): restore coordinate and boundary fitting contracts 2026-10-21 21:52:20 +03:00
boykopovar eab1127190 fix(vrtracker2): separate diagnostic record pointer contracts 2026-10-21 21:52:17 +03:00
boykopovar ea06e78756 fix(vrtracker2): restore map and tracking flag arguments 2026-10-21 21:52:17 +03:00
boykopovar dab4662036 fix(vrtracker2): restore device and spatial query signatures 2026-10-21 21:52:16 +03:00
boykopovar a180963101 fix(vrtracker2): define camera frame and scalar option contracts 2026-10-21 21:52:15 +03:00
boykopovar 12215c498d fix(vrtracker2): restore diagnostic and configuration arguments 2026-10-21 21:52:14 +03:00
boykopovar fc89706261 fix(vrtracker2): split anonymous tracking query signatures 2026-10-21 21:52:13 +03:00
boykopovar e1d99c4631 fix(vrtracker2): define versioned tracking query parameters 2026-10-21 21:51:47 +03:00
boykopovar 6aae4e187f fix(vrtracker2): restore anonymous utility export signatures 2026-10-21 21:51:47 +03:00
boykopovar 3fff17d08e fix(vrtracker2): restore memory modes and initialization layout 2026-10-21 21:51:44 +03:00
boykopovar 4c43601278 fix(vrtracker2): restore named export signatures and play area layouts 2026-10-21 21:50:38 +03:00
T3cm0andClaude Opus 5.5 151f116550 feat(libSceVrTracker2): answer as the console's module before initialization
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:28:03 +02:00
KernelPanicNTandClaude Opus 5.5 9a0aa5f6a7 fix(exports): export the PS VR2 calls Phasmophobia's psvr2.prx imports
PPSA09030's Media/Plugins/psvr2.prx imports sceHmd2ReprojectionGetStatus
from libSceHmd2 and sceVrTracker2GetCoordinateSystem and
sceVrTracker2GetPlayAreaBoundaryGeometry from libSceVrTracker2, so the
title does not start with the plugin loaded (discussion #4680). Declare
the three as throwing exports, like the earlier PS VR2 imports of
PPSA29866. The names resolve from the NIDs 8GkaY2B7opM, Y-3JCiU9bbU
and SCph4ZbkqzU with tools/nid_names.py; no reference gives their
signatures.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 15:57:41 +00: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 <[email protected]>
2026-10-12 00:01:07 +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 <[email protected]>
2026-10-11 09:51:00 -03:00
Gjon Gojcevic a988b8b1d0 feat(libSceHmd2): add PS VR2 modules that report the runtime as unavailable
sceHmd2Initialize fails, so titles skip their VR set-up; the other libSceHmd2 and libSceVrTracker2 exports throw.
2026-10-07 19:58:01 -04:00