Commit Graph
8546 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
wail-arch e87d6b2227 refactor(libSceNotification): declare sceNotificationSend with the SDK's parameters
Homebrew built with the ps5-payload-dev SDK declares
sceNotificationSend(int userId, bool isLogged, const char* payload) and
its notify sample passes the system user, true and a JSON toast. Use
those parameters, which take the same registers as before, keep the
export throwing and record the call in the technical debt.
2026-10-25 04:17:49 +00:00
xXPBSXxandClaude Sonnet 5.5 5c6cd07831 docs(debt): note what a title does with the sceKernelGetOperationMode values
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 04:58:21 +01:00
JJenkxandClaude Opus 5.5 aeaa3b58f0 feat(tools): audit an extracted title's imports in one step
Auditing a title before its first run takes several manual steps from
GAME_TESTING: unwrap eboot.bin and every module the title ships with
unwrap_self.py, convert them with relinker --registry (with
--module-dir for Unity's Media/Modules and Media/Plugins, and for
modules beside eboot.bin), and pass every registry and module folder
to import_audit.py. Missing one module folder turns its imports into
false "absent" entries.

tools/audit_dump.py <app0> --relinker <path> --libs <dir> does those
steps into a temporary directory (or --work <dir>), reading the dump
only. A module that is already a plain ELF is copied; one that is
neither a SELF nor an ELF fails the run. It returns import_audit's exit
code, or 2 when unwrapping or conversion fails.

audit_dump covers the module folders and the module-dir list, a
refused module, the relinker command line, the arguments passed to
import_audit, a relinker failure and the argument errors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:45:09 -04:00
JJenkxandClaude Opus 5.5 38e535f939 docs(debt): cite the bundled libc.prx for _Mtx_trylock, strdup and strndup
Both libc debt entries said the console behaviour was unverified. The
libc.prx that PPSA13934 ships in sce_module/ settles them (read from
disassembly, not measured on a console):

- _Mtx_trylock (0x5cf0) passes its argument to scePthreadMutexTrylock
  and returns 0 on success, 3 for SCE_KERNEL_ERROR_EBUSY and 4 for any
  other error.
- strdup (0x6b440) calls strlen and strndup (0x6b650) calls strnlen on
  the source with no null check, so both fault on a null source, except
  strndup(NULL, 0), which returns an empty copy where this libc returns
  null with EINVAL.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:41:14 -04:00
