Commit Graph
75 Commits
Author SHA1 Message Date
Dean Galvin 6b8ef0f5a8 Merge branch 'main' 2026-11-05 22:14:50 +13:00
Dean c48347be84 Merge pull request #12852 from hypermoist/feat/np-ringbuf
feat(libSceNpCommon): implement sce::np::RingBuf and RingBufMemory
2026-11-05 21:50:16 +13:00
Dean f2f4cc2e1e Merge pull request #15048 from xXPBSXx/fix/np-strncpy-null-zero
fix(libSceNpCommon): treat a null source with a zero limit as empty in sceNpStrncpyToBuf
2026-11-05 17:00:22 +13:00
hypermoistandClaude Opus 5.5 bfeaa3c2fc docs(libSceNpCommon): restore the debt rows the last main merge dropped
The merge of main removed the rows for nine pending exports that this PR
does not implement (#12823 turned their stubs into predicates and kept
the rows). They are back exactly as on main, so the file differs from
main only by this PR's own rows.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-05 07:25:56 +13:00
hypermoist 8bbc545be8 Merge remote-tracking branch 'upstream/main' into feat/np-ringbuf
# Conflicts:
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-11-05 02:38:26 +13:00
Dean 29e42d2d96 Merge pull request #12823 from xdCloudy/feat/libSceNpCommon-state-predicates
feat(libSceNpCommon): implement nine state helpers
2026-11-04 19:27:01 +13:00
hypermoist 757c6c6fcd Merge remote-tracking branch 'upstream/main' into feat/np-ringbuf 2026-11-03 21:24:13 +13:00
Dean 0ecda069b0 Merge pull request #14845 from kallmek3nny/fix/libSceNpCommon-sdk-version-clear
fix(libSceNpCommon): clear the sceNpGetSdkVersion buffer before writing the version
2026-11-03 18:10:34 +13:00
Dean Galvin 4d75a8a77a Merge main b2627ce36d into #13130 (996212142a) 2026-11-03 08:46:39 +13:00
Dean 8bc49558d2 Merge pull request #12919 from hypermoist/feat/np-title-secret
feat(libSceNpCommon): implement sce::np::NpTitleSecret
2026-11-03 06:25:36 +13:00
Dean 4662fbc62a Merge pull request #12839 from hypermoist/feat/np-allocator-ex
feat(libSceNpCommon): implement the _sceNpAllocatorEx helpers
2026-11-03 05:14:22 +13:00
Dean d0dcbc30a4 Merge pull request #12818 from hypermoist/feat/np-util-xml-escape
feat(libSceNpCommon): implement sceNpUtilXmlEscape and sceNpUtilXmlUnescape
2026-11-03 05:13:35 +13:00
xXPBSXxandClaude Sonnet 5.5 d267b8dcb1 fix(libSceNpCommon): test sceNpStrncpyToBuf with a null source at sizes 0 and 1 and record the console fault
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-11-02 15:40:29 +01:00
Dean Galvin 7ade1cc60a Merge commit '4f64f81ef7b4bca975b4b9f3dfd15dfff56f716f' into HEAD
# Conflicts:
#	core/libs/prx/libSceNpCommon/CMakeLists.txt
2026-11-03 02:42:52 +13:00
Dean cd673bd828 Merge pull request #11601 from x-labb/fix-11567-callout-self-term
fix(libSceNpCommon): refuse to terminate a callout context from its own callout
2026-11-03 01:25:59 +13:00
unknown d4aee6eb2c Merge remote-tracking branch 'upstream/main' into maintenance/12823 2026-11-01 21:10:44 +00:00
kenny soloandClaude Opus 5.5 30933ef0c1 fix(libSceNpCommon): clear the sceNpGetSdkVersion buffer before writing the version
Firmware 13.42 libSceNpCommon.sprx zeroes the 8-byte buffer without a null check before it writes major.minor, as read from its disassembly in #13684. The test now expects the zero padding, and the debt entry names that source.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-11-01 12:25:25 -05:00
hypermoist 996212142a Merge remote-tracking branch 'upstream/main' into feat/np-mutex-cond
# Conflicts:
#	core/libs/prx/libSceNpCommon/include/Api.hpp
2026-11-02 02:36:28 +13:00
hypermoist 253236e07c Merge remote-tracking branch 'upstream/main' into feat/np-ringbuf
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-11-02 01:20:07 +13:00
hypermoist 8a39ee6955 Merge remote-tracking branch 'upstream/main' into feat/np-util-xml-escape
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	docs/dev/debt/libSceNpCommon.md
2026-11-02 01:20:05 +13:00
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
Cloudy eadb099177 feat(libSceNpCommon): implement nine state helpers
Rebase firmware-13.60 state predicates, clear functions and regression
tests onto the current AnyPS5 main, retaining unrelated upstream work.
2026-10-31 21:19:44 -07:00
Dean cf79276fee Merge pull request #12859 from hypermoist/feat/np-time
feat(libSceNpCommon): implement sce::np::Time
2026-11-01 15:24:44 +13:00
DisasterandClaude Sonnet 5.5 0a520ced91 feat(libSceNpCommon): null-check sceNpGetSystemClockUsec
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-31 19:58:28 +01:00
hypermoist 9bf956b421 Merge remote-tracking branch 'upstream/main' into feat/np-mutex-cond
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	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 19:16:43 +13:00
hypermoist cbb5a530e2 Merge remote-tracking branch 'upstream/main' into feat/np-title-secret
# Conflicts:
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	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 19:16:42 +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 42c4590e71 Merge branch 'feat/np-allocator-ex' into feat/np-ringbuf
# Conflicts:
#	core/libs/prx/libSceNpCommon/CMakeLists.txt
#	core/libs/prx/libSceNpCommon/PendingExportsRound7.cpp
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	core/libs/tests/GuestNpCommonRuntime.cpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-31 19:16:40 +13:00
hypermoist 49b912222e Merge remote-tracking branch 'upstream/main' into feat/np-allocator-ex
# Conflicts:
#	core/libs/tests/GuestNpCommonRuntime.cpp
2026-10-31 19:16:23 +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
hypermoist ad1b7612f6 Merge remote-tracking branch 'upstream/main' into feat/np-util-xml-escape
# Conflicts:
#	core/libs/tests/GuestNpCommonRuntime.cpp
2026-10-31 19:15:44 +13:00
x-labb 22d478c78d fix(libSceNpCommon): refuse to terminate a callout context from its own callout
sceNpCalloutTermCtx called from a callout of the same context could not join the worker thread, destroyed the context's mutex and condition anyway, and returned. The worker then locked the destroyed mutex and the host crashed. The call now throws, and the gap is recorded in the library's technical debt.
2026-10-31 00:58:20 +01: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 7b4f453ad1 docs(libSceNpCommon): separate the SkipAll and SkipData counter cases
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 18:27:53 +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
BunnyFlandClaude Opus 5.5 82e8fa7539 test(libSceNpCommon): pin the firmware's lost close inside a 16th-level object
Firmware 13.42 keeps the type of the 16th nested container in the context
slot that also holds the saved parser state, so a call that ends inside a
16th-level object leaves the outermost object open. The parser here does
the same; the test pins it, and the debt file records it together with
where the parser's behaviour comes from.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 17:52: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 724c31161b Merge remote-tracking branch 'upstream/main' into feat/np-allocator-ex
# Conflicts:
#	core/libs/tests/GuestNpCommonRuntime.cpp
2026-10-31 01:53:25 +13:00
hypermoist 5f43bd0135 Merge remote-tracking branch 'upstream/main' into feat/np-ringbuf
# Conflicts:
#	core/libs/prx/libSceNpCommon/include/Api.hpp
#	core/libs/tests/GuestNpCommonRuntime.cpp
#	docs/dev/debt/libSceNpCommon.md
2026-10-31 01:49:07 +13: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 686a5ca0be Merge remote-tracking branch 'upstream/main' into feat/np-mutex-cond
# 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:38:38 +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