Commit Graph
7981 Commits
Author SHA1 Message Date
Adrià a0e0985288 Merge pull request #7551 from mazen320/fix/open-nofollow-junction
fix(libkernel): stop O_NOFOLLOW from opening a Windows directory junction
2026-10-20 12:20:01 +02:00
Adrià 4f99cbffd7 Merge pull request #7536 from voidlakhan/fix/savedata-setparam-null-arguments
fix(savedata): return parameter error on null arguments in setParam
2026-10-20 12:18:56 +02:00
MarcZX10 e054c83eea Merge upstream main into measured absent sysctl MIBs 2026-10-20 10:12:56 +00:00
Adrià 949e95dbe7 Merge pull request #7495 from nekomancer01/feat/rudp-poll
feat(libSceRudp): implement the poll exports
2026-10-20 12:12:43 +02:00
KernelPanicNT 6539598d51 fix(libSceNgs2): accept system option flag bit 1
The firmware's shared system option validator checks the size and the
fields from +0x6c on, not flags at +0x68. Rise of the Ronin (PPSA04540)
creates its system with flags 2, which threw. Accept and ignore bit 1;
every other bit still throws, now naming the value.
2026-10-20 10:11:07 +00:00
Yuri Olive 4721791b9c feat(libSceSystemService): export missing firmware interfaces 2026-10-20 07:10:56 -03:00
Yuri Olive afd20388a9 feat(libSceGameLiveStreaming): export missing firmware interfaces 2026-10-20 07:10:42 -03:00
Yuri Olive f3497e153e feat(libSceAvSetting,libSceHidControl): export missing firmware interfaces 2026-10-20 07:10:36 -03:00
Yuri Olive d4387fbaf7 feat(libSceAudioIn,libSceAudio3d,libSceVoice): export missing firmware interfaces 2026-10-20 07:10:28 -03:00
Yuri Olive 3553a1dfc1 feat(libSceRegMgr): export missing firmware interfaces 2026-10-20 07:10:18 -03:00
Yuri Olive 2141552cd5 feat(libSceAppInstUtil): export missing firmware interfaces 2026-10-20 07:10:11 -03:00
Yuri Olive c5d16f952e feat(libSceNpTus): export missing firmware interfaces 2026-10-20 07:10:05 -03:00
Federico Marras bd1cbb90de feat(libSceNgs2): report the rack and index that own a voice in sceNgs2VoiceGetOwner 2026-10-20 12:10:02 +02:00
hypermistandClaude Opus 5.5 6cd31eeaa5 docs(libSceNpSessionSignaling): record the implemented lookups
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 23:08:09 +13:00
Federico Marras 8a7d16b001 feat(libSceNetCtl): report no error for IPv6 events in sceNetCtlGetResultV6 2026-10-20 12:03:19 +02:00
Federico Marras 2b633ab57d feat(libSceNgs2): keep caller data on racks with sceNgs2RackSetUserData and sceNgs2RackGetUserData 2026-10-20 12:03:19 +02:00
hypermistandClaude Opus 5.5 35a2cbcedb fix(libSceAgc): use firmware semaphore memory results
sceAgcSetAmmSemaphoreMemory and sceAgcGetSemaphoreLabel return the
firmware's errors instead of throwing, registration clears the whole
memory, and sceAgcSetSemaphoreMemory shares the registration with its
1 GiB size limit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:57:30 +13:00
KernelPanicNT 7dbe27c8da feat(libSceNgs2): map waveform blocks of linear PCM and float types 2026-10-20 09:44:59 +00:00
KernelPanicNT fe04a3c299 feat(libSceSystemService): fill the player dialog param as the console does 2026-10-20 09:44:57 +00:00
Yuri Olive e0c252ddfe Merge remote-tracking branch 'origin/main' into feat/ime-filter-text 2026-10-20 06:39:09 -03:00
Yuri Olive e8b564a974 docs(libSceIme): shorten the sceImeFilterText debt entry 2026-10-20 06:39:06 -03:00
Yuri Olive 25db742794 docs(libSceIme): name the sceImeFilterText codepages and their public sources 2026-10-20 06:38:46 -03:00
mazen c03168fb47 fix(libc): keep guest stdio on a dup2 of descriptors 1 and 2
Host logging opens its own FILE on the saved descriptor. The guest FILE stays on the replaced descriptor, so guest printf, puts and fprintf still reach the pipe.
2026-10-20 13:38:07 +04:00
mazen 715fe9ca26 fix(libkernel): keep host stdout off a guest dup2 onto descriptor 1
The same guest dup2 that fills the stderr pipe also replaces descriptor 1, so host stdout was still writing into the guest pipe.
2026-10-20 13:38:07 +04:00
mazen 2d1c18410f fix(libkernel): keep host stderr off a guest dup2 onto descriptor 2
Guest dup2 onto 2 replaces the CRT descriptor fprintf(stderr) still uses, so host logs fill the 4 KiB guest pipe.
2026-10-20 13:38:06 +04:00
Dean d14a186f46 Merge pull request #7933 from veosett/codex/windows-pipeline-journal-paths
fix(agc): support long Windows pipeline journal paths
2026-10-20 22:35:05 +13:00
hypermistandClaude Opus 5.5 6a4913cc7c feat(agc): write the workload packets on the ACB and for an inactive stream
sceAgcAcbSetWorkloadsActive, sceAgcAcbSetWorkloadComplete and
sceAgcAcbSetWorkloadStreamInactive build the same packets as the DCB calls,
and sceAgcDcbSetWorkloadStreamInactive writes a 9-dword IT_NOP with the
stream id, the size of the console's user-data packet. The debt entry now
records the console layout read from libSceAgcDriver.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
2026-10-20 22:32:46 +13:00
primesoul-web 4c849bcadf fix(libSceIme): discard the edit when a caret move drops the filtered commit 2026-10-20 09:32:35 +00:00
Aryan SharmaandClaude Haiku 5.5 4313a703ec feat(libkernel): implement _umtx_op UMTX_OP_SEM_WAIT and UMTX_OP_SEM_WAKE
Follow FreeBSD 11's do_sem_wait and do_sem_wake (COMPAT_FREEBSD9/10) on
a struct _usem: a wait sets _has_waiters, returns at once while _count
is non-zero and otherwise sleeps on the semaphore's queue; a wake clears
_has_waiters when one waiter is left and releases one waiter.

Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-20 15:01:48 +05:30
Yuri Olive 0ef3bed1ae fix(libSceHmd2): drop exports already declared elsewhere or absent from aerolib 2026-10-20 06:27:25 -03:00
Yuri Olive e6f8dad963 merge: bring in main 2026-10-20 06:27:21 -03:00
Yuri Olive b83bae838c Merge origin/main into feat/hmd2-missing-exports 2026-10-20 06:26:43 -03:00
Yuri Olive 29e9ab36e1 fix(libSceAudioOut): drop names missing from the pinned aerolib 2026-10-20 06:25:40 -03:00
Yuri Olive 7c57018612 Merge remote-tracking branch 'origin/main' into feat/audioout-missing-exports 2026-10-20 06:25:30 -03:00
thuanquangandClaude Opus 5.5 e3e91de963 docs(agc): record that the host sampler replaces TRUNC_COORD's rounding
On RDNA 2, an S# with TRUNC_COORD 0 rounds the scaled coordinate to 8
fractional bits, ties to even, and one with TRUNC_COORD 1 truncates it,
for point and bilinear filters. The S# decoder ignores the bit, and
AMD's Windows driver truncates for nearest samplers and rounds for
linear ones, so a TRUNC_COORD 0 point sample just below a texel edge
reads the texel below it. The code comment said the bit moves texel
selection by half a texel at most; the debt entry records the measured
rule instead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 16:20:55 +07:00
Maz 53ed35b362 fix(shader): skip unreachable flat SRT loads under a known branch
Capture evaluated every flattened scalar slot even when a clean scalar
branch skipped it, so an inaccessible direct user-data root refused the
draw. Record flat-slot uses on resource control-flow blocks and evaluate
only the reachable ones; keep refusing taken and unresolved paths.

Fixes #8272.
2026-10-20 13:11:24 +04:00
nekomancer01andClaude Opus 5.5 e4164098a8 docs(libSceRudp): state the poll gaps first and shorten the debt entry
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:07:28 +11:00
nekomancer01andClaude Opus 5.5 d2b9531517 fix(libSceRudp): match the Vita3K check order and reject negative poll ids
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:07:28 +11:00
nekomancer01andClaude Opus 5.5 680ba6bf29 feat(libSceRudp): implement the poll exports
Implement sceRudpPollCreate, sceRudpPollControl, sceRudpPollWait and
sceRudpPollDestroy with the PS Vita signatures and argument checks.
sceRudpTerminate removes the context from every poll and sceRudpEnd
destroys the polls and wakes their waiters.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 20:07:28 +11:00
akkadbakkad89 aaa6ae312b docs(debt): trim the libScePsml_debug entry under the length limit 2026-10-20 14:36:46 +05:30
akkadbakkad89 632c0f7737 feat(libScePsml): implement the MFSR query exports from the APR-EMU fakelib
scePsmlMfsrGetDispatchMfsrPacketSizeInDwords, scePsmlMfsrGetMipmapBias,
scePsmlMfsrSelectConfig, scePsmlMfsrRequestCapture and
scePsmlMfsrIsCaptureInProgress gain real signatures and semantics reversed
from the fakelib/libScePsml.sprx bundled with PPSA20397, which imports the
first three. The context records the input dimensions at creation so the
mipmap bias can be computed.
2026-10-20 14:33:30 +05:30
felekandClaude Opus 5.5 bb864e8acd docs(dev): name the memory budgets and the sleeping-display stop in the game testing guide
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BywPXoZACVi8ALV4JKvuPZ
2026-10-20 11:02:27 +02:00
Adrià e9a5a0c849 Merge pull request #6772 from XairRrR/fix/storage-array-window
fix(agc): serve views of arrays past maxImageArrayLayers from their viewed slices
2026-10-20 10:55:09 +02:00
dantdmdarealguy 251ca1c100 fix(libc): report the file number of each readdir entry on Windows
readdir and readdir_r returned d_fileno 0 for every entry on Windows,
because MinGW's _wreaddir reports no inode. FreeBSD 11.4's
_readdir_unlocked (lib/libc/gen/readdir.c) never returns an entry whose
d_ino is 0, and d_fileno is the number lstat reports as st_ino.

