Commit Graph
7981 Commits
Author SHA1 Message Date
Braxton Atkinson ee057ea155 fix(libc): preserve errno across fmodf domain errors 2026-10-22 14:59:20 -05:00
milescovielloandClaude Opus 5.5 36559da793 feat(agc): draw one-sample color targets beside a multisampled depth target with sample 0's coverage
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 19:58:10 +00:00
orezraeyandClaude Opus 5.5 eebb009302 fix(libkernel): report AIO states as a PS5 does after the first read
Measured on firmware 13.60: the first poll or wait that reports a
finished request returns its plain state and later ones add bit
0x10000, while cancel returns the plain state and does not count as a
read; a request that fails completes with state 3 and the error in its
result, and the other requests of its batch still run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 16:57:51 -03:00
orezraeyandClaude Opus 5.5 581a951db8 fix(libkernel): answer unknown AIO ids with ESRCH states as a PS5 does
Measured on firmware 13.60: an id that is not a live request, including
one already deleted, makes poll, wait, cancel and delete return 0 and
write 0x80020003 for it; delete makes an id unknown, and cancel leaves a
finished request's state unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 16:57:51 -03:00
orezraeyandClaude Opus 5.5 2730b6abe5 fix(libkernel): match the AIO batch, priority and parameter limits to PS5
Measured on firmware 13.60: submits take 1 to 128 requests at priority
1 to 3, the id lists of poll, wait, cancel and delete take 1 to 128 ids,
wait takes mode 1 or 2, and sceKernelAioSetParam takes a window and a
delayed count of 0 to 128, a split flag of 0 or 1 and, with split on,
split and chunk sizes of 1 to 0x1000000; everything else returns EINVAL
without writing. sceKernelAioInitializeParam writes the console's three
default scheduling structs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 16:57:51 -03:00
Dean f6075c2f4a Merge pull request #8690 from JAB-dev/fix/audiopropagation-remove-inline-helpers
fix(libSceAudioPropagation): drop the SDK inline Init helpers from the export list
2026-10-23 08:54:28 +13:00
Dean 44602d61df Merge pull request #8660 from JJenkx/fix/videodec2-flush-without-pending
fix(libSceVideodec2): flush without draining when no picture is pending
2026-10-23 08:54:24 +13:00
Dean ea2b6d4077 Merge pull request #8611 from Ondra97/codex/fix-np-auth-unstarted-abort
fix(libSceNpAuth): reject completion queries before request start
2026-10-23 08:54:20 +13:00
Dean a62feecd6c Merge pull request #7948 from Amoenus/codex/feat-native-owner-fmask
feat(agc): expose expanded FMASK for tracked native owners
2026-10-23 08:54:11 +13:00
Dean 5c13a1be0f Merge pull request #8692 from JAB-dev/fix/ngs2-geom-listener-errors
fix(libSceNgs2): return INVALID_GEOM_FLAG and the listener-address error from sceNgs2GeomCalcListener
2026-10-23 08:51:25 +13:00
Claude c33e2892f6 fix(shader): translate v_mullit_f32 in f32 denormal modes 1 and 2
Denormal mode 2 flushes only the sources and mode 1 only the result, as
measured on RDNA2 (gfx1030), also with an inline or literal constant
factor. Both need the device to keep the f32 denormals the shader keeps,
so they translate only when the module declares DenormPreserve 32 and
throw otherwise; mode 1 with another f32 rounding throws as before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 22:46:00 +03:00
zmeizyandClaude Opus 5.5 cdee2b6a16 fix(shader): translate f32 min and max in f32 denormal modes 1 and 2
v_min_f32, v_max_f32, v_min3_f32, v_max3_f32 and v_med3_f32 follow only
bit 0 of the FLOAT_MODE f32 denormal field, as measured on RDNA2
(gfx1030): mode 2 flushes denormal inputs as mode 0 does, and mode 1
keeps them and returns a selected denormal unflushed as mode 3 does.
Mode 1 needs the device to keep those denormals, so it translates only
when the module declares DenormPreserve 32 and throws otherwise. Both
modes threw before.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 22:45:58 +03:00
zmeizyandClaude Opus 5.5 6a2614077a fix(shader): translate f32 add and multiply in f32 denormal modes 1 and 2
v_add_f32, v_sub_f32, v_subrev_f32, v_mul_f32 and v_mul_legacy_f32
follow the FLOAT_MODE f32 denormal field with f32 round to nearest
even, as measured on RDNA2 (gfx1030): mode 1 keeps denormal inputs and
flushes a denormal result, and mode 2 flushes denormal inputs and keeps
a denormal result. Both need the device to keep the f32 denormals the
shader keeps, so they translate only when the module declares
DenormPreserve 32 and throw otherwise. The result flush now applies
when only the result flush bit is set; it was skipped unless the input
flush bit was set too. A constant factor no longer skips the tiny
product check while denormal inputs are kept, as a kept denormal times
such a constant can still be tiny. Directed rounding in these modes
still throws.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 22:45:56 +03:00
Kang, Harry Zixuan f30acac3cf docs(agc): keep packed texture limitations with driver debt 2026-10-22 12:39:55 -07:00
Kraken 5dfd50502a chore(libc): refresh feupdateenv and preserve debt entries 2026-10-22 20:27:31 +01:00
Braxton Atkinson 9b40e1e9b6 fix(libs): keep byte case comparisons in the guest C locale 2026-10-22 14:10:45 -05:00
Pacuka e5f394dd6c Merge remote-tracking branch 'origin/main' into fix/agc-mem-semaphore-address 2026-10-22 21:02:46 +02:00
Dean d6e7ab42df Merge pull request #6727 from simonbronk/fix/native-msaa-depth-unwritten-guest-access
fix(agc): retire an unwritten native multisample depth surface on guest access
2026-10-23 07:55:56 +13:00
Adrià 3a2ca40dab Merge pull request #9234 from mossyanwar/fix/relinker-linux-named-imports
fix(relinker): resolve symbol-name imports through NIDs on Linux
2026-10-22 20:54:22 +02:00
Adrià cd64efea1a Merge pull request #9481 from xXPBSXx/docs/debt-ajm-resample-ex-callsite
docs(debt): note that a title call of sceAjmBatchJobSetResampleParametersEx agrees with the argument registers
2026-10-22 20:51:02 +02:00
xdCloudy 36a7a09dae feat(libSceAgcDriver): implement diagnostic fallbacks 2026-10-22 11:42:42 -07:00
xdCloudy c8febff306 feat(libSceNKWebKit): declare pending exports 2026-10-22 11:42:04 -07:00
xdCloudy 30707fb9c5 feat(libSceFreeTypeOt): declare 150 PS5 3.20 exports 2026-10-22 11:41:45 -07:00
xdCloudy be37cb907a feat(libSceJson2): declare 74 PS5 pending exports 2026-10-22 11:41:13 -07:00
Adrià 8580e7e214 Merge pull request #9331 from MarcZX10/codex/wide-scan-reported-edge-cases
fix(libc): match reported wide scanf edge cases
2026-10-22 20:36:35 +02:00
Adrià 2e2ea5e697 Merge pull request #9131 from xXPBSXx/fix/fchdir-non-vnode
fix(libkernel_sys): fail fchdir on a pipe or socket with EINVAL
2026-10-22 20:32:29 +02:00
Adrià cbcb083086 Merge pull request #9296 from superhe11/codex/fix-snprintf-size-overflow
fix(libc): reject snprintf capacities above INT_MAX + 1
2026-10-22 20:29:27 +02:00
KernelPanicNT 8029493488 fix(libSceNpManager): return the module error for an out-of-range state callback id
sceNpUnregisterStateCallbackA returns 0x80550015 for a callback id
outside 1..8, compared unsigned so 0, negative ids and INT_MIN are
included, as libSceNpManager.sprx does at RVA 0x15b10 in prosper's
reading. An empty slot still returns 0x80550009.
2026-10-22 18:24:56 +00:00
Adrià fa107a44c7 Merge pull request #9084 from xXPBSXx/fix-agc-11-11-10-comp-swap-0
fix(agc): accept the standard component order for 11_11_10 float color targets
2026-10-22 20:15:26 +02:00
xXPBSXxandClaude Sonnet 5.5 e1605dda52 fix(libkernel_sys): fail fchdir on a pipe or socket with EINVAL
FreeBSD 11.4's sys_fchdir resolves the descriptor with getvnode, which fails with EINVAL for a descriptor that has no vnode; only a vnode that is not a directory gives ENOTDIR from change_dir. fchdir returned ENOTDIR for a pipe or socket. A descriptor that is neither a vnode nor a random device now gets EINVAL; the debt entry records the order of the three errors.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 20:15:26 +02:00
HQasperandClaude Opus 5.5 8fd72f02c5 fix(libkernel): poll kqueues as kqueue_poll answers
A kqueue descriptor is ready for POLLIN and POLLRDNORM while one of its
events is triggered and for no other event, as FreeBSD's kqueue_poll
answers; poll threw for it on both hosts. A kqueue cannot be waited on,
so while one is polled poll checks it every millisecond and waits on the
other descriptors in slices of 1 ms. This is the loop Windows already
used for pipes, which Linux now shares.

A kqueue closed during the wait reports POLLNVAL, and one whose number
was reused is polled again with the rest of the timeout, as FreeBSD's
pollrescan looks the descriptor up again.

Depends on #7248.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 18:13:27 +00:00
Adrià FranchandClaude e8c73627f6 fix(libc): keep %% at end of input an input failure in the wide scanner
Co-Authored-By: Claude <[email protected]>
2026-10-22 20:11:40 +02:00
MarcZX10 0d70810529 docs(libc): record remaining wide scanner evidence gap 2026-10-22 20:11:32 +02:00
JAB-devandClaude Sonnet 5.5 f310d9a355 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/audioout2-system-debug-state-validation
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 19:59:30 +02:00
JAB-devandClaude Sonnet 5.5 3112ffd1e3 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/ngs2-pan-init-validation
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 19:59:27 +02:00
JAB-devandClaude Sonnet 5.5 7576430edd 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-22 19:59:20 +02:00
bluandClaude Opus 5.5 0017ed2660 Merge branch 'boykopovar:main' into feat/libc-siginterrupt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-22 10:56:17 -07:00
Adrià a6646f8464 Merge pull request #9071 from MarcZX10/marc/libc-cosh-9062
feat(libc): implement _Cosh
2026-10-22 19:52:15 +02:00
JAB-devandClaude Sonnet 5.5 9ab242a6da Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/agc-4-4-4-4-color-target
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 19:47:24 +02:00
xXPBSXxandClaude Sonnet 5.5 7e2cc7ec6b fix(agc): accept the standard component order for 11_11_10 float color targets
PPSA12361 binds color format 7 (COLOR_11_11_10, float) with COMP_SWAP 0
and stops on "unsupported color format 7 number type 7 component swap 0".
Only the reversed order (COMP_SWAP 2) was accepted.