Dean e7e3e9c198 Merge pull request #9844 from JJenkx/windows/libc-exp2f-msun
fix(libc): compute exp2f with FreeBSD msun's algorithm, as titles' libc.prx does
2026-10-25 16:36:34 +13:00
xXPBSXxandClaude Sonnet 5.5 c68c38085e docs(debt): note how a title calls sceUserServiceGetAgeLevel
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 04:00:30 +01:00
Yunus Shaikh e9db171018 feat(libSceNet): report the loopback interface's flags
sceNetConfigGetIfFlags answers interface 0, lo0 in the sceNetGetIfName
numbering, with IFF_UP | IFF_LOOPBACK | IFF_RUNNING | IFF_MULTICAST, the
flags FreeBSD 11 gives a configured loopback. Other interfaces and a null
flags pointer throw: the library models no other interface.
2026-10-25 03:00:00 +00:00
Yunus Shaikh 64f42541ae feat(libSceNet): initialize the library through sceNetInitParam
sceNetInitParam initializes the library as sceNetInit does and returns
its result. NetInitializeParameter's layout is unknown, so its fields are
not read; a null parameter throws because its console result is unknown.
2026-10-25 03:00:00 +00:00
xXPBSXxandClaude Sonnet 5.5 06eb1f5c14 docs(debt): note that a title ignores the sceVideoOutSetFlipRate result
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 03:59:45 +01:00
Dean 25c1aa1e79 Merge pull request #10187 from hypermoist/feat/spsyscallwrapper-getpid-select
feat(libSceSpSysCallWrapper): forward sceSpGetPid and sceSpSelect
2026-10-25 15:59:02 +13:00
orezraeyandClaude Opus 5.5 472623ec33 docs(libkernel): mark the AF_INET bind and connect check order unmeasured
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:55:06 -03:00
Yunus Shaikh 63ef18b435 feat(libScePad): implement scePadSetVibrationForce as scePadSetVibration
scePadSetVibrationForce takes the same handle and vibration parameter as
scePadSetVibration and returns its result. No system vibration-off state
exists here for it to override: scePadSetVibrationMode only stores its
mode.
2026-10-25 02:53:52 +00:00
Yunus Shaikh 3921b0bd5f feat(libScePad): reset every light bar in scePadResetLightBarAll
scePadResetLightBarAll returns each standard port's light bar to its
default, as scePadResetLightBar does for one handle.
scePadResetLightBarAllByPortType does the same for the standard port
type and nothing for the special one. It throws for types 3, 4 and 16,
and rejects other types with INVALID_ARG, as scePadOpen does.
2026-10-25 02:53:18 +00:00
Yunus Shaikh 2e4ce13282 feat(libScePad): implement scePadIsValidHandle
A handle is valid for its own port type while the handle table that
scePadGetHandle reads holds it open: a standard port that is open, a
special slot that is in use, or the open remote port. Any other port
type answers false.
2026-10-25 02:52:39 +00:00
Leonardo a0ee2ca7fb fix(libSceNetCtl): leave nat_type unclassified in sceNetCtlGetNatInfo 2026-10-25 03:52:28 +01:00
Yunus Shaikh fe9d31edae test(libkernel_sys): pin the AMM writers' narrowing of a wide type
The map, map direct and mtype-protect writers take type as a 64-bit
value and store it in the record's 32-bit field. That matches
sceKernelWriteModifyMtypeProtectCommand and the libSceAmpr siblings,
whose type is 32 bits, but nothing checked it. A type with bit 32 set
now has to record the same bytes as the sibling given the low 32 bits,
and the debt entry says the console's handling of such a type is not
measured.
2026-10-24 19:49:48 -07:00
Ondra97 110f43a331 feat(libSceFreeType): decompose guest outlines 2026-10-25 03:40:34 +01:00
Yunus Shaikh 5997af6c13 feat(libSceNpManager): report the IdMapper account-id lookups as signed out 2026-10-25 02:35:28 +00:00
Yunus Shaikh b1f6cc6a91 feat(libSceNpManager): implement the NpManagerInt request lifecycle 2026-10-25 02:34:28 +00:00
Yunus Shaikh 5d9f8168db feat(libSceNpManager): implement the IdMapper request lifecycle 2026-10-25 02:33:34 +00:00
orezraeyandClaude Opus 5.5 65e712b9c6 Merge main into fix/libkernel-socket-address-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:32:33 -03:00
milescovielloandClaude Opus 5.5 de5306dd29 docs(debt): record the unpinned fallback of the TSC frequency measurement
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 02:25:03 +00:00
Dean d8db8faef5 Merge pull request #9519 from Ondra97/codex/feat-freetype-outline-copy
feat(libSceFreeType): implement FT_Outline_Copy
2026-10-25 15:24:07 +13:00
Dean a2a67c726e Merge pull request #9059 from mehmetbayoglu/feat/libkernel-tls-get-addr
feat(libkernel): implement __tls_get_addr
2026-10-25 15:23:44 +13:00
AZLisme 931efc838c fix(libSceLibreSsl): handle minimum signed ASN.1 integer 2026-10-25 10:19:22 +08:00
AZLisme caa81ac8e7 test(libSceLibreSsl): pin legacy integer length behavior 2026-10-25 10:19:15 +08:00
AZLisme abd16e771d feat(libSceLibreSsl): implement ASN.1 integer and string helpers 2026-10-25 10:19:06 +08:00
Dean dc15ed6537 Merge pull request #9529 from 2Swagger/feat/libressl-error-queue
feat(libSceLibreSsl): implement the per-thread error queue
2026-10-25 15:17:22 +13:00
Dean d7878da690 Merge pull request #9169 from slopgobblercobbler/fix/socket-addr-validation
fix(libkernel): validate address family against socket family in bind
2026-10-25 15:17:00 +13:00
Felipebmaitan ac2c3970bc fix(job-manager): account for GPU barrier command capacity 2026-10-24 23:16:09 -03:00
frankea ad9a0c8ef9 fix(libkernel): report 12 GiB of direct memory, as a PS5 does
sceKernelGetDirectMemorySize returns 0x300000000 inside Gran Turismo 7 (PPSA01317) on a PS5 with firmware 13.40. DIRECT_MEMORY_SIZE was 13824 MiB.
2026-10-24 22:11:58 -04:00
ElysiaAlarienandClaude Opus 5.5 a11ae425d4 docs(libSceMsgDialog): record the silent stub and parameter layout as debt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 22:11:32 -04:00
Ondra97 815fc413ea feat(libSceFreeType): implement FT_Select_Size 2026-10-25 02:59:51 +01:00
babyhuey cf950fac5d feat(libkernel): answer kern.proc.pid for the calling process
Source Port (PPSA20040) checks whether a debugger is attached with
sysctl {CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid()} into a 1,088-byte
buffer and tests P_TRACED (0x800) in ki_flag at offset 0x170; the MIB was
unsupported, so the title threw at start-up. Return a FreeBSD 11 amd64
kinfo_proc for the calling process with ki_structsize, ki_pid, ki_ppid and
ki_comm filled and every other field 0, so P_TRACED is clear. Like
kern.proc.vmmap, any other pid fails with ESRCH, a write with EPERM and a
short buffer with ENOMEM. The rest of the record is not measured on a
console and is recorded as debt.
2026-10-24 21:57:59 -04:00
Rookie 12e3082520 feat(libSceCesCs): encode UCS-2, UTF-8, UTF-16 and UTF-32 characters into any MBCS profile 2026-10-25 01:57:27 +00:00
Ondra97 60a0f0f5e2 fix(libSceFreeType): preserve referenced face lifetimes 2026-10-25 02:49:42 +01:00
Ondra97 e3536381dc test(libSceFreeType): integrate outline copies into existing coverage 2026-10-25 02:44:39 +01:00
Ondra97 78bbd4bca6 chore(libSceFreeType): isolate outline copy test registration 2026-10-25 02:44:39 +01:00
Ondra97 a09cae07d8 chore(libSceFreeType): avoid overlapping integration edits 2026-10-25 02:44:39 +01:00
Ondra97 bd50dfb19d feat(libSceFreeType): implement FT_Outline_Copy 2026-10-25 02:44:39 +01:00
Dean 941ace5f34 Merge pull request #10272 from Felipebmaitan/feat/jobmanager-linux-reference
test(job-manager): run original-module fixtures on Linux
2026-10-25 14:43:13 +13:00
slopgobblercobbler f23ef99699 feat(libSceAgcDriver): cover payload packing in sceAgcDriverNopDataWritePacket 2026-10-25 02:36:47 +01:00
wail-arch 81182dbae5 Merge branch 'main' into feat/notification-send 2026-10-25 01:31:44 +00:00
slopgobblercobbler 9b4a3b3d81 feat(libkernel_sys): implement scePthreadMain through pthread_main_np 2026-10-25 02:28:39 +01:00
Leonardo a4747ed8ef feat(libSceNetCtl): perform STUN discovery and NAT classification in sceNetCtlGetNatInfo 2026-10-25 02:24:05 +01:00
Dean 50a4f824fc Merge pull request #10186 from orezraey/fix/libscecescs-jis-encode-measured-ps5
fix(libSceCesCs): encode EUC-JP and Shift-JIS as measured on a PS5
2026-10-25 14:21:32 +13:00
Eduardo Ruiz b3c9d35ae2 feat(libc): implement _Mtx_timedlock 2026-10-25 02:21:31 +01:00
Dean 1ee0382ccc Merge pull request #8951 from xdCloudy/feat/ps5-ssl-exports
feat(libSceSsl): declare PS5 pending exports
2026-10-25 14:21:09 +13:00
Disaster 72583a0b20 feat(libc): implement _Divide, _FDivide, _Recip and _FRecip 2026-10-25 04:20:44 +03:00