Commit Graph
20967 Commits
Author SHA1 Message Date
Adrià FranchandClaude Sonnet 5.5 2c228e738c fix(libkernel): include the public Api headers in the exec host test
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 14:13:43 +01:00
review 044e52a2f0 Merge commit 'refs/review/9669/head' into HEAD 2026-10-26 14:10:41 +01:00
TehshortbusandClaude Opus 5.5 ddab03671f chore(agc): log texture creation only with APS5_DEBUG_LOG, except the sRGB copy
GTA V (PPSA04264) creates textures throughout gameplay; the unconditional
creation lines and their per-mip lines were 68,694 of 69,889 lines (98 %)
of a 7-minute run's log. 81c67e1be put the storage image and
storage-viewed texture lines behind APS5_DEBUG_LOG; this does the same
for the guest-memory, repacked, block and depth copy paths. The sRGB copy
line stays unconditional: #7085 changes the lines on both sides of it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 06:08:12 -07:00
Dean Galvin 02011bb108 test(agc): age the idle import by frames in the address copy cap tests
RunAddressCopyCapTests expects the idle range to be evictable after the busy range's lookups, which an import used in the current frame no longer is, so the build copied 2 MiB past the 1 MiB cap and aborted. The test now advances two frames before the lookups; its assertions are unchanged.
2026-10-27 02:05:52 +13:00
Queuze 6c0bb5a343 test(net): use canonical public declarations 2026-10-26 14:03:15 +01:00
Queuze 4be44fade0 test(net): cover inline OOB accept inheritance 2026-10-26 14:03:15 +01:00
Queuze eebedb6427 feat(libSceNet): receive urgent TCP data inline 2026-10-26 14:03:15 +01:00
José AlissonandClaude Opus 5.5 fd2f9aca2f test(libSceLibcInternal): pass the spawn test's environment as UTF-8 on Windows
The child environment was copied from _environ, which holds the ANSI code
page, so any non-ASCII variable made posix_spawn reject it as invalid UTF-8.
Read the wide environment block and convert each entry to UTF-8 instead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:59:12 -03:00
StoneDC 4bf3c72487 fix(tools): preserve quoted CMake semicolon escapes 2026-10-26 20:54:36 +08:00
Dean Galvin 8e38bcf06d fix(agc): set the Windows runtime path for the gpu timing key test
agc_gpu_timing_key ran without the PATH entry for the libc DLL that the other recorder tests set, so it exited with STATUS_DLL_NOT_FOUND on Windows.
2026-10-27 01:54:36 +13:00
StoneDC 50f74d1dd8 fix(tools): reject oversized final release note bodies 2026-10-26 20:54:35 +08: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
roboterspinne a6c2e21b3c Merge remote-tracking branch 'upstream/main' into fix/relinker-dynstr-leading-nul 2026-10-26 13:52:19 +01: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
roboterspinne b93be6845b Merge remote-tracking branch 'upstream/main' into fix/relinker-executable-export-attributes 2026-10-26 13:48:29 +01:00
JJenkx 0424f48dd3 fix(tools): compare timed traces by requested window 2026-10-26 08:47:06 -04: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
roboterspinne 7c0b736c68 Merge remote-tracking branch 'upstream/main' into fix/relinker-null-symbol-entry 2026-10-26 13:44:10 +01:00
WallisSkillandClaude Opus 5.5 273c8c2563 test(libkernel): prove the alertable wait entry in guest_raise_leaves_host_code
The test declares the libkernel exports it calls through the public API
header instead of local declarations.

