Skip to content

fix(exports): export the PS VR2 calls Phasmophobia's psvr2.prx imports - #16

Closed
KernelPanicNT wants to merge 1 commit into
mainfrom
fix/export-phasmophobia-psvr2-imports
Closed

KernelPanicNT wants to merge 1 commit into
mainfrom
fix/export-phasmophobia-psvr2-imports

Conversation

@KernelPanicNT

Copy link
Copy Markdown
Owner

What

Phasmophobia (PPSA09030) ships a PS VR2 plugin, Media/Plugins/psvr2.prx, that imports three calls no library exports, so with --module-dir Media/Plugins the executable does not start (current-main status in the Game bring-up thread, 14 October; the workaround there is --exclude-sce-module psvr2.prx). This PR declares them without parameters as throwing stubs (signatures unknown), as boykopovar#4044 did for PPSA07411 and boykopovar#3819 for PPSA29866:

Library NID Export
libSceHmd2 8GkaY2B7opM sceHmd2ReprojectionGetStatus
libSceVrTracker2 Y-3JCiU9bbU sceVrTracker2GetCoordinateSystem
libSceVrTracker2 SCph4ZbkqzU sceVrTracker2GetPlayAreaBoundaryGeometry

The library of each NID comes from the title's load error; the names come from the aerolib NID list (tools/nid_names.py --nid resolves each NID to these names, and --name computes the same NIDs back). No public reference gives their signatures, so nothing beyond the declarations is implemented. A docs/dev/debt/libSceHmd2.md entry under Unknown function info lists the three, next to the PPSA29866 one. No test is added, since CONTRIBUTING says not to test that a symbol is exported.

If the plugin calls one of these during start-up, the title will now stop on a named not implemented throw instead of failing to load the plugin.

Tested

Pending: build and NID-patch check of the two libraries and the Windows fork Build workflow; results added here when they finish.

Duplicate and overlap check

Searched open, merged and closed PRs for the three names, their NIDs, PPSA09030 and psvr2.prx: none declares them. boykopovar#5118 (closed) declared 20 other PS VR2 names, none of these three; boykopovar#4682 and boykopovar#5094 (merged) are the other PPSA09030 changes. No open PR touches libSceHmd2/Export.cpp, libSceVrTracker2/Export.cpp or docs/dev/debt/libSceHmd2.md.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: PPSA09030 PPSA09030 Phasmophobia boykopovar/AnyPS5#4680 (load of psvr2.prx)
  • GPUs tested: n/a
  • AI-assisted: yes (Claude)

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 boykopovar#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 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Progress report (e34c479 → 9a0aa5f)

📉 System libraries: 88.63% (-0.08%, +3 declared functions)

🆕 3 declared as stubs
Library Name
libSceHmd2 sceHmd2ReprojectionGetStatus
libSceVrTracker2 sceVrTracker2GetCoordinateSystem
libSceVrTracker2 sceVrTracker2GetPlayAreaBoundaryGeometry

@KernelPanicNT

Copy link
Copy Markdown
Owner Author

Opened upstream as boykopovar#5960.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant