Commit Graph
7413 Commits
Author SHA1 Message Date
Dean d53b659ab2 Merge pull request #9006 from JJenkx/feat/audio-propagation-path-slots
feat(audio-propagation): source-owned path slots and the public render output formats
2026-10-24 09:32:13 +13:00
orezraeyandClaude Opus 5.5 ad03c52f38 Merge main into fix/libkernel-socket-address-measured-ps5
Keep #9108's long IPv4-mapped bind on a dual-stack datagram socket, now also for connect, on top of the measured exact-size checks; drop LongAddressError and the duplicate listening check.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:32:09 -03:00
norton62andClaude Opus 5.5 ce3e22a325 fix(libScePad): open the system remote control port as a disconnected device
scePadOpen for the system user's remote control port (type 16) returned the
DualSense handle, so scePadReadState on the "remote" reported the controller's
buttons as connected. SDL's PS5 video driver maps that port's buttons to keys,
so every Cross also arrived as Return and every D-pad press as an arrow key.
In Raptor (PPSA94002) the Return overwrote the key typed on the on-screen
keyboard before the name field read it, and Circle closed the dialog instead
of the keyboard.

The port now opens its own handle that reads no buttons with connected false,
and closes independently of the DualSense handle. Unlike the special port
handles, it stays out of KnownHandle, so calls that act on the DualSense reject
it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 21:31:49 +01:00
HQasperandClaude Opus 5.5 0b2e9aa564 fix(agc): draw stencil AND, OR, XOR and XNOR on the bits they change
DB_STENCIL_CONTROL codes 10, 11, 12 and 15 (STENCIL_AND, STENCIL_OR,
STENCIL_XOR, STENCIL_XNOR) combine the stored stencil value with
DB_STENCILREFMASK.STENCILOPVAL, as AMD_stencil_operation_extended
defines them, and threw "stencil operation N is unsupported".

