Commit Graph
7981 Commits
Author SHA1 Message Date
Adrià e38fcb00dc Merge pull request #9989 from milescoviello/fix/result-memo-budget
fix(shader): bound the bytes the recompiler's result memos hold
2026-10-26 15:23:48 +01:00
Adrià 8a89c91cc2 Merge pull request #10123 from MD5Visual/docs/fios2-prototype-evidence
docs(debt): note two reimplementations agree on four libSceFios2 date and handle prototypes
2026-10-26 15:22:46 +01:00
StoneDC 2bab8f29da docs(libSceSystemService): clarify activation technical debt 2026-10-26 22:22:34 +08:00
Adrià eb4e4019a6 Merge pull request #9975 from StoneDC/feat/ult-get-info
feat(libSceUlt): implement status query exports
2026-10-26 15:22:26 +01:00
Adrià fa77c2b4e5 Merge pull request #10121 from xXPBSXx/docs/debt-kernel-ftruncate-title
docs(debt): note how a title calls sceKernelFtruncate
2026-10-26 15:21:22 +01:00
Adrià f89559b472 Merge pull request #10119 from xXPBSXx/docs/debt-pad-deadbandstate-title
docs(debt): note how a title calls scePadSetAngularVelocityDeadbandState
2026-10-26 15:19:42 +01:00
Adrià 32b9227eec Merge pull request #10117 from xXPBSXx/docs/debt-sysmodule-isloaded-title
docs(debt): note how a title uses sceSysmoduleIsLoaded
2026-10-26 15:17:36 +01:00
Adrià 5d183c33d3 Merge pull request #10115 from xXPBSXx/docs/debt-jpegdec-decode-title
docs(debt): note how a title calls sceJpegDecDecode
2026-10-26 15:16:14 +01:00
Adrià f616a1397f Merge pull request #10109 from xXPBSXx/docs/debt-hmd2-open-initialize-title
docs(debt): note how a title calls sceHmd2Open and sceHmd2Initialize
2026-10-26 15:12:40 +01:00
Adrià 51f5c57dd9 Merge pull request #10097 from xXPBSXx/docs/debt-net-getsockopt-title
docs(debt): note how a title uses the sceNetGetsockopt error value
2026-10-26 15:08:20 +01:00
orezraeyandClaude Opus 5.5 60b9e7f43f Merge main into fix/libkernel-posix-thread-attr-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 11:07:59 -03:00
StoneDC 3198588572 fix(libSceUlt): validate status outputs against firmware observations 2026-10-26 22:06:56 +08:00
StoneDC 08fd4fe766 fix(libSceUlt): separate blocked queue pushers from poppers
sceUltGetQueueInfo reported every blocked queue thread as a waiting popper because both directions incremented one counter. Track the two wait classes in separate fields and fill both query outputs, copy one waiter record per blocked thread, and cover full-queue and empty-queue waits with a new queue-waiters test. sceUltGetUlthreadRuntimeInfo now throws when a caller asks for worker thread handles, since this runtime starts no worker threads, and the debt entry records the remaining limitations.
2026-10-26 22:06:56 +08:00
StoneDC 3003984952 feat(libSceUlt): implement status query exports 2026-10-26 22:06:56 +08:00
Adrià 99b8446cbc Merge pull request #10095 from xXPBSXx/docs/debt-savedata-dirnamesearch2-title
docs(debt): note the result structure a title passes to sceSaveDataDirNameSearch2
2026-10-26 15:06:16 +01:00
Adrià 84e91df418 Merge pull request #10093 from xXPBSXx/docs/debt-audioin-asyncopen-title
docs(debt): note the arguments a title passes to sceAudioInAsyncOpen
2026-10-26 15:04:10 +01:00
Adrià 7bcd4b92a1 Merge pull request #10091 from xXPBSXx/docs/debt-videodec2-createdecoder-title
docs(debt): note how a title calls sceVideodec2CreateDecoder
2026-10-26 15:02:45 +01:00
Adrià 7124e8f80d Merge pull request #9745 from KernelPanicNT/feat/libressl-ssleay-version
feat(libSceLibreSsl): return the measured version from SSLeay
2026-10-26 15:02:23 +01:00
Adrià 32b7331c44 Merge pull request #10089 from xXPBSXx/docs/debt-coredump-getstopinfocpu-title
docs(debt): note how a title calls the sceCoredump stop-info, attach and user-data functions
2026-10-26 15:01:18 +01:00
Adrià 263fbcd2d3 Merge pull request #10087 from xXPBSXx/docs/debt-npauth-title-counts
docs(debt): correct the poll and buffer counts in the sceNpAuth title notes
2026-10-26 15:00:05 +01:00
Adrià 1992ec073f Merge pull request #10037 from xXPBSXx/docs/debt-ngs2-rackgetinfo-title
docs(debt): note the buffer size a title passes to sceNgs2RackGetInfo
2026-10-26 14:59:58 +01:00
Adrià 4c394fdc00 Merge pull request #10066 from xXPBSXx/docs-agc-label-wait-amd-data
docs(agc): add AMD data to the queue 0x20 label wait entry
2026-10-26 14:57:54 +01:00
Adrià 3ead2d7251 Merge pull request #9976 from StoneDC/feat/discid-validation
feat(libSceDiscId): throw for unsupported exports
2026-10-26 14:55:48 +01:00
harisibrar1 c51456ab71 Merge remote-tracking branch 'origin/main' into feat/libressl-asn1-string-to-utf8
# Conflicts:
#	docs/dev/debt/libSceLibreSsl.md
2026-10-26 09:53:00 -04:00
KernelPanicNT 601226da9c feat(libSceLibreSsl): return the measured version from SSLeay
SSLeay() returns 0x20000000, the value measured on a PS5 with firmware
13.40 and the SSLEAY_VERSION_NUMBER of LibreSSL 2.5.4, which the module
is. The guest_libressl_version test checks it.
2026-10-26 14:46:30 +01:00
Adrià 9656d366be Merge pull request #9962 from kallmek3nny/feat/libkernel-pthread-cond-setname-np
feat(libkernel): add pthread_cond_setname_np
2026-10-26 14:42:29 +01:00
StoneDC 2d662ce6fd fix(libSceDiscId): keep unsupported exports explicit
CONTRIBUTING.md permits silent stubs only when unblocking a title UI path and when backed by title evidence. Since no title ID evidence demonstrates that a constant no-disc return unblocks a UI path, throw NotImplemented_nid_no_patch from sceDiscIdGet and sceDiscIdGet2 without touching caller memory. Tests assert both calls throw on null and non-null outputs and across flags values while leaving caller buffers untouched, and the debt entry records the unresolved hardware contract.
2026-10-26 14:35:14 +01:00
StoneDC 85d158234c fix(libSceDiscId): report no disc without assuming an argument contract
The previous revision rejected a null output with 0x80D50001 and any nonzero flag with 0x80D50002, but no SDK or console evidence establishes those validation rules, the error codes or their precedence, and the flag argument may be a bitfield. Report SCE_DISC_ID_ERROR_NO_DISC for every pointer and flag value without touching the output, and record the unverified contract in the debt entry.
2026-10-26 14:35:14 +01:00
StoneDC 2f02e519c3 feat(libSceDiscId): validate arguments and return no disc 2026-10-26 14:35:13 +01:00
JJenkx c48ed84d47 fix(libc): preserve modf decomposition and floating-point status 2026-10-26 09:34:58 -04:00
Dean bf77a9e9cb Merge pull request #10742 from 00xDisaster/feat/libc-lcosh
feat(libc): implement _LCosh and _LSinh
2026-10-27 02:28:15 +13:00
Adrià 0e5d5a5409 Merge pull request #9543 from Queuse/codex/net-oob-inline
feat(libSceNet): receive urgent TCP data inline
2026-10-26 14:25:46 +01:00
Adrià 1061954c7e Merge pull request #8520 from qpavyros/codex/app-archive-directories
feat(libkernel): enumerate archived app directories
2026-10-26 14:23:39 +01:00
akkadbakkad89 f9afa3ad73 feat(prx): declare exports for 3 inventory-covered NP libraries 2026-10-26 13:15:02 +00:00
review 044e52a2f0 Merge commit 'refs/review/9669/head' into HEAD 2026-10-26 14:10:41 +01:00
Queuze eebedb6427 feat(libSceNet): receive urgent TCP data inline 2026-10-26 14:03:15 +01:00
JJenkxandClaude Opus 5.5 afa58432f3 fix(libc): format %La like titles' libc.prx does
A long double %La went to the host, which on Windows (MinGW) prints the
64-bit significand with its integer bit as the leading digit:
0xc.ccccccccccccccdp-7 for 0.1L. The libc.prx that titles ship
normalises it like a double, with a leading 1 and the remaining 63 bits
as 16 hexadecimal digits, 0x1.999999999999999ap-4, and rounds a shorter
precision half up with the carry kept in the leading digit. Share
HexFloat's digit and rounding code between double and long double and
use it for finite long double %a and %A in the narrow and wide families.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 08:52:35 -04:00
Adrià 035ac96edd Merge pull request #9940 from EagleBearerYS/fix/agc-compared-import-initial-dcc
fix(agc): accept a compared host import for an initial multisampled DCC import
2026-10-26 13:51:02 +01:00
Adrià 7992f03293 Merge pull request #9703 from frankea/perf/structurizer-construct-walk
refactor(shader): walk each construct when checking the structured constructs
2026-10-26 13:48:49 +01:00
Yunus Shaikh a5128c9be7 fix(libScePad): follow the module's light bar resets, handle checks and forced vibration
BunnyFl ran firmware 13.42's libScePad natively over a slot table he
wrote, and oneandonlydean asked for the four calls to follow it.

scePadIsValidHandle matches the handle's open port type against the
argument, and answers false before scePadInit.
scePadResetLightBarAllByPortType returns INVALID_ARG for any type but 0,
1 and 2 before the initialisation check, and otherwise resets each open
handle of that type as scePadResetLightBar resets it;
scePadResetLightBarAll is type 0. So a standard port with no open handle
keeps its light bar, and types 3, 4 and 16 no longer throw.

scePadSetVibrationForce returns NOT_INITIALIZED before scePadInit, then
INVALID_ARG for a null parameter, without looking the handle up. There
is no pad driver here: a special handle returns PAD_OK and a standard
handle sets its port's motors, open or not. A handle with no pad port
throws, as the driver's answer for it is not measured.

The tests drop the closed and unknown handle checks that no longer hold
and check the measured answers; the debt entries cite the run and say
which parts are this model's.
2026-10-26 05:46:40 -07:00
0xcrstnandClaude Opus 5.5 ec06ba2973 fix(agc): read back descriptor faults of shaders that also use image tables
A shader with an image table map read its fault buffer back only when a
table record was poisoned, an SRT read was poisoned, it had window lane
guards or the loop guard was on. A DescriptorFault only set the fault
buffer, so with a valid table and no copied write nothing ran the fault
check, and a lane that took a folded descriptor web path or selected an
undefined arm read arm 0 or zeros with no report.

The compiled artifact now counts its DescriptorFault instructions
(descriptorFaults, stored in the shader disk cache, format 48), and the
readback gate requests the fault check when it is nonzero. The result a
capture materializes copies the count, and also windowLaneGuards, which
that copy had dropped, so the gate's window lane guard condition never
saw it. sizeof(CompiledShaderArtifact) is 288 and sizeof(RecompileResult)
552 with the new field.

agc_driver_descriptor_web_faults adds a wave32 shader that reads an image
table and then the descriptor web, storing only to LDS so no copied write
forces completion: it binds an image table and no BDA address table, a
valid arm and an unselected undefined arm stay clean, the folded path and
a selected undefined arm fault at the read, and nothing faults with EXEC
empty. Without the gate change the folded case does not fault.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 14:46:11 +02:00
Maz e8aef0f1d8 fix(libc): size the num_put facet vtable to 112 bytes
Titles that import the vtable as data expect fourteen slots (st_size 112 on
PPSA16833 libc.prx); twelve left the object short.
2026-10-26 16:42:42 +04:00
Federico Marras 735b905120 Merge remote-tracking branch 'origin/main' into feat/ngs2-parse-format-codes 2026-10-26 13:40:23 +01:00
Adrià 7b415520b6 Merge pull request #9871 from ntamas94/fix/ps4-nptrophy-abort-handle
feat(libSceNpTrophy): add sceNpTrophyAbortHandle
2026-10-26 13:38:34 +01:00
Yunus Shaikh 56047ebb97 fix(libSceBluetoothHid): refuse a null parameter block as the module does
BunnyFl ran firmware 13.42's libSceBluetoothHid natively. A null block
given to sceBluetoothHidParamInitialize returns 0x81540001, so it now
returns InvalidArgument instead of throwing, and the test checks that
answer. The run also shows sceBluetoothHidRegisterCallback reading the
event thread's priority and affinity through the stored value, which
makes it the BluetoothHidThreadParam pointer the signature declares;
the debt entry cites the run and its limits.
2026-10-26 05:35:55 -07:00
UnhealthyKraken 88b16f216d fix(libSceJxr): clear successful lookup record padding 2026-10-26 13:34:58 +01:00
Kraken 5aa1f6fd44 feat(libSceJxr): implement pixel format lookup 2026-10-26 13:34:43 +01:00
Adrià 2cce8bc51d Merge pull request #9927 from JJenkx/windows/wprintf-float-console
fix(libc): format wide %a, %e, %f and %g with the narrow console rules
2026-10-26 13:25:22 +01:00
JJenkx f5f4f7fbf8 fix(libc): preserve nextafter floating-point environment behavior 2026-10-26 08:24:29 -04:00
Adrià 2db37cf1de Merge pull request #9468 from mazen320/feat/libc-num-get-w-vtable
feat(libc): export the wide num_get facet vtable as data
2026-10-26 13:21:19 +01:00