Commit Graph
7963 Commits
Author SHA1 Message Date
Dean dd5b2a3869 Merge pull request #9736 from LeandroLP23/feat/libkernel-kern-proc-env
feat(libkernel): answer kern.proc.env for the calling process
2026-10-23 21:47:33 +13:00
Dean Galvin cee93db419 Merge main into feat/kernel-sys-thread-queries 2026-10-23 21:45:17 +13:00
Dean Galvin 8199835b02 Merge main into perf/agc-skip-empty-indirect 2026-10-23 21:43:40 +13:00
Dean b3b9609899 Merge pull request #9152 from rooklz/feat/np-profile-dialog
feat(libSceNpProfileDialog): implement the dialog lifecycle
2026-10-23 21:41:23 +13:00
Dean d339082d2e Merge pull request #9053 from voidlakhan/feat/npcommerce-dialog-initialize-internal
feat(libSceNpCommerce): implement internal dialog initialization
2026-10-23 21:40:45 +13:00
Dean 0dd46f1867 Merge pull request #8547 from Retr0G28/fix/connect-einprogress-windows
test(libkernel): require EINPROGRESS from a nonblocking connect in progress
2026-10-23 21:39:18 +13:00
frankea 56dfc1327e fix(libSceSystemService): answer the registry-backed integer parameters with values measured on a PS5 2026-10-23 04:36:58 -04:00
JJenkxandClaude Opus 5.5 fcc01c57a6 fix(libkernel): give a raise target time to run between host-code samples
RaiseOn suspends the target, reads its context and, while it is in host
code, resumes it and samples again after SwitchToThread. On a 16-core
Ryzen 9 5950X (Windows 11 22H2) that resampled the writer of
guest_raise_in_host_code about every 10 us before it could run: in the
raise that hung, 4,989 samples over 50 ms all found it in ucrtbase, so
the 50 ms host-code limit ran out and the handler was redirected into
fwrite, where it deadlocked on the stream lock (the test timed out at
30 s on every run). In a passing raise the samples sat at one RIP for
14,695 of 14,703 samples and the raise took 145 ms.

Spin for 20 us before each new host-code sample, so the target gets to
leave host code. With that, guest_raise_in_host_code passes 5 of 5 runs,
no raise is redirected in host code, and the longest raise is 0.46 to
0.53 ms. Other samples keep SwitchToThread.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 04:32:33 -04:00
Dean aef58d4674 Merge pull request #9355 from DavidSamir/feat/libkernel-sys-aio
feat(libkernel_sys): implement the POSIX aio calls
2026-10-23 21:28:48 +13:00
Dean 72fe76ff89 Merge pull request #7920 from hugodearaujo/feat/agc-amd-buffer-marker-checkpoints
feat(agc): record GPU checkpoints through VK_AMD_buffer_marker
2026-10-23 21:20:57 +13:00
thuanquangandClaude e53f78214a docs(libc): note where the wcsncat_s overlap rule comes from
The debt entry says the rule follows a static reading of the console's
wcsncat_s in libc.prx, that wcscat_s inherits it unread, and that the
narrow strncat_s keeps a wider rule, as asked in review.

Co-Authored-By: Claude <[email protected]>
2026-10-23 15:19:25 +07:00
Rookie 40970647ca feat(libSceNpProfileDialog): implement the dialog lifecycle
Initialize, Terminate, UpdateStatus, GetStatus, Open, OpenA, Close and
GetResult run the common-dialog state machine. There is no PSN profile
UI, so Open and OpenA finish at once and GetResult reports result 0,
userAction USER_CANCELED and the caller's userData, as shadPS4 does when
its window is dismissed.

Paths where shadPS4 and the other common dialogs here return different
errors throw, and so does a param whose size or mode does not match the
shadPS4 layout. The common-dialog codes the library uses are added to
libSceCommonDialog/CommonDialog.hpp.
2026-10-23 09:18:29 +01:00
Yossi Yadgar 42961e1b45 docs(debt): note where the net thread and emulation behaviour comes from 2026-10-23 11:12:45 +03:00
Yossi Yadgar 22823182ef docs(debt): note that sceKernelGetAppInfo leaves the workaround block unwritten 2026-10-23 11:12:23 +03:00
Yossi Yadgar fadfb4433d docs(debt): note where the workaround and process type rules come from 2026-10-23 11:12:23 +03:00
Yossi Yadgar f0c2cc4879 docs(debt): record the libSceGnmDriverForNeoMode command packets 2026-10-23 11:12:01 +03:00
xXPBSXxandClaude Sonnet 5.5 a411762d70 docs(debt): note the result structure a title passes to sceSaveDataDirNameSearch2
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 10:07:18 +02:00
xXPBSXxandClaude Sonnet 5.5 ce2cf808a8 docs(debt): note the arguments a title passes to sceAudioInAsyncOpen
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 10:05:07 +02:00
xXPBSXxandClaude Sonnet 5.5 6d9a1b895b docs(debt): note how a title calls sceVideodec2CreateDecoder
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 10:04:44 +02:00
alfalfa-starandClaude Opus 5.5 5d3c0d741a perf(agc): memoize host import run bounds per lease snapshot
Every import lookup walked the lease out from the containing range to find
the run of continuing registry ranges, which is linear in the run length.
That walk depends only on the lease snapshot, the containing range and the
import window block, so its first and last index are now memoized per
thread under a weak reference to the snapshot, the range index, the window
and the window's low end. APS5_NO_RUN_MEMO walks every time.