The alertable case published its round before calling WaitForSingleObjectEx,
so a raise could land before the wait and be counted as delivered inside it.
Each round now first holds the target at that boundary in guest code and
raises there: that delivery must happen before the wait (counted apart, ten
of ten). The second raise is sent only once the target's context shows it
inside ntdll, that is in the wait, and its handler must run after the wait
is released.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:43:01 +07:00
WallisSkillandClaude Opus 5.5 8aafe2440d fix(libkernel): take a return breakpoint hit that a disarm cleared under it
A raise delivered some other way (the deliverer sampled the target in guest
code and redirected it) disarms the return breakpoint by clearing DR0 and
DR7 with SetThreadContext. When the target reaches the armed return address
at the same moment, the debug exception is already raised but the context
Windows hands to the handler carries the cleared registers: DR0, DR6 and DR7
are 0. ReturnBreakHandler required DR6.B0, so it declined, and the unhandled
EXCEPTION_SINGLE_STEP ended the process with 0x80000004. Under parallel load
guest_raise_in_host_code failed this way 18 times in 900 runs; a diagnostic
in the declining branch showed every failure at an address armed earlier on
that same thread, with no live return break, DR0 = DR6 = DR7 = 0 and TF
clear.

The ring of armed addresses now records the thread with each address. A
single-step that has TF clear, no breakpoint hit in DR6 and no breakpoint
enabled in DR7, at an address this library armed on the faulting thread, is
taken as that disarmed return breakpoint and continues; any other
single-step is left to the next handler. A DR0 hit is likewise matched
against the addresses armed on the faulting thread.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 19:43:00 +07:00
Maz 56cc227d6b fix(libc): clean duplicate locale symbols after rebase onto main 2026-10-26 16:42:48 +04:00
Maz 6bcafa52e0 fix(libc): declare shared vtable object with C linkage 2026-10-26 16:42:43 +04:00
Maz 13f46081e5 fix(libc): share num_put vtable slot count with GuestLocale 2026-10-26 16:42:43 +04:00
Maz 31d165db15 fix(libc): share num_put vtable slot count with GuestLocale 2026-10-26 16:42:43 +04:00
Maz 21dba37fe4 fix(libc): keep a single 14-slot num_put vtable 2026-10-26 16:42:43 +04:00
Maz 3e4b36ac6a fix(libc): restore separate GuestLocale vtable helpers 2026-10-26 16:42:43 +04:00
Maz c4b6d4d43b fix(libc): drop rebase conflict markers from LocaleSupport 2026-10-26 16:42:43 +04: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
Adrià Franch 8423e433f4 fix: drop duplicate jxrlib registration after rebase 2026-10-26 13:35:04 +01:00
UnhealthyKraken 88b16f216d fix(libSceJxr): clear successful lookup record padding 2026-10-26 13:34:58 +01:00
UnhealthyKraken 413e876e4d test(libSceJxr): check successful lookup padding 2026-10-26 13:34:58 +01:00
Kraken e40ef5ecdc fix(libSceJxr): provide typed portable native declarations 2026-10-26 13:34:58 +01:00
Kraken a1ec5c3a10 test(libSceJxr): build patched kernel for lookup tests 2026-10-26 13:34:52 +01:00
Kraken fab3168576 build: isolate JXR dependency registration 2026-10-26 13:34:51 +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 ef0afbb731 test(libc): make nextafter environment coverage portable 2026-10-26 08:24:29 -04:00
JJenkx f5f4f7fbf8 fix(libc): preserve nextafter floating-point environment behavior 2026-10-26 08:24:29 -04:00
SAKIBUL HUDA ONNAY 1fd8cb28ce docs: note the Windows path length limit on build files 2026-10-26 18:21:30 +06: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
EmanueleandSeaSunPT 44c6919b64 test(agc): expect the ring slice offset for the replaced moved-word descriptor
Co-authored-by: SeaSunPT <[email protected]>
2026-10-26 13:21:11 +01:00
orezraeyandClaude Opus 5.5 db07b6737d Merge main into fix/libkernel-sysctl-system-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:20:00 -03:00
PrivacyOnion 8943b9476d test(libScePad): cover special handle vibration mode in GuestPadVibrationMode 2026-10-26 13:19:07 +01:00
xXPBSXx 10624a6ad1 Merge main (5e90e7569d) into docs/debt-net-getsockopt-title 2026-10-26 13:18:13 +01:00
PrivacyOnion 62d194ed06 test(libSceRandom): cover null buffer at and above maximum size in sceRandomGetRandomNumber 2026-10-26 13:16:19 +01:00