The Windows directory stream now reads the listing from the directory
handle with GetFileInformationByHandleEx(FileIdBothDirectoryInfo), so
each entry carries the file ID of the entry itself, symbolic links
included, without opening it. The ID is folded as stat and lstat fold
nFileIndexHigh:nFileIndexLow; the fold moves to WindowsDescriptor.hpp so
both libraries use it. rewinddir restarts the scan, telldir and seekdir
count entries as _wtelldir and _wseekdir did, and opendir fails with the
open error of the directory. A file system that lists no file ID gets a
nonzero number hashed from the name. Linux truncates the host inode to
32 bits as stat does instead of reporting 0 above 2^32.

guest_directory checks that every entry has a nonzero file number, that
the numbers of a file, a subdirectory and symbolic links to both equal
lstat's st_ino, that an entry created or removed while the directory is
open shows up after rewinddir, that a delete-pending entry no lstat can
open is still listed, and that seekdir returns the same number.
2026-10-20 03:52:39 -05:00
Adrià 5c94d40bf6 Merge pull request #5942 from JJenkx/feat/ult-bound-condition-variables
feat(ult): implement creation-bound condition variables
2026-10-20 10:41:14 +02:00
Kovalev Vladislav 80024c48fd test(agc): serialize journal replay result capture 2026-10-20 14:40:12 +06:00
Adrià 7faab0aea9 Merge pull request #4891 from dantdmdarealguy/feat/screenshot-hotkey
feat(agc,videoout): save the displayed frame as a PNG with a screenshot key
2026-10-20 10:40:02 +02:00
milescovielloandClaude Opus 5.5 ee6efa9fce fix(agc): leave a multisampled DCC target's CMASK unchecked without fast clears
The initial import of a multisampled DCC target required its CMASK to be
uniformly 0xcc or the fully expanded code. When CB_COLOR_INFO enables
COMPRESSION but not FAST_CLEAR, the CMASK only holds FMASK compression,
which picks the fragment each sample reads, and a uniform DCC clear sets
every fragment to the clear color. The CMASK is then not checked, and the
target imports as the DCC clear.

METAL GEAR SOLID 4's launcher (PPSA18194) opens its Master Book on a
2-sample 1920x1080 target whose DCC reads as the 0000 clear and whose
CMASK holds stale bytes, with FAST_CLEAR off. It stopped there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 08:30:12 +00:00
Kovalev Vladislav 08fe08fadc docs(agc): record remaining long pipeline cache path limits 2026-10-20 14:26:34 +06:00
mugurc 381c3b9744 fix(tests): skip the 1023-byte guest path check on macOS hosts
macOS fails a host path of 1024 bytes or more with ENAMETOOLONG, and the
host form of a guest path is the root directory followed by the guest
path, so a guest path of 1023 bytes, which FreeBSD accepts, fails there
under any root directory. guest_path_name_length skips that check on
macOS, and a debt entry for guest path names gives the macOS limit.
2026-10-20 11:25:39 +03:00