Skip to content

feat(libs): restore libSceNpCppWebApi for dumps that ship no copy - #6901

Merged
adriadam10 merged 2 commits into
boykopovar:mainfrom
akkadbakkad89:feat/np-cpp-web-api
Oct 19, 2026
Merged

adriadam10 merged 2 commits into
boykopovar:mainfrom
akkadbakkad89:feat/np-cpp-web-api

Conversation

@akkadbakkad89

@akkadbakkad89 akkadbakkad89 commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

What

Restores libSceNpCppWebApi (removed in 79057e9) for dumps that ship no copy of the module, extended to the full 147-import surface audited in #1033. All exports resolve by exact symbol name through the NID patcher; the patched .prx was verified to export all 147 NIDs.

Behaviour, matching the offline-console model of the original module:

  • Common::initialize / terminate, InitParams, LibContext, parameter ctors/dtors and setters: succeed (bookkeeping only).
  • Common::String::append: allocates/grows the host buffer, copies existing and appended text, NUL-terminates and updates bufferSize (capacity at 0x10). ~String frees the buffer instead of throwing.
  • Vector<String> / Vector<IntrusivePtr<T>>: lazy shared backing body with refcount at 0x30 (same convention as the adopted-body ctor). pushBack deep-copies String contents and bumps IntrusivePtr element refcounts; ~Vector releases every reference it holds.
  • IntrusivePtr<Vector<...>> adopt-ctor stores the caller's body + deleter and releases through the 0x30 refcount, so title-owned vectors round-trip correctly.
  • All request factories, PlayerSessionsApi calls and transaction start / getResponse: return SCE_NP_WEBAPI_ERROR_UNAVAILABLE (0x80552901).
  • Response accessors, iterators, begin/end/[]: NotImplemented_nid_no_patch — unreachable once every request fails.
  • Buffer layout and allocator assumptions are documented in docs/dev/debt/libSceNpCppWebApi.md (measured against the removed module's PPSA21564-era layouts).

Layout evidence (PPSA21564 bundled module)

The three layouts the code depends on were read out of the libSceNpCppWebApi.prx shipped inside that title (unwrapped with tools/unwrap_self.py, inspected in objdump/Ghidra):

  • IntrusivePtr = 0x18 bytes: its copy-ctor/dtor entry points move three qwords (object, deleter, LibContext*) and bump/release a dword at object+0x00 - the reference count sits at the pointee base.
  • String = 0x20 bytes: ctor/dtor touch refcount dword @0x00, buffer ptr @0x08, bufferSize @0x10, LibContext* @0x18.
  • Vector shared body: refcount at +0x30 - the same offset the adopted-body path uses (0x28 reserved/magic header, then refcount @0x30, element kind, elements, size, capacity filling to 0x50).
  • pushBack<Vector<String>> allocates a fresh buffer per element and copies contents rather than bumping the source refcount - observed in the push path that distinguishes String elements from IntrusivePtr elements (elementKind).

Tested

  • Ubuntu/WSL, i7-10700, lavapipe: full build; ctest suite passes except 6 guest filesystem tests (kernel_sys, access, path_case, utime, file_timestamps, filesystem) that only fail under the DrvFs /mnt/d mount and pass when run from /tmp — environment artifacts, unrelated to this change.
  • Windows 11, RTX 3070, driver 617.42, WinLibs GCC 15.2: full build; 1300-test suite — the only hard failure is the known agc tests: GpuIndirectArgumentsMisalignedWriterAhead.cpp does not compile with MinGW GCC (alignas(65536)) #6716 alignas(65536) MinGW object-file limit. guest_needed_modules is intermittently blocked by Windows Defender on its synthetic test executables (passed on earlier runs; environmental).
  • guest_np_cpp_web_api_string and guest_np_cpp_web_api_intrusive_ptr pass on both toolchains. New coverage: append + pushBack + temp-string destruction (deep copy survives), IntrusivePtr element refcount release, adopted-vector-body destruction, vector body refcount at 0x30.
  • Patched libSceNpCppWebApi.prx exports all 147 required NIDs (checked with compute_nid).
  • check_conventions and check_test_registration: clean.
  • Title runtime: not tested locally (no dump). @j2m304 offered Windows 11 + RTX 4080 SUPER testing in Marvels Wolverine PPSA03671 Relies on consoles .prxs #1033.

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 docs/dev/debt/libSceNpCppWebApi.md
  • No notes, investigation .md files or images added to the repository
  • New third-party code is a submodule built from source (n/a — no new third-party code)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: PPSA03671 Marvels Wolverine PPSA03671 Relies on consoles .prxs #1033
  • GPUs tested: n/a (no AGC/shader/VideoOut change; suites run on RTX 3070 and lavapipe as listed above)
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Progress report (12e42b2 → 8f3849e)

📉 System libraries: 80.52% (-1.99%, +196 implemented, +164 declared functions)

✅ 196 implemented
Library Name
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V111UserFactory6createEPNS1_6Common10LibContextEPNS5_12IntrusivePtrINS3_4UserEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody18setStartSerialRankERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody8setGroupERKNS3_5GroupE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody8setLimitERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody8setUsersERKNS1_6Common6VectorINS5_12IntrusivePtrINS3_4UserEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody9setOffsetERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody10setCommentEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody12setSmallDataEPKvm
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody15setNeedsTmpRankERKb
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody19setComparedDateTimeERK10SceRtcTick
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody7setPcIdERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V128GetRankingRequestBodyFactory6createEPNS1_6Common10LibContextEPNS5_12IntrusivePtrINS3_21GetRankingRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V129RecordScoreRequestBodyFactory6createEPNS1_6Common10LibContextElPNS5_12IntrusivePtrINS3_22RecordScoreRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V14User12setAccountIdERKm
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V14User7setPcIdERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi10getRankingEiRKNS4_21ParameterToGetRankingERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_22GetRankingResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRanking10initializeEPNS1_6Common10LibContextEi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRanking24setgetRankingRequestBodyENS1_6Common12IntrusivePtrINS3_21GetRankingRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRanking9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRankingC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRankingD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi22getLargeDataByObjectIdEiRKNS4_33ParameterToGetLargeDataByObjectIdERNS1_6Common21DownStreamTransactionINS8_12IntrusivePtrINS4_37GetLargeDataByObjectIdResponseHeadersEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectId10initializeEPNS1_6Common10LibContextEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectId9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectIdC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectIdD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi18getBoardDefinitionEiRKNS4_29ParameterToGetBoardDefinitionERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_30GetBoardDefinitionResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinition10initializeEPNS1_6Common10LibContextEi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinition9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinitionC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinitionD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi11recordScoreEiRKNS4_22ParameterToRecordScoreERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_23RecordScoreResponseBodyEEENSA_INS4_26RecordScoreResponseHeadersEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi15recordLargeDataEiRKNS4_26ParameterToRecordLargeDataERNS1_6Common19UpStreamTransactionINS8_12IntrusivePtrINS3_27RecordLargeDataResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScore10initializeEPNS1_6Common10LibContextEiNS6_12IntrusivePtrINS3_22RecordScoreRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScore22setxPsnAtomicOperationENS5_19XPsnAtomicOperationE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScore9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScoreC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScoreD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeData10initializeEPNS1_6Common10LibContextEiNS5_19XPsnAtomicOperationEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeData9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeDataC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeDataD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi18leavePlayerSessionEiRKNS4_29ParameterToLeavePlayerSessionERNS1_6Common11TransactionINS8_15DefaultResponseENS8_12IntrusivePtrINS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi20createPlayerSessionsEiRKNS4_31ParameterToCreatePlayerSessionsERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_30PostPlayerSessionsResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi25joinPlayerSessionAsPlayerEiRKNS4_36ParameterToJoinPlayerSessionAsPlayerERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_52PostPlayerSessionsSessionIdMemberPlayersResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi27getPlayerSessionInvitationsEiRKNS4_38ParameterToGetPlayerSessionInvitationsERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_54GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi29ParameterToLeavePlayerSession10initializeEPNS1_6Common10LibContextEPKcSA_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi29ParameterToLeavePlayerSessionC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi29ParameterToLeavePlayerSessionD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi31ParameterToCreatePlayerSessions10initializeEPNS1_6Common10LibContextENS6_12IntrusivePtrINS3_29PostPlayerSessionsRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi31ParameterToCreatePlayerSessionsC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi31ParameterToCreatePlayerSessionsD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayer10initializeEPNS1_6Common10LibContextEPKcNS6_12IntrusivePtrINS3_51PostPlayerSessionsSessionIdMemberPlayersRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayer9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayerC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayerD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitations10initializeEPNS1_6Common10LibContextEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitations26setinvitationInvalidFilterEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitations9setfieldsENS1_6Common12IntrusivePtrINS6_6VectorINS6_6StringEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitationsC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitationsD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession16setMaxSpectatorsERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession19setJoinableUserTypeERKNS3_16JoinableUserTypeE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession20setInvitableUserTypeERKNS3_17InvitableUserTypeE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession28setExclusiveLeaderPrivilegesERKNS1_6Common6VectorINS5_6StringEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V122LocalizedStringFactory6createEPNS1_6Common10LibContextEPKcNS_4Json6ObjectEPNS5_12IntrusivePtrINS3_15LocalizedStringEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V126RequestPlayerSessionPlayer15setPushContextsERKNS1_6Common6VectorINS5_12IntrusivePtrINS3_24PlayerSessionPushContextEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V127RequestPlayerSessionFactory6createEPNS1_6Common10LibContextEiNS5_12IntrusivePtrINS3_32RequestPlayerSessionMemberPlayerEEERKNS5_6VectorINS5_6StringEEENS8_INS3_15LocalizedStringEEEPNS8_INS3_20RequestPlayerSessionEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V131PlayerSessionPushContextFactory6createEPNS1_6Common10LibContextEPKcPNS5_12IntrusivePtrINS3_24PlayerSessionPushContextEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V133RequestPlayerSessionPlayerFactory6createEPNS1_6Common10LibContextEPKcS9_PNS5_12IntrusivePtrINS3_26RequestPlayerSessionPlayerEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V136PostPlayerSessionsRequestBodyFactory6createEPNS1_6Common10LibContextERKNS5_6VectorINS5_12IntrusivePtrINS3_20RequestPlayerSessionEEEEEPNS9_INS3_29PostPlayerSessionsRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V139RequestCreatePlayerSessionPlayerFactory6createEPNS1_6Common10LibContextEPKcS9_RKNS5_6VectorINS5_12IntrusivePtrINS3_24PlayerSessionPushContextEEEEEPNSB_INS3_32RequestCreatePlayerSessionPlayerEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V139RequestPlayerSessionMemberPlayerFactory6createEPNS1_6Common10LibContextERKNS5_6VectorINS5_12IntrusivePtrINS3_32RequestCreatePlayerSessionPlayerEEEEEPNS9_INS3_32RequestPlayerSessionMemberPlayerEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V158PostPlayerSessionsSessionIdMemberPlayersRequestBodyFactory6createEPNS1_6Common10LibContextERKNS5_6VectorINS5_12IntrusivePtrINS3_26RequestPlayerSessionPlayerEEEEEPNS9_INS3_51PostPlayerSessionsSessionIdMemberPlayersRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi12downloadDataEiRKNS4_23ParameterToDownloadDataERNS1_6Common21DownStreamTransactionINS8_12IntrusivePtrINS4_27DownloadDataResponseHeadersEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadData10initializeEPNS1_6Common10LibContextEPKci
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadData9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadDataC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadDataD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common10InitParamsC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common10InitParamsD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common10LibContextC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common10initializeERKNS2_10InitParamsERNS2_10LibContextE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V123RecordScoreResponseBodyEEENS4_INS6_9RecordApi26RecordScoreResponseHeadersEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V123RecordScoreResponseBodyEEENS4_INS6_9RecordApi26RecordScoreResponseHeadersEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V130GetBoardDefinitionResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V130GetBoardDefinitionResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V130PostPlayerSessionsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V130PostPlayerSessionsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V152PostPlayerSessionsSessionIdMemberPlayersResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V152PostPlayerSessionsSessionIdMemberPlayersResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_15DefaultResponseENS2_12IntrusivePtrINS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_15DefaultResponseENS2_12IntrusivePtrINS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V121GetRankingRequestBodyEEC1ERS7_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V121GetRankingRequestBodyEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEEC1Ev
... 96 more
⚪ 139 behaviourally empty (constant return or throw)
Library Name
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V111UserFactory6createEPNS1_6Common10LibContextEPNS5_12IntrusivePtrINS3_4UserEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody18setStartSerialRankERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody8setGroupERKNS3_5GroupE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody8setLimitERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody8setUsersERKNS1_6Common6VectorINS5_12IntrusivePtrINS3_4UserEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V121GetRankingRequestBody9setOffsetERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody10setCommentEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody12setSmallDataEPKvm
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody15setNeedsTmpRankERKb
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody19setComparedDateTimeERK10SceRtcTick
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122RecordScoreRequestBody7setPcIdERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V128GetRankingRequestBodyFactory6createEPNS1_6Common10LibContextEPNS5_12IntrusivePtrINS3_21GetRankingRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V129RecordScoreRequestBodyFactory6createEPNS1_6Common10LibContextElPNS5_12IntrusivePtrINS3_22RecordScoreRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V14User12setAccountIdERKm
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V14User7setPcIdERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi10getRankingEiRKNS4_21ParameterToGetRankingERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_22GetRankingResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRanking10initializeEPNS1_6Common10LibContextEi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRanking24setgetRankingRequestBodyENS1_6Common12IntrusivePtrINS3_21GetRankingRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRanking9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRankingC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi21ParameterToGetRankingD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi22getLargeDataByObjectIdEiRKNS4_33ParameterToGetLargeDataByObjectIdERNS1_6Common21DownStreamTransactionINS8_12IntrusivePtrINS4_37GetLargeDataByObjectIdResponseHeadersEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectId10initializeEPNS1_6Common10LibContextEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectId9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectIdC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V17ViewApi33ParameterToGetLargeDataByObjectIdD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi18getBoardDefinitionEiRKNS4_29ParameterToGetBoardDefinitionERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_30GetBoardDefinitionResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinition10initializeEPNS1_6Common10LibContextEi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinition9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinitionC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19BoardsApi29ParameterToGetBoardDefinitionD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi11recordScoreEiRKNS4_22ParameterToRecordScoreERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_23RecordScoreResponseBodyEEENSA_INS4_26RecordScoreResponseHeadersEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi15recordLargeDataEiRKNS4_26ParameterToRecordLargeDataERNS1_6Common19UpStreamTransactionINS8_12IntrusivePtrINS3_27RecordLargeDataResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScore10initializeEPNS1_6Common10LibContextEiNS6_12IntrusivePtrINS3_22RecordScoreRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScore22setxPsnAtomicOperationENS5_19XPsnAtomicOperationE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScore9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScoreC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi22ParameterToRecordScoreD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeData10initializeEPNS1_6Common10LibContextEiNS5_19XPsnAtomicOperationEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeData9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeDataC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V19RecordApi26ParameterToRecordLargeDataD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi18leavePlayerSessionEiRKNS4_29ParameterToLeavePlayerSessionERNS1_6Common11TransactionINS8_15DefaultResponseENS8_12IntrusivePtrINS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi20createPlayerSessionsEiRKNS4_31ParameterToCreatePlayerSessionsERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_30PostPlayerSessionsResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi25joinPlayerSessionAsPlayerEiRKNS4_36ParameterToJoinPlayerSessionAsPlayerERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_52PostPlayerSessionsSessionIdMemberPlayersResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi27getPlayerSessionInvitationsEiRKNS4_38ParameterToGetPlayerSessionInvitationsERNS1_6Common11TransactionINS8_12IntrusivePtrINS3_54GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEEENSA_INS8_18ResponseHeaderBaseEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi29ParameterToLeavePlayerSession10initializeEPNS1_6Common10LibContextEPKcSA_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi29ParameterToLeavePlayerSessionC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi29ParameterToLeavePlayerSessionD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi31ParameterToCreatePlayerSessions10initializeEPNS1_6Common10LibContextENS6_12IntrusivePtrINS3_29PostPlayerSessionsRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi31ParameterToCreatePlayerSessionsC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi31ParameterToCreatePlayerSessionsD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayer10initializeEPNS1_6Common10LibContextEPKcNS6_12IntrusivePtrINS3_51PostPlayerSessionsSessionIdMemberPlayersRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayer9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayerC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi36ParameterToJoinPlayerSessionAsPlayerD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitations10initializeEPNS1_6Common10LibContextEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitations26setinvitationInvalidFilterEPKc
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitations9setfieldsENS1_6Common12IntrusivePtrINS6_6VectorINS6_6StringEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitationsC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V117PlayerSessionsApi38ParameterToGetPlayerSessionInvitationsD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession16setMaxSpectatorsERKi
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession19setJoinableUserTypeERKNS3_16JoinableUserTypeE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession20setInvitableUserTypeERKNS3_17InvitableUserTypeE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V120RequestPlayerSession28setExclusiveLeaderPrivilegesERKNS1_6Common6VectorINS5_6StringEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V122LocalizedStringFactory6createEPNS1_6Common10LibContextEPKcNS_4Json6ObjectEPNS5_12IntrusivePtrINS3_15LocalizedStringEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V126RequestPlayerSessionPlayer15setPushContextsERKNS1_6Common6VectorINS5_12IntrusivePtrINS3_24PlayerSessionPushContextEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V127RequestPlayerSessionFactory6createEPNS1_6Common10LibContextEiNS5_12IntrusivePtrINS3_32RequestPlayerSessionMemberPlayerEEERKNS5_6VectorINS5_6StringEEENS8_INS3_15LocalizedStringEEEPNS8_INS3_20RequestPlayerSessionEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V131PlayerSessionPushContextFactory6createEPNS1_6Common10LibContextEPKcPNS5_12IntrusivePtrINS3_24PlayerSessionPushContextEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V133RequestPlayerSessionPlayerFactory6createEPNS1_6Common10LibContextEPKcS9_PNS5_12IntrusivePtrINS3_26RequestPlayerSessionPlayerEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V136PostPlayerSessionsRequestBodyFactory6createEPNS1_6Common10LibContextERKNS5_6VectorINS5_12IntrusivePtrINS3_20RequestPlayerSessionEEEEEPNS9_INS3_29PostPlayerSessionsRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V139RequestCreatePlayerSessionPlayerFactory6createEPNS1_6Common10LibContextEPKcS9_RKNS5_6VectorINS5_12IntrusivePtrINS3_24PlayerSessionPushContextEEEEEPNSB_INS3_32RequestCreatePlayerSessionPlayerEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V139RequestPlayerSessionMemberPlayerFactory6createEPNS1_6Common10LibContextERKNS5_6VectorINS5_12IntrusivePtrINS3_32RequestCreatePlayerSessionPlayerEEEEEPNS9_INS3_32RequestPlayerSessionMemberPlayerEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V158PostPlayerSessionsSessionIdMemberPlayersRequestBodyFactory6createEPNS1_6Common10LibContextERKNS5_6VectorINS5_12IntrusivePtrINS3_26RequestPlayerSessionPlayerEEEEEPNS9_INS3_51PostPlayerSessionsSessionIdMemberPlayersRequestBodyEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi12downloadDataEiRKNS4_23ParameterToDownloadDataERNS1_6Common21DownStreamTransactionINS8_12IntrusivePtrINS4_27DownloadDataResponseHeadersEEEEE
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadData10initializeEPNS1_6Common10LibContextEPKci
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadData9terminateEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadDataC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi17TitleCloudStorage2V17DataApi23ParameterToDownloadDataD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common10InitParamsC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common10InitParamsD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V123RecordScoreResponseBodyEEENS4_INS6_9RecordApi26RecordScoreResponseHeadersEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V123RecordScoreResponseBodyEEENS4_INS6_9RecordApi26RecordScoreResponseHeadersEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V130GetBoardDefinitionResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_12Leaderboards2V130GetBoardDefinitionResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V130PostPlayerSessionsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V130PostPlayerSessionsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V152PostPlayerSessionsSessionIdMemberPlayersResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V152PostPlayerSessionsSessionIdMemberPlayersResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_12IntrusivePtrINS1_14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_15DefaultResponseENS2_12IntrusivePtrINS2_18ResponseHeaderBaseEEEEC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common11TransactionINS2_15DefaultResponseENS2_12IntrusivePtrINS2_18ResponseHeaderBaseEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common13ConstIteratorINS2_12IntrusivePtrINS1_12Leaderboards2V15EntryEEEED2Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common13ConstIteratorINS2_12IntrusivePtrINS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEED2Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common15DefaultResponseC1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common15DefaultResponseD1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common15TransactionBaseINS2_12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEEENS4_INS2_18ResponseHeaderBaseEEEE5startEPNS2_10LibContextE
... 39 more
🆕 164 declared as stubs
Library Name
libSceNpCppWebApi DestroyVectorBody
libSceNpCppWebApi _ZN3sce2Np9CppWebApi12Leaderboards2V122GetRankingResponseBody10getEntriesEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V130PostPlayerSessionsResponseBody17getPlayerSessionsEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBody14getInvitationsEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V121GetRankingRequestBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V122GetRankingResponseBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V122RecordScoreRequestBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V123RecordScoreResponseBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V130GetBoardDefinitionResponseBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V14UserEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_12Leaderboards2V19RecordApi26RecordScoreResponseHeadersEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V110FromMemberEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V115LocalizedStringEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V120RequestPlayerSessionEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V124PlayerSessionPushContextEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V126RequestPlayerSessionPlayerEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V129PostPlayerSessionsRequestBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V130PostPlayerSessionsResponseBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V132RequestCreatePlayerSessionPlayerEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V132RequestPlayerSessionMemberPlayerEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V151PostPlayerSessionsSessionIdMemberPlayersRequestBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V152PostPlayerSessionsSessionIdMemberPlayersResponseBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS1_14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBodyEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS2_6VectorINS2_6StringEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS2_6VectorINS3_INS1_12Leaderboards2V15EntryEEEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS2_6VectorINS3_INS1_14SessionManager2V113PlayerSessionEEEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common12IntrusivePtrINS2_6VectorINS3_INS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_12Leaderboards2V15EntryEEEE3endEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_12Leaderboards2V15EntryEEEE5beginEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V113PlayerSessionEEEEixEm
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V120RequestPlayerSessionEEEE8pushBackERKS8_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V120RequestPlayerSessionEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V124PlayerSessionPushContextEEEE8pushBackERKS8_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V124PlayerSessionPushContextEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V126RequestPlayerSessionPlayerEEEE8pushBackERKS8_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V126RequestPlayerSessionPlayerEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V132RequestCreatePlayerSessionPlayerEEEE8pushBackERKS8_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V132RequestCreatePlayerSessionPlayerEEEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEE3endEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_12IntrusivePtrINS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEE5beginEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_6StringEE8pushBackERKS4_
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common6VectorINS2_6StringEED1Ev
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common8IteratorINS2_12IntrusivePtrINS1_12Leaderboards2V15EntryEEEEppEv
libSceNpCppWebApi _ZN3sce2Np9CppWebApi6Common8IteratorINS2_12IntrusivePtrINS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEEppEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V122GetRankingResponseBody22getLastUpdatedDateTimeEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V123RecordScoreResponseBody10getTmpRankEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V123RecordScoreResponseBody16getTmpSerialRankEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody11getSortModeEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody13getEntryLimitEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody13getUpdateModeEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody13sortModeIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody15entryLimitIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody15updateModeIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody16getMaxScoreLimitEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody16getMinScoreLimitEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody18maxScoreLimitIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody18minScoreLimitIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody20getLargeDataNumLimitEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody21getLargeDataSizeLimitEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody22largeDataNumLimitIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V130GetBoardDefinitionResponseBody23largeDataSizeLimitIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry10getCommentEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry11getObjectIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry11getOnlineIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry12commentIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry12getAccountIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry12getSmallDataEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry13getSerialRankEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry13objectIdIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry14getHighestRankEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry14smallDataIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry20getHighestSerialRankEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry7getPcIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry7getRankEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V15Entry8getScoreEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi12Leaderboards2V19RecordApi26RecordScoreResponseHeaders24getXPsnAtomicOperationIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V110FromMember11getOnlineIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V113PlayerSession12getSessionIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V136UsersPlayerSessionsInvitationForRead12getSessionIdEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V136UsersPlayerSessionsInvitationForRead14sessionIdIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V136UsersPlayerSessionsInvitationForRead17invitationIdIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V136UsersPlayerSessionsInvitationForRead22receivedTimestampIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V136UsersPlayerSessionsInvitationForRead7getFromEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V136UsersPlayerSessionsInvitationForRead9fromIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi14SessionManager2V154GetUsersAccountIdPlayerSessionsInvitationsResponseBody16invitationsIsSetEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi6Common6Binary4sizeEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi6Common6Binary9getBinaryEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi6Common8IteratorINS2_12IntrusivePtrINS1_12Leaderboards2V15EntryEEEEdeEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi6Common8IteratorINS2_12IntrusivePtrINS1_12Leaderboards2V15EntryEEEEneERKS9_
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi6Common8IteratorINS2_12IntrusivePtrINS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEEdeEv
libSceNpCppWebApi _ZNK3sce2Np9CppWebApi6Common8IteratorINS2_12IntrusivePtrINS1_14SessionManager2V136UsersPlayerSessionsInvitationForReadEEEEneERKS9_
libSceNpCppWebApi sceNpCppWebApiUnknown00
libSceNpCppWebApi sceNpCppWebApiUnknown01
libSceNpCppWebApi sceNpCppWebApiUnknown02
libSceNpCppWebApi sceNpCppWebApiUnknown03
libSceNpCppWebApi sceNpCppWebApiUnknown04
libSceNpCppWebApi sceNpCppWebApiUnknown05
libSceNpCppWebApi sceNpCppWebApiUnknown06
libSceNpCppWebApi sceNpCppWebApiUnknown07
libSceNpCppWebApi sceNpCppWebApiUnknown08
... 64 more

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

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
PR 7780 core/libs/CMakeLists.txt L539-545

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 5021 core/libs/CMakeLists.txt
PR 6044 CONTRIBUTING.md
core/libs/CMakeLists.txt
PR 7201 core/libs/CMakeLists.txt
PR 7332 core/libs/CMakeLists.txt
PR 7622 core/libs/CMakeLists.txt

@akkadbakkad89

Copy link
Copy Markdown
Contributor Author

Overlap check against open PRs (the three that conflict with base could not be auto-compared, so I checked their hunks by hand): CONTRIBUTING.md is clean — #6044 edits the test-docs block near the top, this PR only amends the module-replacement bullet and drops one checklist line. The one real interaction is in core/libs/CMakeLists.txt: #6044 replaces library test registrations with add_library_test(...); if it lands first, the two guest_np_cpp_web_api add_test blocks here should become add_library_test(modules NAME ...) instead. Happy to adapt on rebase either way.

@github-actions github-actions Bot added the unblocks title Names a title ID on the Unblocks line label Oct 18, 2026
@ionut27001

Copy link
Copy Markdown
Contributor

Runtime data for this PR, with Marvel's Wolverine (PPSA03671 01.001.005).

Setup: Windows 11 Pro 26300, RTX 4080 SUPER 16 GB (NVIDIA 617.42), WinLibs GCC 15.2.0 r7, Release. eboot.bin, sce_module/libc.prx, libcohtml.Prospero.prx and libRenoirCore.PS5.prx unwrapped with tools/unwrap_self.py and converted with relinker --windows --registry --module-dir ..

  • tools/import_audit.py, with the title's own modules as providers: on main f305942, 147 absent imports, all from libSceNpCppWebApi.prx. With this PR (8cd400a) merged: 0 absent.
  • The title then loads and reaches the "Sony Interactive Entertainment presents" card. In 16 runs of 419 to 900 s (this PR alone twice, and with other open AGC driver PRs), no log line mentions NpCppWebApi and no abort came from it: every run that ended early ended on the write-watch abort that fix(agc): run the unwatch hook when a watched import leaves the write watch #6308 removes.

Not checked: anything after the splash card.

AI-assisted: yes

@adriadam10 adriadam10 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work and for the audit of the 147 imports; the approach (a host fallback only consulted when the dump ships no copy) is fine and the CONTRIBUTING wording is accepted. Points to fix:

  • Export.cpp:9: SCE_NP_WEBAPI_ERROR_UNAVAILABLE = 0x80552901 does not exist. In shadPS4 (np_error.h:450) and fpPS4 (np_error.pas:375) 0x80552901 is SCE_NP_WEBAPI_ERROR_OUT_OF_MEMORY, and the 0x80552901-0x8055291A range has no "unavailable" code. As written, every factory, API call and start/readData reports out-of-memory to the title. Pick the code a signed-out/offline console returns from the real library (e.g. NOT_SIGNED_IN 0x80552907 if that is what you measured, or what the removed module returned), name it after the reference constant, and say in the debt file where it comes from.
  • docs/dev/debt/libSceNpCppWebApi.md: the setters/ctors/dtors that succeed without storing state (Leaderboards set*, ParameterTo*::initialize, RecordScore, etc.) are only mentioned for SessionManager2V1. List all of them, and put the no-ops under a ### Silent stubs section as your checklist says (there is none in the file).
  • The layouts (0x18 IntrusivePtr, 0x20 String, refcount at 0x30 for Vector) are cited as measured on PPSA21564; please put the evidence (offsets/disassembly) in the PR body so it can be checked.

Everything else I checked looks right: the tests pin the deep-copy / refcount / free behaviour and would fail without the change, and the runtime data from @ionut27001 on PPSA03671 is a useful confirmation.

@akkadbakkad89

Copy link
Copy Markdown
Contributor Author

All three points addressed in 8f3849e7:

  1. Error code — renamed to SCE_NP_WEBAPI_ERROR_NOT_SIGNED_IN = 0x80552907, matching ORBIS_NP_WEBAPI_ERROR_NOT_SIGNED_IN in shadPS4 np_error.h / fpPS4 np_error.pas (verified: 0x80552901 is OUT_OF_MEMORY, and no UNAVAILABLE exists anywhere in the 0x80552901–0x8055291F range). NOT_SIGNED_IN is what a console with no PSN session returns from these request entry points — the closest documented analogue to our offline model. The wrong 0x80552901 was inherited verbatim from the module removed in 79057e9160 — it carried the same incorrect constant. The debt file now records where the code comes from.

  2. Silent stubs — added a ### Silent stubs section enumerating all 57 no-op exports by class: Leaderboards::V1 (24: the GetRankingRequestBody/RecordScoreRequestBody/User setters, all ParameterTo*::{initialize,terminate} pairs), SessionManager::V1 (20: parameter ctors/dtors/initialize + the RequestPlayerSession* setters), TitleCloudStorage::V1 (2), and the 11 Common::* template helpers (TransactionBase/DownStreamTransaction::finish, Vector::pushBack).

  3. Layout evidence — added a Layout evidence (PPSA21564 bundled module) section to the PR body with the measured offsets: IntrusivePtr 0x18 with pointee refcount at +0x00, String 0x20 (refcount @0x00, buffer @0x08, size @0x10, ctx @0x18), Vector body refcount at +0x30 (0x28 reserved header, body filling to 0x50), and the deep-copy behaviour of pushBack<Vector<String>>.

Verified: libSceNpCppWebApi.prx rebuilds clean; guest_np_cpp_web_api_intrusive_ptr and guest_np_cpp_web_api_string still pass; check_conventions clean.

@adriadam10
adriadam10 merged commit 4f10164 into boykopovar:main Oct 19, 2026
14 checks passed
@adriadam10

Copy link
Copy Markdown
Collaborator

Checked the follow-up against the three points: the offline code is now NOT_SIGNED_IN (0x80552907, matches shadPS4 np_error.h:456 and fpPS4 np_error.pas:381), the debt file has a ### Silent stubs section covering the no-op setters/ctors/dtors, and the layout evidence is in the PR body. Confirmed by @ionut27001 on PPSA03671 (147 absent imports → 0). Merged.

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

Labels

agc libSceAgc* build ci .github docs libc libkernel prx relinker shader core/shader unblocks title Names a title ID on the Unblocks line

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants