Commit Graph
20967 Commits
Author SHA1 Message Date
Get-fix f04d16d702 feat: PS4 NpTrophy, save data v1, NpWebApi offline and Limbo's other imports
NpTrophy reads the trophy count and icons from the title's trophy
package (names are encrypted and stay not implemented), PS4 v1 save data
calls wrap the native v2/v3 ones, and NpWebApi library contexts, handles
and push event filters work offline (service filters fail without a
signed-in user). libSceAjm is built from the libSceAjm.native sources
for PS4 titles. Limbo's (CUSA01664) remaining PS4 imports, including the
synchronous PS4 TUS calls and the Facebook dialog calls next to the
existing libraries, are exported as not implemented.
2026-10-22 00:35:09 +03:00
boykopovar a6dcea9279 Merge pull request #9137 from boykopovar/fix/funcs-abi-debt-2026-10-20
fix(libs): libs funcs abi debt 2026 10 20
Corrected signatures or behaviour of 1,702 existing exported functions across 96 libraries. Added 85 typed export wrappers. Unimplemented functions retain NotImplemented_nid_no_patch(__func__).
2026-10-22 00:32:11 +03:00
David 375b53d918 refactor(libkernel): move pselect into libkernel
The PS5 3.20 export lists have pselect in libkernel as well as
libkernel_sys, and on Windows a libkernel import never reaches
libkernel_sys. The implementation moves unchanged to
libkernel/Socket/src/Pselect.cpp, beside select.
2026-10-21 22:30:43 +01:00
David 642c0d56ac docs(debt): list the ktimer calls under Functional 2026-10-21 22:27:24 +01:00
David 7820a5353a refactor(libkernel): move the ktimer calls into libkernel
The PS5 3.20 export lists have ktimer_* in libkernel as well as
libkernel_sys, and on Windows a libkernel import never reaches
libkernel_sys. The implementation moves unchanged to
libkernel/Time/Ktimer.cpp.
2026-10-21 22:22:16 +01:00
Henryisdjfunkyho 476716546e fix(libkernel): preserve SCE timed sleep behavior 2026-10-21 14:21:16 -07:00
AlxcBTW 16259facef Merge branch 'main' into pr/robust-loads 2026-10-21 23:21:03 +02:00
AlxcBTW 05bd606cf7 docs(agc): drop the duplicate pending-results debt entry left by the merge 2026-10-21 23:17:12 +02:00
AlxcBTW cc603a918c Merge main into pr/unwatch-hook-exits-v2 2026-10-21 23:17:02 +02:00
Ondra97 d4ead3f6ae feat(libSceFreeType): expose raw SFNT table access 2026-10-21 23:16:43 +02:00
Henryisdjfunkyho bc0f1dc27e fix(libkernel): wake timed sleeps for thread cancellation 2026-10-21 14:11:23 -07:00
bluandClaude Opus 5.5 e22d810cfa fix(agc): widen a vertex format the device lacks to the buffer element's
A 16_16_16_16, 8_8_8_8 or 32_32_32_32 attribute that the shader reads
with fewer components is bound with the narrower Vulkan format, such as
R16G16B16_SFLOAT for three components of 16_16_16_16_FLOAT. A device
without vertex buffer support for that format (MADiSON on an RX 5600 XT
stops with "device does not support vertex format 90") now gets the next
wider form of the same buffer format it supports, up to the element's
own width: the shader input is unchanged and Vulkan discards the extra
components. The vertex copy and the zero buffer grow by the widened
bytes so the last vertex's read stays inside them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 14:01:42 -07:00
hamb3r f2a0dc0b74 test(shader): cover GetSrtResource and ReadConst deduplication in RVE 2026-10-22 00:01:19 +03:00
hamb3r baf01b724e perf(shader): mark GetSrtResource and ReadConst as recomputable in RVE 2026-10-22 00:01:13 +03:00
bluandClaude Opus 5.5 428e9cb5f3 fix(libc): size the num_get<char> vtable to the console's 17 slots
mazen320 read KfcTPbeaOqg from the console's libSceLibcInternal.sprx
symbol table: an object of 136 bytes, 17 pointer slots. Export that
size instead of the 15 derived from Dinkumware's crt.vc12 xlocnum, and
say in the debt entry that which two virtual functions are added is
not known.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 13:45:04 -07:00
Felipebmaitan 59d661a231 feat(libSceFreeType): implement advance queries 2026-10-21 17:36:29 -03:00
David a96cfda9e6 test(agc): check flat inputs of a triangle strip with the last provoking vertex 2026-10-22 00:36:08 +04:00
David 9733b046c6 Merge remote-tracking branch 'origin/main' into feat/agc-barycentric-rect-list 2026-10-22 00:32:57 +04:00
David e3c8b51ac2 docs(debt): list the GPUs the rect-list barycentric test passed on 2026-10-22 00:32:57 +04:00
Johan David 2e7494bbab test(agc): count only the lookup's own key scans in DccKeyPresync
RunOneKeyReadPerLookup compared the process-wide KeyWaitCounts().calls
around a dispatch. The repeated lookup sometimes refreshes the surface's
storage image, and its upload and ProvedKeys read the keys three more
times on the same thread, so the test failed in about one run of four.