The format keeps its 10-bit component in the low bits. The standard
swap puts red in the first slot, as Mesa pairs SWAP_STD with
COLOR_10_11_11 for R11G11B10_FLOAT, so COMP_SWAP 0 puts red there and
COMP_SWAP 2 blue. Swap 0 now decodes with the identity export mapping
0xe4 and the same packing; the other swaps still throw.

The decode test accepts swap 0 and keeps refusing swaps 1 and 3. The
execution test renders both orders into tiled and linear targets and
compares each stored word with the packing of the order. Its program
pool grows to fit the second pass. The debt entry names the accepted
orders and says the swap 0 layout is derived, not measured.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 19:46:23 +02:00
Adrià 9062485ebe Merge pull request #8880 from ycbuzi/feat/libc-num-get-objects
feat(libc): export the num_get and time_get locale objects as data
2026-10-22 19:44:08 +02:00
Adrià 29b25aaf4a Merge pull request #9101 from xXPBSXx/fix/flock-directory-windows
fix(libkernel): accept flock on a directory descriptor on Windows
2026-10-22 19:42:03 +02:00
Adrià c55d7c8e7b Merge pull request #8670 from xXPBSXx/fix/stream-send-after-reset-epipe
fix(libkernel): report EPIPE for a stream send on a connection the peer closed on Windows
2026-10-22 19:40:02 +02:00
Adrià 0def01bcb5 Merge pull request #8538 from LeandroLP23/fix/recompiler-flat-p20-provoking
fix(recompiler): read P20 of a flat input as the provoking vertex
2026-10-22 19:26:58 +02:00
Felipebmaitan 2cfe0735a9 feat(libSceFreeType): implement FT_Request_Size 2026-10-22 14:25:52 -03:00
Dean 6a6a35fdf5 Merge pull request #7965 from frankea/ps5-measured-1340
fix(libs): values measured on a PS5 (firmware 13.40) from inside retail games
2026-10-23 06:18:10 +13:00
xXPBSXxandClaude Sonnet 5.5 ff2b4ba4cc fix(libkernel): report EPIPE for a stream send on a connection the peer closed on Windows
sosend_generic fails a send on a socket that can send no more with EPIPE
before it looks at so_error. Winsock reports the same send as WSAECONNABORTED
or WSAECONNRESET, which reached the guest as ECONNABORTED or ECONNRESET.
A stream send now maps both to EPIPE. The send-after-close checks of
guest_tcp, guest_socket_read_write and guest_socket_pair run on Windows too.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-22 19:09:29 +02:00
Retr0 124dc3b3ac feat(libkernel): answer kern.boottime in sysctl and sysctlbyname
FreeBSD 11.4 serves kern.boottime ({CTL_KERN, KERN_BOOTTIME}) from
sysctl_kern_boottime in sys/kern/kern_tc.c as a read-only 16-byte struct
timeval, so a size query reports 16, a short buffer gets a partial copy
and ENOMEM, and a write gets EPERM from sysctl_root. sysctl, sysctlbyname
and sysctlnametomib now answer it with the guest CLOCK_REALTIME minus
CLOCK_UPTIME, taken at the first read and kept. HotSpot reads it while
writing its error report, which aborted with "unsupported MIB 1.21".
2026-10-22 20:04:05 +03:00
Retr0 be4fd86249 fix(libkernel): disconnect a connected datagram socket on connect to port 0
FreeBSD 11.4's soconnectat() (sys/kern/uipc_socket.c) disconnects a
connected socket of a protocol without PR_CONNREQUIRED before it calls
pru_connect. udp_disconnect() and udp6_disconnect() drop the peer and
reset the local address, then in_pcbconnect_setup() and in6_pcbladdr()
fail port 0 with EADDRNOTAVAIL, so the socket is left unconnected.
connect to port 0 on a connected datagram socket now dissolves the
association through the AF_UNSPEC disconnect path before failing with 49,
where it kept the old peer. Stream sockets keep EISCONN.
2026-10-22 20:00:13 +03:00
Dean e5c5329251 Merge pull request #8099 from LuisAguilarDev/fix/agc-stencil-clear-absent-plane
fix(agc): ignore a stencil clear on a target without a stencil plane
2026-10-23 05:43:36 +13:00