Commit Graph
23 Commits
Author SHA1 Message Date
Dean 4317481a47 Merge pull request #12825 from hypermoist/feat/np-util-jid
feat(libSceNpCommon): implement sceNpUtilParseJid and sceNpUtilJidToNpId
2026-11-02 00:22:13 +13:00
hypermoist 4f6b5d1b5f Merge remote-tracking branch 'upstream/main' into feat/np-time
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-31 19:16:41 +13:00
hypermoist c5094d4235 Merge remote-tracking branch 'upstream/main' into feat/np-util-jid
# Conflicts:
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-31 19:15:45 +13:00
hypermoistandClaude Opus 5.5 79624b828c feat(libSceNpCommon): implement sce::np::NpCommId and sceNpUtilParseTitleId
The constructors, destructors, Clear, IsEmpty, Equals, Parse, Build and the
comparison operators of sce::np::NpCommId, and the C export
sceNpUtilParseTitleId they use, follow libSceNpCommon.sprx of firmware
13.60, checked against 26,501 firmware results.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 23:08:07 +01:00
Adrià c84f79ed3b Merge pull request #13451 from BunnyFl/feat/libscenpcommon-json-parser
feat(libSceNpCommon): implement the JSON parser family
2026-10-30 22:56:24 +01:00
Adrià 140d55e6a0 Merge pull request #13431 from hypermoist/feat/np-ref-object
feat(libSceNpCommon): implement sce::np::RefObject
2026-10-30 22:42:10 +01:00
Adrià 54574150e5 Merge pull request #13453 from Celegans12/feat/npcommon-sandbox-inventory
feat(npcommon): add sandbox mode inventory exports
2026-10-30 22:28:23 +01:00
hypermoistandClaude Opus 5.5 c9e6fe5d17 feat(libSceNpCommon): implement sce::np::RefObject
The constructors, destructors, AddRef and Release of sce::np::RefObject
follow libSceNpCommon.sprx of firmware 13.60, checked against 7,200
firmware results.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 21:41:08 +01:00
hypermoistandClaude Opus 5.5 e8a765b48d feat(libSceNpCommon): implement the sce::np::StreamReader and StreamWriter helpers
Read, ReadAll, ReadData, SkipAll and SkipData on StreamReader, and Write,
WriteData and WriteFilledData on StreamWriter, with and without a StreamCtx,
follow libSceNpCommon.sprx of firmware 13.60, checked against 20,426
firmware results.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:27:47 +01:00
Celegans12 f9b776d5fb feat(npcommon): add sandbox mode inventory exports
Resolve two named firmware imports in the existing NP Common provider.
Match both identities to the pinned 13.60 inventory and rehashed NIDs.
Keep parameterless declarations as import-resolution placeholders only.
Throw immediately instead of guessing sandbox mode values or behavior.
Record the unknown signatures and behavior in per-library technical debt.
AI-assisted: yes
2026-10-30 15:55:22 +01:00
BunnyFlandClaude Opus 5.5 2087b15d4d feat(libscenpcommon): implement the JSON parser family
sceNpJsonParse, sceNpJsonParseBuf and sceNpJsonParseEx with their
Init calls, and the sceNpServerErrorJson exports, follow firmware
13.42: a resumable byte-by-byte parser that walks a rule table level
by level (member keys compared without case, array elements, keyless
wildcard entries until the first unmatched container, a descend flag)
and calls the caller's handler for each matched container, key and
value. The Buf form uses caller key and value buffers, and the Ex form
also reports the stream offset of each event, delivers long strings
and numbers in pieces and reports everything when no rules are given.
The server error calls read error.code (or a top-level code for the
Multi form) and fall back to the HTTP status.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:55:02 +01:00
hypermoist 38075f7d94 Merge remote-tracking branch 'upstream/main' into feat/np-time
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	core/libs/prx/libSceNpCommon/Runtime.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-31 01:44:36 +13:00
hypermoist 93fbebef0a Merge remote-tracking branch 'upstream/main' into feat/np-memory-stream
# Conflicts:
#	core/libs/prx/libSceNpCommon/Runtime.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	core/libs/tests/GuestNpCommonRuntime.cpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-31 01:27:48 +13:00
hypermoistandClaude Opus 5.5 38bd414bee feat(libSceNpCommon): implement sce::np::MemoryStreamReader and MemoryStreamWriter
Constructors, destructors, Read and Write follow libSceNpCommon.sprx of
firmware 13.60, checked against 13,400 firmware results.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 00:33:51 +13:00
hypermoist 7dee6e1e28 Merge remote-tracking branch 'upstream/main' into feat/np-time
# Conflicts:
#	docs/dev/debt/libSceNpCommon.md
2026-10-30 22:56:40 +13:00
hypermoist 4d91330aac Merge remote-tracking branch 'upstream/main' into feat/np-util-jid
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-30 22:56:38 +13:00
hypermoistandClaude Opus 5.5 949680de9a feat(libSceNpCommon): implement sce::np::NpTitleId
Implements the sce::np::NpTitleId constructors, destructors, assignment,
Clear, IsEmpty, Parse, ConstructFromTitleId, Build and comparisons from
libSceNpCommon.sprx of firmware 13.60. operator==(SceNpTitleId, NpTitleId)
stays a stub; #12866 implements it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 02:51:27 +13:00
hypermoistandClaude Opus 5.5 5ea3d73de9 feat(libSceNpCommon): implement sce::np::Time
The 35 exports of sce::np::Time (clocks, date-time conversion, the Add*
helpers, operator+, the timeout checks, RFC 3339 formatting and the 18
comparison operators) follow libSceNpCommon.sprx of firmware 13.60 (read
from disassembly, not measured on a console). Six were NotImplemented
stubs; the other 29 were not exported.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 01:56:06 +13:00
hypermoistandClaude Opus 5.5 72cde05a64 feat(libSceNpCommon): implement the sce::np::Object new and delete operators
The ten operators allocate an object behind a 16-byte header that keeps its
allocator and free it through that allocator, as libSceNpCommon.sprx of
firmware 13.60 does (read from disassembly, not measured on a console). Five
were NotImplemented stubs; the other five were not exported.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:58:39 +13:00
hypermoistandClaude Opus 5.5 9b48ab5214 feat(libSceNpCommon): implement sceNpUtilParseJid and sceNpUtilJidToNpId
Read from libSceNpCommon.sprx of firmware 13.60 (disassembly, not measured
on a console).

- sceNpUtilParseJid(jid, text, buffer, bufferSize, required) skips leading
  spaces, splits user@domain/resource into terminated copies in the
  buffer and points the jid at them, or only measures without a jid or a
  buffer. It skips exactly one character after the trimmed domain, as the
  module does, and clears the jid when the buffer is too small.
- sceNpUtilJidToNpId(npId, jid) accepts XX.YY.<label>.playstation.net
  domains, users of 1 to 16 bytes and resources of up to 4, and builds the
  npid from the user, the four domain characters and the resource.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 00:39:40 +13:00
Dean Galvin 9c0445daae fix(libSceNpCommon): declare the salvaged exports in the public API 2026-10-27 19:57:19 +13:00
Alexandre Figueiredo da3e88a21d feat(libSceNpCommon): forward sceNpCloseEventFlag to sceKernelCloseEventFlag 2026-10-25 00:10:14 +01:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00