Each one now becomes a single Vulkan operation with the face's write
mask narrowed to the bits it can change: ZERO for AND, INVERT for XOR
and XNOR, REPLACE with those reference bits set for OR. A face whose
other operations write other bits, OR against a compared test value bit
it would set, OR with a stencil test value export, and NAND and NOR
still throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 20:30:57 +00:00
orezraeyandClaude Opus 5.5 aebed518a7 Merge main into fix/libkernel-aio-limits-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:27:35 -03:00
alnsx 64c6fd09c3 fix(libkernel): poll files on standard descriptors as vnodes 2026-10-23 16:26:17 -04:00
janzezno 5ce1b55a74 docs(agc): record the NVIDIA fast-link result for interlock pipelines 2026-10-23 22:20:55 +02:00
janzezno c6f44cd097 fix(agc): build a pipeline with a fragment shader interlock whole, not from libraries 2026-10-23 22:20:54 +02:00
Dean Galvin baa657a24b Merge main into fix/libkernel-sema-null-esrch 2026-10-24 09:17:39 +13:00
Dean Galvin 49357c5ea3 Merge main into fix/libkernel-cond-destroyed-measured-ps5 2026-10-24 09:17:35 +13:00
Rookie b62b28831d feat(libSceCesCs): add the GB18030-2000 and GB18030-2005 profiles
Implement sceCesUcsProfileInitGb18030_2000 and sceCesUcsProfileInitGb18030_2005.
Two-byte cells are the CP936 table plus the cells that differ, and four-byte
sequences are runs over the BMP and the supplementary planes, generated from
ICU's gb-18030-2000.ucm (before ICU-8427) and gb-18030-2005.ucm with ICU's
GB 18030 ranges. The GB, MBC and MBCS string conversions accept both profiles
and produce four-byte UTF-8 and surrogate pairs for supplementary characters.
2026-10-23 21:16:05 +01:00
orezraeyandClaude Opus 5.5 f32fd62397 Merge main into fix/libkernel-sys-pathconf-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 17:14:25 -03:00
frankea ef2b164b15 fix(shader): relay later table calls past earlier calls' callee copies 2026-10-23 22:13:23 +02:00
Dean ed06dcc29d Merge pull request #9204 from rooklz/feat/cescs-jisx0208
feat(libSceCesCs): add the strict JIS X 0208 EUC-JP and Shift-JIS profiles
2026-10-24 09:13:03 +13:00
Dean 7956a166c7 Merge pull request #9108 from Retr0G28/fix/socket-address-length-exact
fix(libkernel): reject socket addresses longer than sockaddr_in or sockaddr_in6 with EINVAL
2026-10-24 09:12:39 +13:00
Dean fac234a47c Merge pull request #9134 from orezraey/fix/libkernel-event-flag-measured-ps5
feat(libkernel): match event flags to PS5 and add shared flags
2026-10-24 09:12:14 +13:00
Dean Galvin a2ee2958a5 Merge main into fix/fcntl-getfl-pipe-rdwr 2026-10-24 09:07:08 +13:00
JJenkxandClaude Opus 5.5 f41f455f87 fix(libc): return only the sign from strcasecmp and strncasecmp as titles' libc.prx does
strcasecmp and strncasecmp returned the folded unsigned-byte difference,
following FreeBSD 11.4's strcasecmp.c (#3966, #9642). The libc.prx bundled
with eleven titles returns -1, 0 or 1, the sign of that difference; both
functions now do the same, and the byte-pair tests expect it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:06:06 -04:00
Dean a42f61d5b1 Merge pull request #10060 from xXPBSXx/carry/6525-fpathconf
feat(libkernel_sys): implement fpathconf and _fpathconf
2026-10-24 09:03:45 +13:00
battleblob1andClaude Opus 5.5 30c324a23b fix(recompiler): accept EXEC copies in stencil replay masks
Since #6291 a pixel shader's EXEC copy is read as the saved word ANDed
with WQM(Ballot(true)). MaskReplaySafety only accepts a whole-quad
expansion of a ballot it can show excludes helper lanes, and a ballot
of true includes them, so a stencil-exporting shader whose own-lane
masks come from an EXEC copy was refused (own-lane mask not stable).
Every lane of a quad is active (real or helper), so a ballot of true
holds the same quad bits as the all-ones mask the proof already treats
as quad-stable; it is now classified the same way. Helper-dependent
ballots stay uncertain.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 21:53:24 +02:00
orezraeyandClaude Opus 5.5 ddcc81887f fix(libScePad): check the user before throwing for port types 3 and 4
A payload process on a PS5 (firmware 13.60) gets 0x809b0001 for user -1 on types 3 and 4 and on index 1, so scePadOpen answers those before it throws for the unknown types.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:52:58 -03:00
Adrià 40564ce897 Merge pull request #5965 from bcortezf/feat/audioout-get-system-state
feat(libSceAudioOut): implement sceAudioOutGetSystemState
2026-10-23 21:52:51 +02:00
orezraeyandClaude Opus 5.5 cb562bb8da Merge main into fix/libkernel-sysctl-system-measured-ps5
Main now returns ENOENT for unknown sysctlbyname and sysctlnametomib names, so the absent-names debt entry no longer says they throw and keeps main's unknown-names entry.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:47:17 -03:00
orezraeyandClaude Opus 5.5 5e36c33142 Merge main into fix/libc-strftime-measured-ps5
The %Z check now expects the guest tzname, since main leaves tzname[1] as three spaces for a zone without daylight saving time.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:44:05 -03:00
orezraeyandClaude Opus 5.5 ecae349210 Merge main into fix/libc-gethostname-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:41:23 -03:00
JAB-devandClaude Sonnet 5.5 31aaf42381 docs(debt): restore the Packed 16-bit textures entry from main
The merge resolution had dropped its storage image sentences, which main keeps and this branch does not change.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 21:35:16 +02:00
Swag 43315af395 Merge upstream/main into feat/libressl-error-queue
Co-Authored-By: Claude Opus 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceLibreSsl/CMakeLists.txt
#	docs/dev/debt/libSceLibreSsl.md
2026-10-23 15:27:06 -04:00
SuarezPM 548267bfa3 feat(shader): support 32-bit image atomics through keyed image tables
Table T#s keyed at runtime no longer fault on image_atomic_*32: the
table operation stays supported, elements carry the atomic flag through
dedup into the descriptor binding, and the table path binds AtomicView
like the direct path. 64-bit atomics stay unsupported, packed and BY
formats stay unsupported, and the debt entry records the relaxed
Device-scoped emission and the remaining gaps.
2026-10-23 21:22:29 +02:00
Himansh Raj d6433a6006 build: compile the shared libc headers, thread priority and three tests on macOS
A macOS build of main failed 49 objects. Most included
libc/include/FileStream.hpp, whose global-namespace ::feof_unlocked and
::ferror_unlocked do not exist there (they are macros in the macOS SDK).
On macOS:

