Skip to content

feat(libSceNpCommon): declare 150 pending exports - #8983

Merged
oneandonlydean merged 4 commits into
boykopovar:mainfrom
xdCloudy:feat/libSceNpCommon-150-exports
Oct 21, 2026
Merged

oneandonlydean merged 4 commits into
boykopovar:mainfrom
xdCloudy:feat/libSceNpCommon-150-exports

Conversation

@xdCloudy

@xdCloudy xdCloudy commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

What

Adds 150 named libSceNpCommon export declarations. Each declaration calls NotImplemented_nid_no_patch; the no-parameter form is used only to resolve imports and does not claim an ABI signature. Unknown signatures and behavior are recorded in docs/dev/debt/libSceNpCommon.md.

The names and NIDs were checked against the local libSceNpCommon.sprx export table: all 150 NIDs are present and recompute from their names with tools/nid_names.py. The public PS5 3.20 libSceNpCommon symbol list contains all 150 names. The already-declared sceNpCmpNpId from open PR #6977 is excluded. This branch is based on current upstream main. Depends on: none.

Tested

Windows 11 / MinGW 15.2 and Ubuntu 24.04 / GCC 13.3: configured the full project and built libSceNpCommon; both builds succeeded. tools/check_test_registration.py passed on both platforms (no new test executables for this declaration-only change). No runtime tests were available for these throwing declarations. The exact tools/pr_overlap.py from open PR #8970 reports no overlap with main or any open PR. python tools/check_conventions.py --base upstream/main and git diff --check passed. CI build jobs remain skipped for this draft.

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
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Progress report (27c88a8 → 411a8e7)

📉 System libraries: 50.17% (-0.85%, +150 declared functions)

