Commit Graph
20967 Commits
Author SHA1 Message Date
al3w0f205 fb74715bc6 test(libSceLoginDialog): cover null parameter and result argument validation 2026-10-25 22:55:29 -05:00
al3w0f205 2e9ca11a5f test(libSceSocialScreenDialog): cover null argument handling before initialization 2026-10-25 22:55:18 -05:00
al3w0f205 203aa97896 test(libSceSigninDialog): cover argument validation order across dialog states 2026-10-25 22:55:06 -05:00
al3w0f205 cacaeda99a test(libSceIme): cover null checks on unopened panel in GuestImeParameters 2026-10-25 22:54:56 -05:00
al3w0f205 f037f60670 test(libSceAudio3d): cover negative clamping in Mixer 2026-10-25 22:54:44 -05:00
Dean 943ea8acb2 Merge pull request #9957 from mrfelek/fix/shader-runtime-buffer-presence
fix(shader): read a buffer V#'s presence at run time instead of specializing it
2026-10-26 16:54:34 +13:00
al3w0f205 60aabf1c29 test(libSceVrServiceDialog): cover null argument handling before initialization 2026-10-25 22:54:33 -05:00
al3w0f205 9ed76cae81 test(libSceAudio3d): cover optional available pointer in sceAudio3dPortGetQueueLevel 2026-10-25 22:54:11 -05:00
al3w0f205 ee5b94745e test(libSceIme): cover unsupported type validation in FilterText 2026-10-25 22:54:00 -05:00
al3w0f205 1678f3eb11 test(libSceSaveData.native): cover convert progress and ipmi size queries 2026-10-25 22:53:40 -05:00
al3w0f205 bcf57896c3 test(libScePad): cover vibration mode argument range validation 2026-10-25 22:53:29 -05:00
orezraeyandClaude Opus 5.5 3a2638ada6 docs(libkernel): note that pthread_create_name_np shares the long-name handle path
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 00:37:49 -03:00
al3w0f205 67b16acd53 test(libSceHmd): cover distortion work memory query aliases 2026-10-25 22:37:19 -05:00
Dean 33ae5a3146 Merge pull request #9765 from DavidSamir/test/libc-dinkumware-atomics-sizes
test(libc): cover the remaining sizes of the Dinkumware typed atomics
2026-10-26 16:32:05 +13:00
Dean 73ad397dba Merge pull request #10793 from slopgobblercobbler/feat/libkernel-freebsd-posix-compliance
feat(libkernel): complete FreeBSD 11.4 errno parity (ENOTRECOVERABLE and EOWNERDEAD)
2026-10-26 16:31:30 +13:00
Dean be9effaeb0 Merge pull request #10278 from al3w0f205/test/playgo-speed-eta-handle-validation
test(libScePlayGo): cover install speed, eta, and prefetch handle validation
2026-10-26 16:31:04 +13:00
Dean 8cdcd6de0e Merge pull request #8457 from vaibhavindalia/fix/fchown-guest-permissions
fix(libkernel_sys): validate descriptor first in fchown
2026-10-26 16:30:35 +13:00
Dean e3657de5e4 Merge pull request #10402 from roboterspinne/fix/relinker-linux-load-bounds
fix(relinker): require the Linux entry, relocation offsets and DT_PLTGOT in PT_LOAD memory
2026-10-26 16:30:06 +13:00
UnhealthyKraken 1248d841c7 test(freetype): build matching patched PFR runtime dependencies 2026-10-26 03:27:19 +00:00
Dean b998ca83fd Merge pull request #10284 from al3w0f205/test/nptrophy-icon-and-handle-validation
test(libSceNpTrophy): cover icon size pointer checks and invalid handle validation
2026-10-26 16:25:25 +13:00
Dean 034b60a2d4 Merge pull request #10239 from voidlakhan/fix/npgameintent-invalid-argument-error
fix(libSceNpGameIntent): return errors for invalid arguments and uninitialized calls
2026-10-26 16:23:39 +13:00
Dean 0ce4b82c2d Merge pull request #10243 from orezraey/fix/libkernel-rtld-thread-atexit-measured-ps5
fix(libkernel): answer the thread atexit references as measured on a PS5
2026-10-26 16:23:13 +13:00
Dean f822d74d42 Merge pull request #10281 from al3w0f205/test/savedata-sync-memory-null-parameter
test(libSceSaveData.native): cover null parameter validation in sceSaveDataSyncSaveDataMemory
2026-10-26 16:22:35 +13:00
Dean 449c745bd7 Merge pull request #10298 from al3w0f205/test/convert-keycode-address-and-type-validation
test(libSceConvertKeycode): cover null address and invalid keyboard type rejection
2026-10-26 16:22:09 +13:00
UnhealthyKraken abee73c481 fix(freetype): return invalid argument for null PFR faces 2026-10-26 03:21:51 +00:00
frankea 37857ceb29 fix(agc): write the console's DRAW_INDEX_MULTI_INST packet for sceAgcDcbDrawIndexMultiInstanced
On a PS5 the builder writes 15 dwords: a tag write of 0xc6000006, opcode 0x3a with its arguments, initiator 0x80 whatever the modifier, and a closing tag write; GetSize returns 60. AnyPS5 wrote NUM_INSTANCES and DRAW_INDEX_2 under argument meanings nothing confirms. The driver refuses 0x3a, whose field meanings are not known, and names it DRAW_INDEX_MULTI_INST as Linux's nvd.h does.
2026-10-25 23:14:39 -04:00
Bipin 04ab37b35d fix(core): apply the measured opus encoder console behaviour
Create, CreateEx, Destroy, GetSize and Initialize follow the firmware
13.42 export measurements reported on the pull request: bases 0x813F0000
and 0x81770000, the pointer validated first (+0x01), then sample rate
(+0x10/+0x0F), channels (+0x0D/+0x0C) and application (+0x11/+0x10), the
required caller application 2051 for CELT and 2048 for SILK, the 0x17B2
state marker at +0xCC/+0xE8 behind Destroy (+0x16/+0x15) and fixed
728/752-byte GetSize values; a successful create zero-fills the console
state size. The internal encoder keeps the restricted celt and silk
applications whose packet identity the tests compare, float included.