cachedTexture now counts the key scans it makes on the calling thread
(SampledLookupKeyScans()), and the test compares that count.
2026-10-21 15:28:32 -05:00
Johan David 6de0666ce5 perf(agc): read a sampled texture's DCC keys once per lookup
cachedTexture read the keys of one range up to three times in a lookup
with nothing written in between: the ClearSingle check over a pending
image dropped its scan, the staged-clear test scanned even without a
pending image and kept nothing, and the final read scanned again. On
Windows the key ranges sit in compared host imports, so no proof stands
in for these scans; in PPSA31327's gameplay they took 12 % of the draw
committer's samples (#8068).

The lookup now keeps the keys it read until it does something that can
change them: the storage source it looks up and may refresh, the pending
source's Refresh, or a pending flush, which can publish unit shadows
over the surface even when it flushes no image. The staged-clear test
reads the keys only with a pending source. Which keys a lookup acts on
is unchanged; only repeated reads with nothing between them are gone.

DccKeyPresync checks that a dispatch's lookup with no key writer reads
the keys at most once under the GPU mutex; main reads them twice.
2026-10-21 15:28:32 -05:00
juanpimg 79a9a5f3c2 fix(agc): drop the stencil reference registrations that repeat an existing run
The agcTest loop already registers a no-argument ctest entry for every
executable built from tests/execution/*.cpp, and the no-argument path of
StencilRefExportUnused.cpp runs IndependentReference(false) and
IndependentReference(true), which is what --case keep and --case invert run.
A registration for either of them would only repeat an existing run.
2026-10-21 22:18:09 +02:00
Dragost 4c946a2c8d fix(libSceAvPlayer): gate audio clock rebase by drift threshold 2026-10-21 22:15:28 +02:00
juanpimg 20201779b8 test(agc): register the recorder's flag-scoped runs with ctest 2026-10-21 22:10:31 +02:00
MarcZX10 76178efc32 feat(libkernel_sys): implement sched_rr_get_interval 2026-10-21 19:56:32 +00:00
juanpimg c4de8926b1 fix(prx): drop the exports that #8747 declares 2026-10-21 21:54:45 +02:00
juanpimg 98973ad176 fix: give every technical-debt bullet its provenance and match the declaration spacing 2026-10-21 21:54:45 +02:00
juanpimg 6907d72070 fix(prx): drop the libSceNpUtility exports that #6977 declares
The overlap tool compares by NID and found fifteen libSceNpUtility exports
that the open pull request already declares; a text search for the library
name does not find it, because that pull request's title does not mention
the library.
2026-10-21 21:54:45 +02:00
juanpimg 18fb6760e1 feat(prx): declare the missing PS5 3.20 system exports in a third batch
AnyPS5 resolves a title's imports by NID, so a title that imports a system
function that no AnyPS5 library provides fails to load with an unresolved
import. This declares 266 such exports across 4 PS5 system libraries that
AnyPS5 implements but does not provide.

Each declaration calls NotImplemented_nid_no_patch and returns 0; none of
them implements the function. The signatures are unknown for all of them, so
they are declared without parameters, which resolves the import without
making an ABI claim. The technical-debt files record the limitation per
library.

The list is the intersection of the export table of the console's library
(function symbols only), the pinned aerolib names and the functions not yet
defined anywhere in the repo. Every name recomputes to its NID with
tools/nid_names.py.
2026-10-21 21:54:45 +02:00
Adrià 0c6a5bd593 Merge pull request #8519 from MarrasFederico/fix/agc-zero-stride-oob-select
fix(agc): follow RDNA 2's range checks for zero-stride vertex fetches
2026-10-21 21:54:30 +02:00
Adrià 415fd7136b Merge pull request #8991 from Tamalero/fix/shader-image-table-split-tsharp-halves
fix(recompiler): match image-table T# halves offset before and after readfirstlane
2026-10-21 21:53:27 +02:00
Adrià 6f9de57386 Merge pull request #9147 from xXPBSXx/fix/ult-rwlock-destroy-owner
fix(libSceUlt): keep the reader-writer lock state alive until sceUltReaderWriterLockDestroy has unlocked it
2026-10-21 21:48:11 +02:00
Adrià 7202f120d5 Merge pull request #8922 from MarcZX10/codex/8917-small-receive-window
test(net): bound Linux blocking-send receiver buffer
2026-10-21 21:38:39 +02:00
bluandClaude Opus 5.5 a946c469d6 Merge upstream main into feat/libc-num-get-objects
Resolves the conflict with #8867 in EntryStubTests.cpp: keep its two
kernel-variant tests and the BufferUtils include, and this branch's
libSceAmpr-to-libc fallback test, with all three called from main.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 12:33:11 -07:00
memob efa061cc83 Merge remote-tracking branch 'origin/main' into fix/recompiler-cache-line-endings
# Conflicts:
#	docs/dev/debt/shader.md
2026-10-21 15:32:50 -04:00
Dean 3594eee9f3 Merge pull request #6604 from notaxeltv/fix/recompiler-default-past-num-interp
fix(recompiler): fill missing pixel interpolators as DEFAULT
2026-10-22 08:31:15 +13:00
Dean 584c5a80fd Merge pull request #6718 from Zenodeon/stk-resource-performance-pr
perf(agc): avoid redundant texture-array CPU transfers
2026-10-22 08:30:01 +13:00
Adrià f0de89a506 Merge pull request #9026 from milescoviello/perf/depth-plane-unit-stores
perf(agc): store only the depth plane units a read overlaps
2026-10-21 21:29:26 +02:00
Adrià a849f2516e Merge pull request #9029 from xXPBSXx/test/call-trace-abort-race-lifetime
test(libc): keep the abort-race flag of the call trace test alive until the process aborts
2026-10-21 21:28:20 +02:00
Adrià 2457319ab9 Merge pull request #8918 from xXPBSXx/test/net-blocking-send-exhaustion-bound
test(libSceNet): allow more timed sends before the blocking-send test expects EAGAIN
2026-10-21 21:23:13 +02:00
Adrià 765d3d1b97 Merge pull request #8867 from MarcZX10/codex/kernel-variant-host-fallback
fix(relinker): resolve kernel variant imports via canonical kernel
2026-10-21 21:22:06 +02:00
Federico Marras b19b1c817e fix(libSceAvPlayer): refuse sceAvPlayerSetTrickSpeed without a source and sceAvPlayerSetAvailableBandwidth after one 2026-10-21 21:21:03 +02:00
thuanquangandClaude 0597011b10 docs(libSceNet): correct when sceNetAccept reads the inherited nonblocking mode
Co-Authored-By: Claude <[email protected]>
2026-10-22 02:19:57 +07:00
emirplus f6ae37bb3f fix(tools): handle errors cleanly and decode archive with utf-8-sig in test_web
Wrap test_web entrypoint in main(argv=None) with UTF-8 stream
reconfiguration using backslashreplace error handling.

Check existence of the archive module before reading, decode with
utf-8-sig to tolerate leading BOMs, validate the zip library URL match,
and catch subprocess and network errors cleanly via parser.error.
2026-10-21 22:19:52 +03:00
bluandClaude Opus 5.5 339d5c11d7 Merge upstream main into fix/libkernel-sys-link-follow-windows
Resolves the conflict with #8522 in link_nid_postfix: keep its ENOTDIR
return for a destination below a regular file and the Windows
symbolic-link follow after it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 12:13:24 -07:00
Adrià 1896871ba7 Merge pull request #8892 from harisibrar1/ci/conventions-current-base
ci(conventions): check pull requests with the current base branch rules
2026-10-21 21:12:55 +02:00
Adrià 3f23f2ae65 Merge pull request #8689 from MarcZX10/codex/reject-large-non-elf-early
fix(relinker): reject large non-ELF inputs before allocation
2026-10-21 21:12:48 +02:00
David 478947f71f feat(libkernel_sys): implement the POSIX aio calls 2026-10-21 20:07:41 +01:00
thuanquangandClaude ca8b3da6fb test(libSceAudioOut): check that an audio port whose buffer size overflows throws
Co-Authored-By: Claude <[email protected]>
2026-10-22 02:07:26 +07:00
MarcZX10 023139d12c feat(libSceAudioOut): support mastering InitEx flags 2026-10-21 19:05:18 +00:00