- FileStream.hpp calls feof_unlocked and ferror_unlocked unqualified.
- ExportMacros.hpp adds the leading underscore Mach-O gives C symbols to
  both names in APS5_EXPORT, so the .set alias resolves.
- ThreadPriority.cpp has no rtkit or RLIMIT_RTTIME; "high" asks for the
  user-interactive QoS class and "rt" for a Mach time-constraint policy
  (period 1 ms, computation 0.5 ms), documented in ENVIRONMENT.md.
- Formatting.cpp maps the SysV va_list builtins to va_list, and
  GuestContentSearch.cpp and GuestNpWebApi2.cpp include
  <initializer_list>.

With these, 16 objects still fail on macOS; each is in a file changed by
an open macOS PR. Linux and Windows compile the same code as before.
2026-10-24 00:50:46 +05:30
JAB-devandClaude Sonnet 5.5 8d54357e79 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/agc-4-4-4-4-partial-writes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 21:18:00 +02:00
Adrià d7948b09f9 Merge pull request #8563 from JAB-dev/feat/agc-4-4-4-4-color-target
feat(agc): render 4_4_4_4 UNORM color targets through packed R16_UINT exports
2026-10-23 21:12:19 +02:00
orezraeyandClaude Opus 5.5 f47c0cc250 Merge main into docs/librtc-dos-time-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 16:11:17 -03:00
Adrià 8cc82c85bf Merge pull request #6469 from QRMOE/fix-low-guest-address-mappings
fix(memory): honor low guest mapping hints
2026-10-23 21:06:11 +02:00
Adrià ea695358ee Merge pull request #8527 from eliasbruno124-dev/fix/host-import-settle-order-20261020
fix(agc): order deferred import settles with main-queue accesses
2026-10-23 20:59:54 +02:00
orezraeyandClaude Opus 5.5 2d33e51c45 fix(libScePad): answer scePadOpen's user, index and port checks as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 15:58:45 -03:00
Claude 24bbc6d5f8 fix(libSceLibreSsl): leave the AES key untouched when key setup fails
AES_set_encrypt_key zeroed the whole schedule and set rounds before it
checked the key length, so a refused call changed the AES_KEY. As in
LibreSSL 2.5.4's aes_core.c, it now returns -1 or -2 before writing
anything and writes only the 44, 52 or 60 words the key length needs.

