Skip to content

feat(libSceNpManager): answer sceNpCheckNpAvailability with no user signed in - #1543

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
arvindfroi:feat/np-manager-offline-lookups
Oct 9, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
arvindfroi:feat/np-manager-offline-lookups

Conversation

@arvindfroi

Copy link
Copy Markdown
Contributor

What

sceNpCheckNpAvailability threw. It now follows shadPS4 for a console with no user signed in to PSN:

  • The signature is shadPS4's (req_id, online_id); the declared third parameter is dropped.
  • A null online id returns SCE_NP_ERROR_INVALID_ARGUMENT (0x80550003).
  • Any other online id returns SCE_NP_ERROR_USER_NOT_FOUND (0x80550007): no local user has an online id here, as sceNpGetOnlineId already reports the user as signed out, and that is what shadPS4 returns when its online-id lookup finds no user.
  • The request id is not checked, as in the other NpManager requests here.

The checks are in GuestNpReachability rather than GuestNpManager, which #1536 and #926 both extend. sceNpGetUserIdByAccountId is left to #1536.

Tested

tools/check_conventions.py --base origin/main passes. Export.cpp and GuestNpReachability.cpp built natively on macOS (Apple clang, arm64, NotImplemented_nid_no_patch stubbed) and the test passes. No x86-64 toolchain on this machine, so the Linux and Windows builds and ctest are left to CI. No title tested.

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 in TechnicalDebt
  • 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
  • AI-assisted: yes (Claude Code, Claude Opus 5.5)

🤖 Generated with Claude Code

@github-actions github-actions Bot added docs prx needs rebase Conflicts with main, rebase needed labels Oct 8, 2026
…igned in

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@arvindfroi
arvindfroi force-pushed the feat/np-manager-offline-lookups branch from 2176af5 to f4084d5 Compare October 9, 2026 12:40
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

Progress report (d70b899 → f4084d5)

📈 System libraries: 84.72% (+0.03%, +1 implemented functions)

✅ 1 implemented
Library Name
libSceNpManager sceNpCheckNpAvailability

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 9, 2026
@popcoder565

Copy link
Copy Markdown
Contributor

Native Windows run, since no Windows results were posted. Setup: Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release. Head f4084d56, merged onto main d70b899 in one build with 38 other PRs that had no Windows run.

No title was run.

🤖 Addressed by Claude Code

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked against shadPS4's pinned sceNpCheckNpAvailability (null → INVALID_ARGUMENT, no matching user → USER_NOT_FOUND); the test passes and fails without the change. Linux build + ctest on main merged: guest_np_reachability passes; popcoder565's native Windows run also passes it. Merging.

@adriadam10
adriadam10 merged commit 54f28f2 into boykopovar:main Oct 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants