Commit Graph
7981 Commits
Author SHA1 Message Date
atharvjairath e5a5b9382e feat(vdecsw): implement generic single-picture metadata queries 2026-10-25 11:41:09 +05:30
Dean e599efd64d Merge pull request #10572 from ZSWolt/fix/libscenet-usleep-negative-log
fix(libSceNet): print the console's line for a negative sceNetUsleep
2026-10-25 19:06:10 +13:00
Dean fa33658dcd Merge pull request #10762 from AlexFigas/feat/np-close-event-flag
feat(libSceNpCommon): forward sceNpCloseEventFlag to sceKernelCloseEventFlag
2026-10-25 19:05:08 +13:00
Dean 8523ec776f Merge pull request #10673 from MarcZX10/marc/signatures-libscebgft
feat(libSceBgft): declare GetPatchProgress and GetTaskInfo with known signatures
2026-10-25 19:03:03 +13:00
Yunus Shaikh bad1a7994d docs(libSceNpManager): note the NpManagerInt account-id getters waiting on the offline model 2026-10-25 05:42:38 +00:00
Yunus Shaikh 3fbd8a1453 feat(libSceNpManager): report the NpManagerInt authorization calls as signed out
sceNpManagerIntAuthGetAuthorizationCode, AuthGetIdToken,
GetAuthorizationCode and GetAuthorizationCodeWithPsnoUri return
SCE_NP_ERROR_SIGNED_OUT. That is the answer libSceNpAuth's
authorization-code and ID-token calls give for a live request while NP
is signed out. Their signatures are unknown, so they read no argument.
2026-10-25 05:42:22 +00:00
Yunus Shaikh fe2f380636 feat(libSceNpManager): report the NpManagerInt user lookups as signed out
sceNpManagerIntGetUserIdByOnlineId and GetUserIdByNpId return
SCE_NP_ERROR_SIGNED_OUT, as sceNpGetUserIdByOnlineId does while NP is
signed out. An NpId carries the online ID, so the NpId form is the same
lookup. Neither reads an argument.
2026-10-25 05:41:50 +00:00
Yunus Shaikh c4363b0415 feat(libSceNpManager): report the NpManagerInt profile getters as signed out
sceNpManagerIntGetAccountAge, GetAccountCountryA, GetAccountLanguageA,
GetNpId and GetOnlineId return SCE_NP_ERROR_SIGNED_OUT, as their public
twins do while NP is signed out. Their signatures are unknown, so they
read no argument and write nothing.
2026-10-25 05:41:13 +00:00
harisibrar1 b8b42143b1 Merge main e7e3e9c198 into fix/pselect-pending-signal-eintr 2026-10-25 01:24:28 -04:00
Felipebmaitan a43a610bbf fix(ngs2): reject routes changed during recursive rendering 2026-10-25 01:52:16 -03:00
Felipebmaitan 93b887e514 feat(ngs2): route custom submixer buffers through Gain 2026-10-25 01:34:10 -03:00
xXPBSXxandClaude Sonnet 5.5 e03c57cad5 docs(debt): note how a title and its plugin call sceSaveDataInitialize3 and Terminate
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 05:31:06 +01:00
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
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