🆕 150 declared as stubs
Library Name
libSceNpCommon sceNpAllocateKernelMemoryNoAlignment
libSceNpCommon sceNpAllocateKernelMemoryWithAlignment
libSceNpCommon sceNpArchInit
libSceNpCommon sceNpArchTerm
libSceNpCommon sceNpAtomicCas32
libSceNpCommon sceNpAtomicDec32
libSceNpCommon sceNpAtomicInc32
libSceNpCommon sceNpBase64Decoder
libSceNpCommon sceNpBase64Encoder
libSceNpCommon sceNpBase64GetDecodeSize
libSceNpCommon sceNpBase64UrlDecoder
libSceNpCommon sceNpBase64UrlEncoder
libSceNpCommon sceNpBase64UrlGetDecodeSize
libSceNpCommon sceNpCalloutInitCtx
libSceNpCommon sceNpCalloutStartOnCtx
libSceNpCommon sceNpCalloutStartOnCtx64
libSceNpCommon sceNpCalloutStopOnCtx
libSceNpCommon sceNpCalloutTermCtx
libSceNpCommon sceNpCancelEventFlag
libSceNpCommon sceNpClearEventFlag
libSceNpCommon sceNpCloseEventFlag
libSceNpCommon sceNpCloseSema
libSceNpCommon sceNpCmpNpIdInOrder
libSceNpCommon sceNpCmpOnlineId
libSceNpCommon sceNpCondDestroy
libSceNpCommon sceNpCondInit
libSceNpCommon sceNpCondSignal
libSceNpCommon sceNpCondSignalAll
libSceNpCommon sceNpCondSignalTo
libSceNpCommon sceNpCondTimedwait
libSceNpCommon sceNpCondWait
libSceNpCommon sceNpCreateEventFlag
libSceNpCommon sceNpCreateSema
libSceNpCommon sceNpCreateThread
libSceNpCommon sceNpDbgAssignDebugId
libSceNpCommon sceNpDbgDumpBinary
libSceNpCommon sceNpDbgDumpText
libSceNpCommon sceNpDeleteEventFlag
libSceNpCommon sceNpDeleteSema
libSceNpCommon sceNpFreeKernelMemory
libSceNpCommon sceNpGetNavSdkVersion
libSceNpCommon sceNpGetPlatformType
libSceNpCommon sceNpGetProcessId
libSceNpCommon sceNpGetRandom
libSceNpCommon sceNpGetSdkVersion
libSceNpCommon sceNpGetSdkVersionUInt
libSceNpCommon sceNpGetSystemClockUsec
libSceNpCommon sceNpGlobalHeapGetAllocator
libSceNpCommon sceNpGlobalHeapGetAllocatorEx
libSceNpCommon sceNpGlobalHeapGetAllocatorExPtr
libSceNpCommon sceNpGlobalHeapGetAllocatorPtr
libSceNpCommon sceNpHeapDestroy
libSceNpCommon sceNpHeapGetAllocator
libSceNpCommon sceNpHeapGetStat
libSceNpCommon sceNpHeapInit
libSceNpCommon sceNpHeapShowStat
libSceNpCommon sceNpHexToInt
libSceNpCommon sceNpInt32ToStr
libSceNpCommon sceNpInt64ToStr
libSceNpCommon sceNpIntGetPlatformType
libSceNpCommon sceNpIntIsOnlineIdString
libSceNpCommon sceNpIntIsValidOnlineId
libSceNpCommon sceNpIntSetPlatformType
libSceNpCommon sceNpIntToHex
libSceNpCommon sceNpIpc2ClientInit
libSceNpCommon sceNpIpc2ClientTerm
libSceNpCommon sceNpJoinThread
libSceNpCommon sceNpJsonParse
libSceNpCommon sceNpJsonParseBuf
libSceNpCommon sceNpJsonParseBufInit
libSceNpCommon sceNpJsonParseEx
libSceNpCommon sceNpJsonParseExInit
libSceNpCommon sceNpJsonParseInit
libSceNpCommon sceNpLwCondDestroy
libSceNpCommon sceNpLwCondInit
libSceNpCommon sceNpLwCondSignal
libSceNpCommon sceNpLwCondSignalAll
libSceNpCommon sceNpLwCondSignalTo
libSceNpCommon sceNpLwCondWait
libSceNpCommon sceNpLwMutexDestroy
libSceNpCommon sceNpLwMutexInit
libSceNpCommon sceNpLwMutexLock
libSceNpCommon sceNpLwMutexTryLock
libSceNpCommon sceNpLwMutexUnlock
libSceNpCommon sceNpMemoryHeapDestroy
libSceNpCommon sceNpMemoryHeapGetAllocator
libSceNpCommon sceNpMemoryHeapGetAllocatorEx
libSceNpCommon sceNpMemoryHeapInit
libSceNpCommon sceNpMutexDestroy
libSceNpCommon sceNpMutexInit
libSceNpCommon sceNpMutexLock
libSceNpCommon sceNpMutexTryLock
libSceNpCommon sceNpMutexUnlock
libSceNpCommon sceNpOpenEventFlag
libSceNpCommon sceNpOpenSema
libSceNpCommon sceNpPanic
libSceNpCommon sceNpPollEventFlag
libSceNpCommon sceNpPollSema
libSceNpCommon sceNpRtcConvertToPosixTime
libSceNpCommon sceNpRtcFormatRFC3339
... 50 more

@xdCloudy

Copy link
Copy Markdown
Contributor Author

I updated this batch after the overlap report: it excludes sceNpCmpNpId from #6977 and keeps the declarations in a separate source file, so it does not share the conflicting new file. I reran the exact tools/pr_overlap.py from #8970 against current main and all open PRs; it reports no overlap. Local Windows 11/MinGW 15.2 and Ubuntu 24.04/GCC 13.3 builds of libSceNpCommon both succeeded, and test-registration checks passed on both platforms (no new tests are registered for these throwing declarations).

@xdCloudy
xdCloudy force-pushed the feat/libSceNpCommon-150-exports branch from e2a5694 to 411a8e7 Compare October 21, 2026 08:49
@xdCloudy
xdCloudy marked this pull request as ready for review October 21, 2026 08:50
@oneandonlydean
oneandonlydean merged commit 2abfb1b into boykopovar:main Oct 21, 2026
10 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.

2 participants