The test fills the key with a sentinel and checks, for both setup
functions, that refused calls leave all 244 bytes unchanged, that
AES-128 and AES-192 keep the 16 and 8 unused words, and that every
written word matches the FIPS-197 appendix A schedules and the
decryption schedules computed independently and with OpenSSL 3.0.13.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 18:56:08 +00:00
ntamas94andClaude Opus 5.5 d44c823834 feat(libSceJson2): implement sce::Json::Array::operator=
Copy the source array into this and return this, as the console does
(measured on a PS4 Pro, firmware 10.71). Knowledge is Power: Decades
imports it; the inventory stub threw NotImplemented.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 20:53:04 +02:00
HQasperandClaude Opus 5.5 c17591d425 feat(libSceLibreSsl): implement the low-level AES functions
AES_set_encrypt_key, AES_set_decrypt_key, AES_encrypt, AES_decrypt,
AES_ecb_encrypt, AES_cbc_encrypt, AES_cfb128_encrypt and
AES_ctr128_encrypt threw. They now follow LibreSSL's aes.h and its CBC,
CFB-128 and CTR mode code on the caller's 244-byte AES_KEY: key setup
returns -1 for null arguments and -2 for a key length other than 128,
192 or 256 bits, CBC pads a partial final block with the IV and writes
the whole block, CFB and CTR resume from *num, and the CTR counter
carries across all 128 bits.

The test checks the FIPS-197 appendix A and C vectors and the SP 800-38A
CBC, CFB-128 and CTR vectors, split across calls, in place and with
partial blocks.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 18:48:20 +00:00
Adrià 1e1ab77684 Merge pull request #8495 from yabanana/fix/borrowed-memory-regions
fix(shader): reject temporary owners for borrowed memory regions
2026-10-23 20:47:29 +02:00
thuanquangandClaude b6b5b80374 docs(shader): say that the f32 compares do not throw in f32 denormal modes 1 and 2
Co-Authored-By: Claude <[email protected]>
2026-10-24 01:45:52 +07:00
orezraeyandClaude Opus 5.5 dd27146c27 fix(libkernel): keep the TCP flag and IP receive options a PS5 accepts
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 15:45:11 -03:00
thuanquangandClaude 2e874e6a4b docs(debt): say that a raw compute program takes the live RSRC1 float mode
Co-Authored-By: Claude <[email protected]>
2026-10-24 01:44:52 +07:00
thuanquangandClaude f9b5b9767c docs(shader): drop the stale lavapipe skip from the 16-bit interpolation entry
Co-Authored-By: Claude <[email protected]>
2026-10-24 01:44:22 +07:00
thuanquangandClaude 3a8199606a docs(debt): say when agc_driver_f64_fma_subnormals skips
Co-Authored-By: Claude <[email protected]>
2026-10-24 01:44:20 +07:00
thuanquangandClaude 92579f545a docs(debt): correct two stale f64 denormal statements
The shader float mode entry said "Other f64 arithmetic does not model
these denormal controls". On main, v_add_f64, v_mul_f64, v_floor_f64,
v_ceil_f64, v_fract_f64, v_frexp_mant_f64, v_frexp_exp_i32_f64,
v_div_fixup_f64, the f64 compares and ds_min/max/cmpst_f64 read the
f16/f64 denormal field, and each has its own entry. The sentence now
names the f64 arithmetic whose translation still does not read it.

The v_floor_f64 entry said its modifier run used 16 of the 23 measured
values. The run's list holds 13 of them plus -1.5, 2.75 and 1 - 2^-53.

Co-Authored-By: Claude <[email protected]>
2026-10-24 01:43:29 +07:00
orezraeyandClaude Opus 5.5 062dc00385 fix(libkernel): join and leave multicast groups as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 15:38:52 -03:00
orezraeyandClaude Opus 5.5 802bcc8d61 fix(libkernel): share a port between SO_REUSEPORT sockets on the host
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 15:38:45 -03:00
Adrià 606999f3ab Merge pull request #7937 from DavidSamir/feat/libkernel-jit-shared-memory-macos
feat(libkernel): JIT shared memory on macOS hosts
2026-10-23 20:37:27 +02:00
JJenkx f4c543528e fix(agc): preserve pending depth for readable protected planes 2026-10-23 14:37:09 -04:00
orezraeyandClaude Opus 5.5 4aaa0dbf38 docs(libkernel): record that the other flexible map flags are accepted here
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 15:35:45 -03:00