Commit Graph
7963 Commits
Author SHA1 Message Date
Dean 7704178631 Merge pull request #11182 from orezraey/fix/libkernel-soc-sensor-order-measured-ps5
fix(libkernel): check the SoC sensor channel before the pointer and set errno as measured on a PS5
2026-10-27 01:02:19 +13:00
Dean 8d2f06ae09 Merge pull request #11181 from voidlakhan/fix/ime-null-argument-error
fix(libSceIme): return errors for null arguments
2026-10-27 01:01:39 +13:00
Dean 0a1496c148 Merge pull request #11170 from orezraey/fix/libkernel-sysctl-toplevel-measured-ps5
fix(libkernel): resolve sysctl top-level names and fail absent top-level MIBs with ENOENT as measured on a PS5
2026-10-27 01:01:03 +13:00
Adrià 9b520147fb Merge pull request #9870 from lost9409/feat/libressl-alert-description
feat(libSceLibreSsl): implement TLS alert descriptions
2026-10-26 13:00:23 +01:00
Dean 7705895abb Merge pull request #10955 from AZLisme/feat/jxr-stream-packets
feat(libSceJxr): implement stream packet refill and flush
2026-10-27 00:59:07 +13:00
Dean ae5c5145db Merge pull request #10900 from EagleBearerYS/feat/netctl-ipcint-twins-v2
feat(libSceNetCtl): answer the IpcInt calls as their public twins, plus NpUtility's bandwidth test and Http's registered ids
2026-10-27 00:58:28 +13:00
Adrià 0c6a6be7fe Merge pull request #9542 from Queuse/codex/net-boolean-readback
feat(libSceNet): read reuse and broadcast flags
2026-10-26 12:58:12 +01:00
orezraeyandClaude Opus 5.5 65172ff414 Merge main into fix/libkernel-sw-version-block-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 08:56:51 -03:00
Adrià 6641f48356 Merge pull request #9789 from rooklz/fix/agc-uint-color-export
fix(libSceAgcDriver): export raw 32-bit values into UINT color targets as integers
2026-10-26 12:48:04 +01:00
Adrià 7a01e6a494 Merge pull request #9693 from Gruzzberry/feat/setlogin
feat(libkernel_sys): implement setlogin
2026-10-26 12:46:59 +01:00
Adrià 8da313e727 Merge pull request #9752 from hypermoist/feat/opus-dec-float-priority
feat(opus): decode to float and with a priority in libSceOpusDec and libSceOpusCeltDec
2026-10-26 12:39:23 +01:00
Adrià a1a08cbab9 Merge pull request #9646 from UnhealthyKraken/feat/freetype-pfr
feat(libSceFreeTypeOptOl): implement PFR queries
2026-10-26 12:39:18 +01:00
Yunus Shaikh 1505810fec docs(debt): shorten the native multisampled DCC fast clear entry 2026-10-26 12:30:14 +01:00
Yunus Shaikh 9b0ff5ccc2 fix(agc): accept a compared host import for a multisampled target's FMASK range
be write-watched at the initial import ("native FMASK contents require
watched guest memory") and at each reuse ("native FMASK sampling requires
watched guest memory"). In Linux comparison mode a host import over the
FMASK unwatches it, so the target is refused one check after the color,
DCC and CMASK ranges that the previous commit accepts.

Treat an FMASK range that a compared host import covers
(ComparedHostImportCovers) as the color and metadata ranges are treated:
keep a copy and its NewestStamp at the initial import, skip it in the
import's UnchangedSinceAll, and at reuse require the stamp and the bytes
to be unchanged, comparing them at most once per collect epoch. An
explicitly unwatched FMASK range is still refused.

Four-sample targets take no FMASK range, so this changes nothing for them.

Refs https://github.com/boykopovar/AnyPS5/issues/9724
2026-10-26 12:30:14 +01:00
Yunus Shaikh c10d1eae66 fix(agc): accept a compared host import for an initial multisampled DCC import
Rush 2 Recompiled (PPSA69423) and Wave Race 64 Recompiled (PPSA69424)
stop with "AGC graphics: initial multisampled DCC contents require
watched guest memory"
(https://github.com/boykopovar/AnyPS5/issues/9724). On Linux with
lavapipe, the write-watch probe finds that device accesses to a host
import trip the write watch, so every imported range is compared rather
than watched. A multisampled DCC target whose color, DCC or CMASK range
lies in such an import was then refused at its first draw: importing the
target takes a write generation for each range, and a compared range has
none.

A range that is not watched but lies in a live host import the probe
compares is now copied when the target is imported, and its metadata
again when a whole fill is taken as its fast clear. Each later use
compares the range with that copy, at most once per collect epoch, and
counts any driver or GPU store over its 64 KiB blocks since the copy as
a write, so a guest store of new bytes or any store by the driver
refuses the resident target as a watched range does. A range left
unwatched outside such an import is refused as before.

This covers the Linux comparison mode, not the Windows deferred settle
(BF-150): compared imports on Windows still refuse.
2026-10-26 12:30:01 +01:00
Celegans12 2801497e0c feat(tools): split the periodic reports of an APS5_AB run by phase
An APS5_AB run interleaves phases A and B, and every periodic report
covers the time since the previous report of its kind, so its numbers
need sorting before A and B can be compared. tools/ab_split.py reads
the [ab] lines and counts a [present], [gputime], [draw] pipelined or
[syncwait] report for a phase only when its whole span lies inside the
phase after its settled line. It prints presents per 10 s and frame
time per phase, GPU busy and idle time per frame, GPU time per present
(also per --program key and --class), committer, drain and hook-wait
times, the A and B means, and each B phase against the mean of its
neighbouring A phases, which cancels a linear drift.

AI-assisted: yes
2026-10-26 12:26:29 +01:00
Celegans12 3cf8170ff8 feat(agc): toggle runtime switches in alternating phases of one run
Two runs of the same scene drift apart by more than many effects worth
measuring. APS5_AB=<seconds>:<switch>[+...] alternates phase A (switches
as the environment sets them) and phase B (the listed switches toggled)
at flip packets, under the GPU mutex after the draw pipeline drained,
and prints "[ab] phase A|B <k> begins/settled at present <n> (t <s> s)".
APS5_AB_START (a flip count, or <n>s) delays the first phase and
APS5_AB_SETTLE (default 2 s) marks when a phase's reports are clean.
Switches live in a registry (RuntimeSwitches) of relaxed atomics that
start as the environment sets them; APS5_NO_BARRIER_BATCH is the first,
since every elision it gates is decided per barrier. Any other name
fails the first flip. Without APS5_AB nothing changes.

AI-assisted: yes
2026-10-26 12:26:04 +01:00
ntamas94andClaude Opus 5.5 1309f3c63f fix(libSceNpTrophy): answer ABORT from RegisterContext through an aborted handle
With an NP title id in place, a PS4 Pro (firmware 10.71) answers 0x80551607
from sceNpTrophyRegisterContext through an aborted handle, ahead of the
missing trophy package (0x80551626 through a live handle). The earlier
measurement stopped at the NP title id lookup on both handles.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:20:03 +01:00
ntamas94andClaude Opus 5.5 b4c1498dfe fix(libSceNpTrophy): answer ABORT through a handle once it is aborted
On a PS4 Pro (firmware 10.71) sceNpTrophyGetTrophyUnlockState and
sceNpTrophyGetGameIcon answer 0x80551607 through an aborted handle, ahead of
the not-registered check, and aborting the handle again answers 0.
sceNpTrophyAbortHandle now records the abort, the calls that use the handle
answer NP_TROPHY_ERROR_ABORT, and destroying the handle clears it.
sceNpTrophyRegisterContext keeps its answer, as measured without a trophy
package.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 12:20:03 +01:00
AZLisme 5f332dcaed feat(libSceNet): support IPv6-only socket configuration 2026-10-26 19:16:52 +08:00
Bram910 98c0bc2d4e Merge origin/main into fix/net-send-nosignal 2026-10-26 12:11:05 +01:00
Bipin 8d878818b2 docs(opus): clarify failed encoder replacement outcomes in debt 2026-10-26 16:40:34 +05:30
Adrià Franch 8676daa0fc merge: sync archive directories with main 2026-10-26 12:02:23 +01:00
Adrià 4b1a9a3b2f Merge pull request #9525 from Queuse/codex/net-socket-state
feat(libSceNet): expose socket type and listen state
2026-10-26 12:01:27 +01:00
Claude b56801fc19 feat(libSceCesCs): add the code page 858 profile
sceCesRefersUcsProfileCp858 threw. It now returns a single-byte profile
accepted by sceCesSbcToUtf8, sceCesUtf8ToSbc and the MBCS context
conversions. Code page 858 is code page 850 with byte 0xD5 mapped to the
euro sign (U+20AC) instead of U+0131; that is the whole high half of
ICU's ibm-858_P100-1997.ucm. Bytes 0x00-0x7F stay unchanged, as in the
other single-byte profiles.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FzhWRMauD3ouc8kSxT2NnT
2026-10-26 10:59:59 +00:00
Adrià b82c33ef65 Merge pull request #9732 from simonbronk/fix/libkernel-vector-io-argument-order
fix(libkernel): check vector I/O lengths and descriptors before offsets
2026-10-26 11:54:15 +01:00
Adrià 97934af20b Merge pull request #9702 from frankea/perf/structurizer-split-search
fix(shader): structurize a 4,750-block graph before Unreal's render thread watchdog fires
2026-10-26 11:54:10 +01:00
Adrià 6efe2a38ea Merge pull request #9390 from GitamarT045T3R/feat/posixforwebkit-wrap
feat(libScePosixForWebKit): forward __wrap_fchown, link, readlink, statvfs and symlink
2026-10-26 11:49:57 +01:00
fogydes 719701a68e fix(libkernel): follow the measured exec lookup and image checks 2026-10-26 16:19:46 +05:30
Adrià cbaacd2910 Merge pull request #9731 from hypermoist/feat/font-words
feat(libSceFont): build and search word dictionaries as the console does
2026-10-26 11:42:17 +01:00
Adrià 637575b493 Merge pull request #9733 from mugurc/fix/libscenet-stream-sends-macos
fix(libSceNet): keep MSG_DONTWAIT and aborted stream sends short on macOS hosts
2026-10-26 11:41:14 +01:00
Maz 1f27ca0c49 feat(libc): export the wide num_get facet vtable as data
Console libSceLibcInternal exports Y9C9GeKyZ3A as a 136-byte STT_OBJECT;
titles that resolve the wide num_get vtable as data need a zeroed 17-slot
object matching the narrow num_get layout on console.
2026-10-26 11:37:08 +01:00
Bipin acbab704c8 fix(core): retire the replaced opus encoder before the replacement
A create over a marked state now retires the encoder its instance id
names before any state write or allocation, so a replacement lost to a
host allocation failure or the libopus OPUS_ALLOC_FAIL branch cannot
strand an entry the state no longer names: Destroy and Terminate stay
consistent on every failure path. The debt notes record the
replacement rule as our choice with the console failed-replace
behaviour unmeasured and why the tests cannot force the failure
paths.
2026-10-26 16:06:06 +05:30
xXPBSXxandClaude Sonnet 5.5 89424904f8 docs(debt): shorten the sceCoredumpAttach title note below the entry length limit
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:33:19 +01:00
xXPBSXxandClaude Sonnet 5.5 233ad28ae6 docs(debt): note how a title calls the sceCoredump stop-info, attach and user-data functions
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-26 11:33:17 +01:00
Adrià cbf76e7a6e Merge pull request #9408 from rursache/feat/macos-trace-imports
feat(relinker): trace function imports on macOS
2026-10-26 11:27:51 +01:00
orezraeyandClaude Opus 5.5 45082e0614 Merge main into docs/libkernel-module-process-info-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 07:25:38 -03:00
Adrià 2ba343e731 Merge pull request #9650 from JJenkx/windows/audit-dump-tool
feat(tools): audit an extracted title's imports in one step
2026-10-26 11:21:49 +01:00
Adrià e796ed4e5e Merge pull request #9632 from EagleBearerYS/feat/libkernel-sys-libthr-names
feat(libkernel): add pthread_rwlockattr_settype_np and scePthreadMutexattrSetkind
2026-10-26 11:20:50 +01:00
Adrià c8a3b25882 Merge pull request #9464 from mazen320/feat/libc-time-get-w-vtable
feat(libc): export the wide time_get facet vtable as data
2026-10-26 11:19:39 +01:00
AZLisme 81013f41bf docs(libressl3): clarify confirmed ASN.1 error and ownership gaps 2026-10-26 18:15:08 +08:00
AlexandreandClaude Opus 5.5 aac9d6470c fix(libSceInvitationDialog): return NOT_SYSTEM_INITIALIZED and BUSY through libSceCommonDialog
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RoucYS7mQpV23WDUEwXLuU
2026-10-26 11:14:58 +01:00
AlexandreandClaude Opus 5.5 27ed844d7a feat(libSceInvitationDialog): finish the PS4 invitation dialog as canceled without a window
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RoucYS7mQpV23WDUEwXLuU
2026-10-26 11:11:59 +01:00
shurhundo 085495e65a fix(check-compile): remove stray blank lines in TechnicalDebt.md 2026-10-26 18:10:11 +08:00
Dean Galvin e0bd61fae2 Merge branch 'main' into pr/robust-loads 2026-10-26 23:10:10 +13:00
Bram910andClaude Opus 5.5 cece0ab167 fix(shader): report a skipped word's error on every decode exit
A branch into a skipped word was only reported when the sweep ended at
s_endpgm or s_code_end; a sweep that ran to the end of the code threw
the generic code-boundary error instead. Only the decoder's error types
are skipped now, so other exceptions propagate, and the debt entry
records the exception per skipped word and what a misaligned sweep
through an unreachable span puts in the program.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 11:08:51 +01:00
Itamar Medyoni ce1ee687d8 feat(libScePosixForWebKit): forward __wrap_fchown, link, readlink, statvfs and symlink
WebKit links these calls through GNU ld --wrap, so each export takes the
signature of the function it is named after and calls the libkernel_sys
or libSceLibcInternal implementation; the module now links both.
2026-10-26 11:04:20 +01:00
Bipin 8529647f01 fix(core): complete the silk layout and retire replaced encoders
The SILK setup writes rate/50 at +0xE4 next to +0x58 and the state test
asserts it, and a create over a marked state replaces the entry its
instance id names so the surviving Destroy frees the codec and the
following Terminate runs clean. EncodeFloat reports the reservation
that cannot fit with a throw at the checks where the console module
dies after the marker and frame 0, with the 8 MiB bound recorded as our
host stack model, and the tests cover the negative frame and the bound
setup.
2026-10-26 15:33:03 +05:30
Bram910 433aa1dac9 Merge origin/main into fix/shader-skip-unreachable-words 2026-10-26 10:57:34 +01:00
shurhundo d935d073e1 Merge remote-tracking branch 'origin/main' into fix/check-compile-response-files-rebased
# Conflicts:
#	CMakeLists.txt
#	tools/check_compile.py
#	tools/tests/test_check_compile.py
#	tools/tests/test_check_compile_preprocessor.py
2026-10-26 17:55:05 +08:00