Commit Graph
15 Commits
Author SHA1 Message Date
Braxton Atkinson 4dcfc0b3db feat(libSceAppContent): implement sceAppContentGetEntitlementKey
Resolve the rebase conflicts with upstream's public API header migration. Put the typed entitlement-key layout and signature in Api.hpp, remove duplicate test/source declarations, and retain upstream's typed add-content checks and initialization behavior.

Keep ignoring the service label in the no-entitlement model. Cover labels 0, 7, 8 and UINT32_MAX without touching the output key. Update debt to distinguish firmware 13.42 module-side validation from the still-unverified system-service result. Evidence: https://github.com/boykopovar/AnyPS5/pull/9638#issuecomment-6390573735

Ubuntu 24.04, GCC 13.3, Release, upstream e7e3e9c198: actual libraries and guest_appcontent_tests built; guest_appcontent passes 1/1. Public-header audit, syntax checks of implementation and test, conventions, test registration and whitespace checks pass. No title or PS5 hardware tested; Windows was not rerun for this update.

AI-assisted: yes
2026-10-24 23:29:15 -05:00
xXPBSXxandClaude Sonnet 5.5 1487e95234 docs(debt): add call-site evidence for sceAppContentDownloadDataGetAvailableSpaceKb
One disassembled title ignores the return value and multiplies the output by
1024 (static reading only).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 05:22:49 +02:00
Dean ccf7f10407 Merge pull request #9114 from voidlakhan/feat/appcontent-temporary-data-mount
feat(libSceAppContent): implement temporary data mount
2026-10-23 11:02:29 +13:00
boykopovar f55e936f92 fix(appcontent): validate entitlement padding by sdk version 2026-10-21 21:54:21 +03:00
boykopovar 20a2488b4b fix(appcontent): restore initialization guards and validation 2026-10-21 21:54:20 +03:00
boykopovar 7b1bf85ffd fix(appcontent): enforce required output and mount pointers 2026-10-21 21:52:12 +03:00
lakhantheboss 8af8f1d54f docs(libSceAppContent): clarify temporary storage debt 2026-10-21 17:59:48 +05:30
lakhantheboss d1b7722630 feat(libSceAppContent): implement temporary data mount 2026-10-21 17:33:27 +05:30
xdCloudy 1e2f3d0caa feat(prx): add missing libSceAppContent exports 2026-10-21 02:37:10 +01:00
slopggobblercobbler81 0029bddb55 fix(libSceAppContent): return NOT_MOUNTED for invalid download mount point
Return SCE_APP_CONTENT_ERROR_NOT_MOUNTED instead of throwing APS5_INVALID_ARG_EX when a mount point other than /download0 is passed to sceAppContentDownloadDataFormat or sceAppContentDownloadDataGetAvailableSpaceKb, aligning with sceAppContentTemporaryDataFormat. Check null mount_point in sceAppContentDownloadDataGetAvailableSpaceKb with SCE_APP_CONTENT_ERROR_PARAMETER.
2026-10-18 16:12:23 +02:00
KernelPanicNTandClaude Opus 5.5 7d42db40a3 feat(libSceAppContent): implement sceAppContentGetAddcontDownloadProgress
The signature (uint32_t service label, const NpUnifiedEntitlementLabel*,
progress*) follows SharpProspero Interop/AppContent/AppContent.cs.
dlc_emu dlc_content.cpp (fcf69b16) answers PARAMETER for a null label or
progress and NOT_FOUND for a label that is not installed additional
content. No additional content is ever installed here, as
sceAppContentAddcontMount, sceAppContentAddcontEnqueueDownload and
sceAppContentAddcontDelete already model, so every other call answers
NOT_FOUND and the progress, whose 16-byte layout SharpProspero gives,
is never written.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:44:42 +00:00
ps54allandClaude Opus 5.5 bfe78af9f5 feat(libSceAppContent): export sceAppContentAddcontDelete
No additional content is ever installed, so deleting one finds nothing:
a null entitlement label answers PARAMETER and any other NOT_FOUND, the
same way sceAppContentAddcontEnqueueDownload does.

Metal Gear Solid 4 Master Collection (PPSA18194) imports it in its game
executable, which fails to load without it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 23:56:39 +02:00
Adrià Franch c6b1f84a7e docs(debt): record sceAppContentAddcontEnqueueDownload behaviour as unverified 2026-10-13 16:33:51 +02:00
8a7e1195d4 feat(exports): export the calls PPSA01317 imports
Gran Turismo 7 (PPSA01317) fails to load on unresolved imports and on
two needed libraries that AnyPS5 does not build (#4782).

- sceAppContentDownloadDataFormat empties /download0, as
  sceAppContentTemporaryDataFormat does for /temp0.
- sceNpAuthSetTimeout returns REQUEST_NOT_FOUND for an unknown request
  like the other request calls, and OK otherwise; no request reaches the
  network the timeouts would bound.
- sceNpWebApi2PushEventSetHandleTimeout throws for an unknown library
  context, like sceNpWebApi2GetMemoryPoolStats, and returns OK
  otherwise; push event handles are not tracked and nothing waits on
  one offline.
- sceSslDisableVerifyOption, sceSslGetAlpnSelected, sceSslSetAlpn,
  sceSslSetMinSslVersion, sceAudioOutDeviceIdOpen and the unnamed
  libScePsml NIDs xNZM9Y5lf-M and lcZD9tJraAw are declared without
  parameters and throw; their signatures are unknown.
- libSceUsbStorage and libSceUsbStorageDialog exist with no exports,
  like libSceXml: the title lists both as needed but imports nothing
  from them.

Each assumption is recorded in the library's technical debt file.

Co-authored-by: dawid-swiecicki <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 01:11:29 +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