Commit Graph
7963 Commits
Author SHA1 Message Date
Yunus Shaikh 780aa44726 fix(libkernel): block every word of a signal handler's mask while it runs
main now keeps all four words of the guest signal mask. A handler's sa_mask above signal 32 is added too, and SIGKILL and SIGSTOP stay unblocked, as sigprocmask leaves them.
2026-10-21 15:52:34 -07:00
Yunus Shaikh e607ba1b41 Merge main into fix/libkernel-signal-handler-mask 2026-10-21 15:52:33 -07:00
Yunus Shaikh ef49574f5a Merge main into fix/libscenet-inet-text-rules 2026-10-21 15:49:51 -07:00
qpavyros f9cd3ba1ce chore: merge current main into named shared memory 2026-10-22 01:44:14 +03:00
JJenkxandClaude Opus 5.5 7bfcc9d07a fix(audio-propagation): accept the public render output formats
sceAudioPropagationSourceRender accepted only format 2. The RenderInfo
word at +0x28 is SharpProspero's AudioPropagationOutputFormat: 0, 1 and 2
are first- to third-order Ambisonics (4, 9 and 16 float channels), 4 and 5
are 8 interleaved float channels. SAROS (PPSA07631) renders format 0.
Other values still throw, and an output that is not a whole number of
frames is rejected. Based on db91769497 from the JJenkx fork.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 18:33:49 -04:00
JJenkx f066bd61b3 feat(audio-propagation): track source-owned configurable path slots 2026-10-21 18:33:20 -04:00
JJenkxandClaude Opus 5.5 0bf6a77e8f fix(libScePlayGo): answer ids past the listed scenario chunks as unlisted
A dump with sce_sys/playgo-scenario.json and no chunk table lists chunks 0
to 999 through scePlayGoGetChunkId, but every other id was still reported as
installed. Destruction AllStars (PPSA02630) asks for chunk ids from 0 up until
one is rejected; because no id ever was, the walk wrapped the 16-bit id and
grew an array of 16-byte entries until a 5.18 GiB allocation failed about one
second into startup ("Ran out of memory allocating 5565054976 bytes").

An id outside the listed 0 to 999 is now answered like an unlisted id of a
dump without any playgo file: APS5_PLAYGO_UNLISTED_CHUNKS=installed or
=absent answers it, and without an answer the call throws naming the missing
chunk table.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 18:26:40 -04:00
Yunus Shaikh cfda40433c Merge main into fix/libkernel-udp-unreachable-port 2026-10-21 15:15:13 -07:00
JAB-devandClaude Sonnet 5.5 5e39fbda86 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/audiopropagation-remove-inline-helpers
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 00:04:19 +02:00
JAB-devandClaude Sonnet 5.5 43a76fcdb5 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/audioout2-speaker-info-errors
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 00:02:33 +02:00
hugodearaujo 25b7991c6a fix(netctl): start the library initialized, as titles find it
Titles register and check NetCtl callbacks without importing
sceNetCtlInit: libSceNetCtl is an internal sysmodule the system has
started before the title runs. 007 First Light traps at start-up when
sceNetCtlRegisterCallback answers NOT_INITIALIZED.
2026-10-21 18:56:52 -03:00
bluandClaude Opus 5.5 6287af9657 docs(libc): name the num_get<char> vtable's slots from the console
mazen320 mapped the relocated slots of KfcTPbeaOqg in the console's
libSceLibcInternal: offset-to-top, typeinfo, the two destructors,
locale::facet::_Incref and _Decref, and the eleven do_get. The debt
entry now says so instead of leaving the two extra entries unknown.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 14:56:43 -07:00
Yunus Shaikh 7d6c475b95 fix(agc): an address-based build evicts idle imports instead of copying past the cap
AcquireRegistered imports every registered GPU range whole without
eviction, so a range the import budget refuses and no mirror serves is
copied on every build, and copies past APS5_ADDRESS_COPY_MAX_MIB (64 MiB
by default) abort the process. Resident Evil Village (PPSA01556) aborts
this way on a 768 MiB heap 8 MiB over the budget.

The pass now retries such a range's import with eviction when, and only
when, copying it would take the build's copies past the cap, that is when
the build would abort otherwise. Imports the build already looked up or
made count as held (buildFloor) and are never evicted; the retire moves
the import epoch, which Upload and the address-space cache already honour,
and a retired import lives through the hold. Every other build still
imports without eviction, so the set of imported ranges stays as stable
across builds as before. A rate-limited [gpu] line reports such an import.

The copy reason of a heap now names what refused it (an import over the
host import budget, a heap not fully write-watched, a refused heap mirror)
instead of "outside the write-watched arena" for every heap.
2026-10-21 21:55:04 +00:00
MarcZX10 173603428d feat(libSceFontFt): report TrueType GX support 2026-10-21 21:44:31 +00:00
Chikimaro 6e2fbcda84 Merge main into feat/libscenetctl-nptoolkit-callbacks
Resolve the conflicts with main's libSceNetCtl initialization and
callback validation: the shared check now returns NOT_INITIALIZED before
sceNetCtlInit, as sceNetCtlCheckCallback does on main, so the NpToolkit
check does too; sceNetCtlTerm stays the no-op main measured; the NpToolkit
register and unregister keep their implementations with main's parameter
names. The NpToolkit entry joins main's rewritten debt file, and
GuestNetCtl checks the three before initialization.
2026-10-21 21:39:23 +00:00
frankea 41d551eb60 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into ps5-measured-1340
# Conflicts:
#	core/libs/prx/libSceSystemService/Export.cpp
2026-10-21 17:37:31 -04:00
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
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
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
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
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
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
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
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
David 478947f71f feat(libkernel_sys): implement the POSIX aio calls 2026-10-21 20:07:41 +01:00
MarcZX10 023139d12c feat(libSceAudioOut): support mastering InitEx flags 2026-10-21 19:05:18 +00:00
Adrià 1698d1ea6a Merge pull request #8642 from MarcZX10/codex/color-compare-format-support-7934
fix(agc): match measured color comparison formats
2026-10-21 21:02:30 +02:00
MarcZX10 4618ff54ea feat(libc): restore macOS guest backtraces 2026-10-21 18:58:03 +00:00
boykopovar 2f678e9046 docs: record retained activation and pad no-op behavior 2026-10-21 21:56:06 +03:00
boykopovar 6036bc6512 fix(zlib): restore validation errors and finalization behavior 2026-10-21 21:56:06 +03:00
boykopovar 8b75d497c0 fix(kernel): reject unimplemented internal pool statistics 2026-10-21 21:56:05 +03:00
boykopovar 77835951cd fix(ssl): defer private key parsing and allow separate identity loads 2026-10-21 21:56:04 +03:00
boykopovar 350c6eb323 fix(font): restore typography validation and reject unsupported shaping 2026-10-21 21:56:03 +03:00