Commit Graph
17 Commits
Author SHA1 Message Date
Dean Galvin 0bbedda23b Merge commit 'a644edf30c501a612d06f17d05ef1b7051350cef' into HEAD
# Conflicts:
#	core/libs/tests/GuestOfflineImports.cpp
#	docs/dev/debt/libSceNpEntitlementAccess.md
2026-11-01 23:19:02 +13:00
KernelPanicNT b08d773dd0 feat(libSceNpEntitlementAccess): implement sceNpEntitlementAccessGetAddcontEntitlementInfoIndividual
Take the user ID, service label, entitlement label and info of the
runtime declaration in dlc_emu. A user ID of -1 returns the parameter
error before any other check; any other ID returns what
sceNpEntitlementAccessGetAddcontEntitlementInfo returns for the label,
including the not-found error for a label the entitlements file does
not list. Record the unverified prototype, the error order and the
label checks dlc_emu makes that this export does not in the debt.
2026-10-30 15:35:01 +00:00
akkadbakkad89 5145a9b782 docs(libSceNpEntitlementAccess): list abort and delete as silent stubs 2026-10-29 14:53:00 +01:00
akkadbakkad89 2456beff27 fix(libSceNpEntitlementAccess): make abort and delete request idempotent
No request can be created while signed out, so the library keeps no
request table. Sharpemu asserts abort/delete return OK for Gen4 and
Gen5 regardless of the request ID; titles treat a negative result as a
log-only cleanup error. Return 0 unconditionally instead of throwing.
2026-10-29 14:52:59 +01:00
Dean 73f65fba8e Merge pull request #11529 from milescoviello/docs/entitlement-key-call-sites
docs(libSceNpEntitlementAccess): note how two titles call sceNpEntitlementAccessGetEntitlementKey
2026-10-29 07:20:41 +13:00
milescovielloandClaude Opus 5.5 e9de93c1e4 docs(libSceNpEntitlementAccess): list sceNpEntitlementAccessInitialize as a silent stub
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:25:36 +00:00
milescoviello 03ce876c46 Merge remote-tracking branch 'upstream/main' into docs/entitlement-key-call-sites
# Conflicts:
#	docs/dev/debt/libSceNpEntitlementAccess.md
2026-10-27 07:45:25 +00:00
milescovielloandClaude Opus 5.5 8e655f64c8 docs(libSceNpEntitlementAccess): note how two titles call sceNpEntitlementAccessGetEntitlementKey
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 18:06:56 +00:00
Yunus Shaikh 6e485fb3b9 fix(libSceNpEntitlementAccess): report the request abort and delete calls as not implemented
sceNpEntitlementAccessAbortRequest and sceNpEntitlementAccessDeleteRequest threw a bare logic_error on every call, so progress.py counted them as done. The library keeps no request table, and no source gives their behaviour, so both now go through NotImplemented_nid_no_patch. Their check moves from guest_offline_imports to the library's own guest_entitlements test.
2026-10-25 09:40:31 +00:00
boykopovar 166a8aa3e5 fix(npentitlementaccess): reject unimplemented request lifecycle operations 2026-10-21 21:51:33 +03:00
boykopovar 4fa7e142c3 fix(npentitlementaccess): restore request and result argument signatures 2026-10-21 21:51:29 +03:00
NikoandClaude Opus 5.5 17934e1576 feat(libSceNpEntitlementAccess): report signed out from the consumable entitlement requests
sceNpEntitlementAccessRequestConsumeEntitlement,
sceNpEntitlementAccessRequestConsumableEntitlementInfo and
sceNpEntitlementAccessPollConsumableEntitlementInfo threw. There is no
PSN sign-in, so they now return SCE_NP_ERROR_SIGNED_OUT (0x80550006)
for any arguments and write nothing, like the other entitlement
requests and polls in the library.

