Commit Graph
20967 Commits
Author SHA1 Message Date
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
Andy Ye 29e7edfcfc test(tools): isolate overlap encoding tests from the working directory 2026-10-24 20:36:50 -07: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
Dean 390e44c789 Merge pull request #9769 from DavidSamir/test/libc-mathexact-rounding
test(libc): cover the exact long double and float rounding exports
2026-10-25 16:34:59 +13:00
JJenkxandClaude Opus 5.5 d58e050c8f fix(libc): return the byte difference from strcoll as titles' libc.prx does
strcoll called the host's strcmp, which returns -1, 0 or 1 on Windows.
The libc.prx bundled with eleven titles returns, in the C locale, the
difference of the unsigned bytes at the first mismatch, as its strcmp
does; strcoll now computes that.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-24 23:32:19 -04:00
camezaro-intc 68fc51f81c fix(agc): use native b10g11r11 layout for packed float dcc clears 2026-10-24 21:32:14 -06:00
camezaro-intc e3f644040c fix(shader_recompiler): pack format 11_11_10 float image stores in shader 2026-10-24 21:32:14 -06: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
raghav314andClaude Opus 5.5 ce9c6cbd6a fix(agc): share one depth plane copy across a surface's layer ranges
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 08:22:53 +05:30
raghav314andClaude Opus 5.5 90c2600c44 fix(agc): return a depth plane copy's memory to the device pool
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 08:22:53 +05:30
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
Baytowne 0434746d0a fix(tools): fail env_reference on a source file it cannot read 2026-10-24 21:34:51 -05: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
Dean 52a8bed576 Merge pull request #8610 from Baytowne/fix/progress-history-bad-ref
fix(tools): report an unknown ref as a usage error in progress_history
2026-10-25 15:28:14 +13:00
Dean 5482ec23aa Merge pull request #9163 from MaxLikesCode/fix/libc-compare-byte-difference
fix(libc): return the byte difference from strcmp, strncmp and memcmp
2026-10-25 15:27:53 +13: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
milescovielloandClaude Opus 5.5 6508231c0e fix(libkernel): measure the TSC frequency on one CPU
sceKernelGetTscFrequency times 20 ms of TSC ticks against the monotonic
clock. A thread that moves to another CPU during the sleep reads its end
value from another TSC. Where the TSCs of the CPUs differ, as on a Windows
VM whose vCPU 0 counts about 3.8 billion ticks ahead of the others, the
frequency came out as 0 or as 180 GHz. Pin the calibrating thread to the
CPU it runs on and restore its affinity afterwards.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 02:24:56 +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 6098cf2e64 fix(libSceLibreSsl): share public ASN.1 declarations 2026-10-25 10:19:22 +08:00
AZLisme 931efc838c fix(libSceLibreSsl): handle minimum signed ASN.1 integer 2026-10-25 10:19:22 +08:00
AZLisme 2174031ae5 test(libSceLibreSsl): avoid pinning unfinished error reporting 2026-10-25 10:19:15 +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
Dean 70c72b6d5c Merge pull request #8988 from MarcZX10/codex/getrusage-pointer-safety
fix(libkernel): check getrusage output pointers
2026-10-25 15:15:28 +13: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
slopgobblercobbler 0e5478c6bf fix(libSceUserService): validate logged-in status for user accessibility and age queries 2026-10-25 02:58:24 +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