Everything that depends on other state runs on each call as before: the
largest size, the budget, the failed blocks, the remembered refusals and
the halving block search. importRunBounds returns the chosen indices, so
sameRange, runCovers and the whole-run lookup in importAllocation compare
against the lease without copying the run's range pointers.

importRunFailureShrinkTests records a failed 8 MiB block between two
lookups on an unchanged registry and requires the run to shrink to its
4 MiB blocks. importRunGrowthTests and importRunReplacedTests check that a
run grows and shrinks when its ranges are registered or replaced.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 10:04:37 +02:00
xXPBSXxandClaude Sonnet 5.5 c22d6429bc docs(debt): correct the poll and buffer counts in the sceNpAuth title notes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 10:02:45 +02:00
ntamas94andClaude Opus 5.5 88432ab71d docs(libSceJpegEnc): note that the returned size is not confirmed on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 10:02:43 +02:00
ntamas94 0680c59335 Merge remote-tracking branch 'origin/main' into fix/ps4-jpegenc-encode-size 2026-10-23 10:02:40 +02:00
JJenkx 05b602dd95 Merge remote-tracking branch 'origin/main' into windows/ngs2-debt-ppsa33655-modules
# Conflicts:
#	docs/dev/debt/libSceNgs2.native.md
2026-10-23 03:53:48 -04:00
xdCloudy 0aa3f3505b feat(libSceCamera): declare PS5 3.20 pending exports 2026-10-23 08:47:28 +01:00
lakhantheboss 00d5db19f0 feat(libSceNpCommerce): implement internal dialog initialization
Delegate sceNpCommerceDialogInitializeInternal to sceNpCommerceDialogInitialize, sharing dialog state and returning COMMON_DIALOG_ERROR_ALREADY_INITIALIZED on duplicate initialization, following shadPS4. Add regression tests in GuestNpCommerceDialog covering initial, duplicate, and post-termination initialization, and update technical debt documentation.
2026-10-23 13:12:44 +05:30
Dean f075f91737 Merge pull request #9314 from DavidSamir/feat/libkernel-sys-ktimer
feat(libkernel): implement SIGEV_NONE POSIX timers
2026-10-23 20:34:29 +13:00
VakzOs 3778e9fc98 Merge branch 'boykopovar:main' into feat/libressl-des 2026-10-23 09:27:10 +02:00
xXPBSXxandClaude Sonnet 5.5 9c863ba20b docs(agc): add AMD data to the queue 0x20 label wait entry
Adds the PPSA01746 measurements on an RX 6400 to the existing entry: the awaited word already holds a slot address when the wait starts, and the RELEASE_MEM the driver saw was queued but not shown to land.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 09:25:54 +02:00
ntamas94 357005d009 Merge remote-tracking branch 'origin/main' into fix/ps4-jpegenc-encode-size 2026-10-23 09:24:31 +02:00
Dean 3d9c01daed Merge pull request #9337 from Th3EvilGod/codex/ngs2-userfx-module-id
fix(ngs2): correct UserFx ids and preserve Delay compatibility
2026-10-23 20:24:20 +13:00
Emanuele 4bee82086f fix(agc): destroy buffers and memory on MoltenVK only while the graphics queue is idle 2026-10-23 09:17:55 +02:00
zaryabzip 6653dffe62 feat(libkernel_sys): implement scePthreadCondattrGetclock
Read the clock of a libkernel condition attribute, returning
SCE_KERNEL_ERROR_EINVAL for a null or destroyed attribute as
scePthreadCondattrSetclock does, after FreeBSD 11.4 libthr's
_pthread_condattr_getclock. A null clock pointer throws.
2026-10-23 12:17:02 +05:00
ntamas94andClaude Opus 5.5 f5519f4fcd fix(libSceJpegEnc): return the JPEG size from sceJpegEncEncode
On a PS4 Pro with firmware 10.71 a successful sceJpegEncEncode returns the
size of the JPEG it wrote, the same value it stores in the output info,
and it does so when the output info pointer is null too. AnyPS5 returned
0, so a title that takes the size from the return value got an empty
image. The guest test now checks the returned size against the output
info.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 09:13:47 +02:00
Dean ef0d8ae3b5 Merge pull request #8739 from p3n1cillin/codex/opus-native-decoder-20261021
fix(opus): remove artificial decoder delay with bundled libopus
2026-10-23 20:07:51 +13:00
Dean 91d4fa9658 Merge pull request #9219 from YossiYad/feat/gnm-neo-default-state
feat(libSceGnmDriverForNeoMode): write the Neo default hardware and context state
2026-10-23 20:06:44 +13:00
Dean 7a39e62d9f Merge pull request #9350 from Ondra97/codex/feat-freetype-lists
feat(libSceFreeType): implement guest list operations
2026-10-23 20:06:23 +13:00
Dean c31f139db4 Merge pull request #8890 from UnhealthyKraken/feat/libkernel-pthread-timedjoin
feat(libkernel): implement pthread_timedjoin_np
2026-10-23 20:05:52 +13:00
Federico Marras de981a27f9 Merge remote-tracking branch 'upstream/main' into feat/kernel-sys-pthread-scope-atfork 2026-10-23 09:05:21 +02:00
JAB-devandClaude Sonnet 5.5 870bacd092 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 08:59:06 +02:00
Filip Michalski cf3218b702 docs(libSceFreeType): remove duplicate debt after rebase 2026-10-23 08:51:17 +02:00
Filip Michalski 70a666db7e test(libSceFreeType): keep kerning checks clear of face lifecycle tests 2026-10-23 08:50:59 +02:00
Filip Michalski f200fcf468 test(libSceFreeType): isolate kerning fixture changes 2026-10-23 08:50:59 +02:00
Filip Michalski 407489e295 feat(libSceFreeType): implement FT_Get_Kerning 2026-10-23 08:50:36 +02:00
Dean Galvin 1e869157d0 fix(libSceUserService): report keyboard type 20 (US English) by default
The initial user reported keyboard type 0, which the converter maps to IME type 0
and then rejects, so a title reading the layout still could not use it. Report 20
for sceUserServiceGetKeyboardType, which the owner's table maps to IME keyboard
type 4 (English, US); the Japanese and Traditional Chinese input variants stay 0.
Tests and both debt entries updated.
2026-10-23 19:39:38 +13:00
78983daa1c fix(libSceNet): wake a receive on an unbound datagram socket at shutdown on macOS
On macOS, shutdown(SHUT_RD) on a UDP socket that was never bound does not
wake a thread blocked in recv on it, so sceNetShutdown left the receiver
hanging. Use the receive wait that Windows already has: block on the
socket table until the socket gets a local port or is shut, then poll.
On macOS an unbound socket reports port 0 from getsockname, so the check
looks at the port instead of the Winsock error.