The parameter lists follow dlc_emu (drakmor/dlc_emu fcf69b16,
scenpentitlementaccess_exports.cpp L146-L220), a replacement module
using the SDK header's types. idlesauce's ps4-eboot-dlc-patcher marks
its lists as assumed and differs in the consume request's label and the
poll's third argument, so those two are untyped pointers; nothing reads
them. Whether a signed-out console fails at the request or at the poll,
and where its argument checks sit, are unverified and recorded in the
library's technical debt.

guest_offline_imports now calls the three with valid-looking and with
null arguments and checks that each returns 0x80550006 and leaves the
request id, the result and a 64-byte info buffer untouched.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 16:26:02 +02:00
juanpimg 2f0ed638dc feat(prx): declare the missing PS5 3.20 system exports
AnyPS5 resolves a title's imports by NID, so a title that imports a system
function no library provides fails to load with an unresolved import. The
PS5 3.20 export inventory lists 193 such exports across 37 PS5 system
libraries AnyPS5 implements but does not provide.

Declare them as throwing stubs so those titles load and reach their next
blocker. Each declaration calls NotImplemented_nid_no_patch and returns 0;
none of them implements the function. Declarations with a credible
prototype use it and cite the source with a pinned commit, and the rest
are declared without parameters, which resolves the import without making
an ABI claim. The technical-debt files record the limitation per library.

libSceMbus and libSceSystemService are left out because pull request #7821
declares them. libSceAgc is left out because its exports are versioned, so
the 3.20 NID names a different symbol from the one AnyPS5 ships.
libSceAvPlayer.native is left out because it compiles libSceAvPlayer's
Export.cpp.

Names and NIDs come from the PS5 3.20 export inventory at
https://github.com/DNNDHH/PS5-3.20_Libs/tree/b2a77c09cd71c01f34c790cfbe98c751a13262ad
2026-10-19 23:16:55 +02:00
Adrià Franch dd5853d8bc docs(debt): cite the source of sceNpEntitlementAccessGetPftFlag 2026-10-13 10:08:30 +02:00
jagrat Singh 7900b59d52 feat(libSceNpEntitlementAccess): implement sceNpEntitlementAccessGetPftFlag
Reports a full game, not a Play First Trial: 0 is written to the uint32_t output and 0 returned; a null pointer returns 0x817D0002.

Signature, value, one-word write and error match sceNpEntitlementAccessGetGameTrialsFlag and sharpemu src/SharpEmu.Libs/Np/NpEntitlementAccessExports.cs:98-116. 0x817D0002 is the parameter error of KytyPS5, prosper and sceNpEntitlementAccessGetEntitlementKey. The library has no initialization state, so none is checked. Update technical debt documentation and add unit test in guest_offline_imports.
2026-10-13 10:08:24 +02:00
screammandClaude Fable 5.1 5690b84a49 feat(libSceNpEntitlementAccess): implement sceNpEntitlementAccessGetGameTrialsFlag
PRAGMATA (PPSA02530) calls it after sceRazorCpuSync and stops on main
with "sceNpEntitlementAccessGetGameTrialsFlag not implemented". From
called once; I logged four register values but cannot tell which are
arguments. Answering 0 without writing anything carried on." Killing
Floor 3 (PPSA08427) and RE4 also import it.

The title is reported as a full game, not a game trial: 0 is written to
the uint32_t output and 0 returned; a null pointer returns 0x817D0002.
Signature, value, one-word write and error follow sharpemu
src/SharpEmu.Libs/Np/NpEntitlementAccessExports.cs:98-116 and its test
NpEntitlementAccessExportsTests.cs:16-36 (a2983692930564815a77f81e74c151268f5b935f),
used as a source of facts; 0x817D0002 is also the parameter error of
KytyPS5, prosper and sceNpEntitlementAccessGetEntitlementKey here. The
library has no initialization state, so none is checked. The NID
y7JD1gfwyfA hashes from the name and is in aerolib. Unverified points
are in TechnicalDebt.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-12 21:58:36 +02:00
Adrià FranchandClaude 342a8c4590 docs(debt): move library entries to one file per library
Co-Authored-By: Claude <[email protected]>
2026-10-12 20:38:29 +02:00