The tests declare entry points through the libraries' Api.hpp instead of
local prototypes, cast states to the opaque encoder types, drop the silk
ctl/cancel/priority/timeout and live-encoder Terminate throw pins and
compare both float sections against opus_encode_float. Ctl,
Encode*WithPriority and the silk cancel and timeout entry points keep
their throwing stubs, and the debt notes carry the measurement with the
remaining gaps.
2026-10-26 08:41:34 +05:30
UnhealthyKraken 085c71dd36 test(freetype): identify null-face baseline errors 2026-10-26 03:06:36 +00:00
UnhealthyKraken 871fb85d5b test(freetype): regress PFR null-face errors and import isolation 2026-10-26 03:04:27 +00:00
Rookie 9a914b76aa fix(libSceCesCs): map the GB 18030 profiles as the console does 2026-10-26 03:02:37 +00:00
Karan Shrivastava 0f45390a92 fix(relinker): agree on the syscall number between the two constant-load paths 2026-10-25 23:00:48 -04:00
UnhealthyKraken 9a7affe788 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-26 02:57:52 +00:00
xXPBSXxandClaude Sonnet 5.5 950d9401f1 fix(libc): read the stream status flags atomically when keeping a directory read error
PublishStatus updates FileStream's guest status word with atomic operations
from the thread that just read, while KeepDirectoryReadError read it with a
plain load, a data race that ThreadSanitizer reports in guest_gets when two
threads read the same stream.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 03:53:38 +01:00
Dean 14eb2cda22 Merge pull request #10640 from rocklouis055/feat/nputility-lookup-async
feat(libSceNpUtility): implement lookup async requests, waits and timeouts
2026-10-26 15:43:03 +13:00
orezraeyandClaude Opus 5.5 053ca30db4 docs(libkernel): shorten the socket option bits debt entry under 1000 characters
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 23:40:28 -03:00
frankea c5ab2f5b90 fix(agc): return 0 from the wait and context state GetSize calls for an invalid argument
On a PS5, sceAgcAcbWaitOnAddressGetSize and sceAgcDcbWaitOnAddressGetSize return 56 for size 0, 64 for size 1 and 0 for any other 32-bit value, and sceAgcDcbContextStateOpGetSize returns 0 for an operation above 3. The ACB wait size takes a 32-bit argument instead of a byte.
2026-10-25 22:38:48 -04:00
Dean 9f386f3a29 Merge pull request #9157 from shanu337/videoout-color-space-wrappers
refactor(libSceVideoOut): consolidate color space wrappers and add Flip tests
2026-10-26 15:32:59 +13:00
Dean 27905e1dfc Merge pull request #9888 from m335671/fix/dispatch-ahead-adopt-check
fix(agc): re-check a dispatch resolved ahead against memory before adopting it
2026-10-26 15:31:28 +13:00
orezraeyandClaude Opus 5.5 85a1bf2b31 Merge main into fix/libkernel-dupfd-cloexec-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 23:27:02 -03:00
JJenkxandClaude Opus 5.5 ca1b62a3bd fix(libc): compute tanh with FreeBSD msun's algorithm, as titles' libc.prx does
tanh returned the host's tanh, whose last bit differs from the titles' copy
on Windows. The titles' copy is FreeBSD msun's s_tanh.c over msun's expm1,
and it sets no errno. tanh now computes that algorithm over this file's
Expm1.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:26:16 -04:00
JJenkxandClaude Opus 5.5 f91f0450b5 fix(libc): quiet signalling NaNs in trunc, ceil, floor and nearbyint as titles' libc.prx does
trunc, ceil, floor and nearbyint and their float forms returned the
host's result, which on Windows passes a signalling NaN through
unchanged. The titles' copies follow FreeBSD msun, which returns x + x
for a NaN, so the NaN comes back quieted with its payload and sign; these
functions now do the same before calling the host for other arguments.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:26:12 -04:00
orezraeyandClaude Opus 5.5 0850552608 Merge main into docs/libkernel-flexible-flag-8000-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 23:25:51 -03:00
JJenkxandClaude Opus 5.5 6d9fd5d1e7 fix(libc): store EDOM from asinf where titles' libc.prx does
asinf left errno unchanged for |x| > 1, the infinities and NaN, following
included, stores EDOM there and leaves it alone for |x| <= 1; asinf now
does the same, and the test expects it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:18:51 -04:00
JJenkxandClaude Opus 5.5 ebc8bcc106 fix(libc): compute asinf with FreeBSD msun's algorithm, as titles' libc.prx does
asinf returned the host asin, so its last bit depended on the host: on
Windows it differs from the libc.prx that titles ship on 5,413,834 of the
floats in (-1, 1). That libc.prx is msun's e_asinf.c, which gives the same
bits as PPSA07923's and PPSA05916's copies for all 2^32 arguments. errno
is still left unchanged for |x| > 1 and NaN.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:18:51 -04:00
JJenkxandClaude Opus 5.5 035d9c0821 fix(libc): compute cbrt with FreeBSD msun's algorithm, as titles' libc.prx does
cbrt returned the host's cbrt, whose last bit differs from the titles' copy
on Windows on 99,933,841 of 320 million random arguments, about 31%. The
titles' copy is FreeBSD msun's s_cbrt.c, and cbrt now computes it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:18:40 -04:00
JJenkxandClaude Opus 5.5 5d347949b0 fix(libc): accept signed char values in the ctype functions as titles' libc.prx does
The ctype functions threw std::invalid_argument for any value below EOF,
so a title passing a plain char with its high bit set, such as a UTF-8
byte, aborted. The libc.prx bundled with titles accepts -128 to -2: each
class function returns 0 for them, as for 128 to 255 in the C locale,
and toupper and tolower return them unchanged. Values outside -128 to
255 still throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:16:45 -04:00
JJenkx ad111b3ce1 fix(libc): preserve acoshf domain errno and exception flags 2026-10-25 22:07:34 -04:00
JJenkx 60f3dcc5db test(libc): check acoshf domain errno and exception flags 2026-10-25 22:06:00 -04:00
GruzzberryandClaude Sonnet 5.5 4ccb760d12 fix(libc): realpath resolves symbolic links like FreeBSD
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 01:59:58 +00:00
frankea be69f66349 fix(agc): write tag markers with the console's header flags
sceAgcDcbWaitRegMem and sceAgcDcbDrawIndirectMulti now write their 0x342 tag writes with header flag bit 2 and sceAgcAcbWaitRegMem with no flags, as libSceAgc on a PS5 does, instead of the predicate bit. ValidateWait accepts both forms and Pm4::IsTagMarker no longer depends on the header flags.
2026-10-25 21:58:54 -04:00