Ported from #8658.

Co-authored-by: Himansh Raj <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 03:39:27 -03:00
Claude 705f6e1580 feat(libkernel_sys): implement chown, lchown, fchownat and linkat
All four exports threw. The ownership calls follow fchown: owner and
group 0 and the unchanged value are accepted and any other value
throws. The path is looked up first with stat, lstat or fstatat, as
FreeBSD 11's kern_fchownat does, so a lookup error is returned before
the owner is checked. fchownat rejects flags other than
AT_SYMLINK_NOFOLLOW with EINVAL. linkat passes AT_FDCWD and absolute
paths to link and rejects flags other than AT_SYMLINK_FOLLOW with
EINVAL; a relative path with a directory descriptor and a symbolic
link source without AT_SYMLINK_FOLLOW throw. On Windows a symbolic
link source is detected with the file attributes, since libstdc++
there reports it as a regular file.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-23 06:34:32 +00:00
Dean Galvin 4c33e22394 Merge main into feat/libSceCesCs-sbc-mbcs-utf16-utf32 2026-10-23 19:33:14 +13:00
Dean 0a0ed72167 Merge pull request #8855 from hypermoist/fix/libc-utf8-multibyte
fix(libc): convert multibyte text as UTF-8 like the console's C locale
2026-10-23 19:30:12 +13:00
Dean 5fb1e23b0b Merge pull request #8959 from akkadbakkad89/feat/np-webapi-session-ingc
feat(libSceNpCppWebApi): cover SessionManager PlayerSessionsApi and InGameCatalog ContainerApi imports
2026-10-23 19:29:41 +13:00