Commit Graph
7981 Commits
Author SHA1 Message Date
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
JAB-dev 2cf37664d2 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/ngs2-play-without-setup
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

# Conflicts:
#	core/libs/prx/libSceNgs2.native/include/Ngs2Types.hpp
2026-10-23 08:29:14 +02:00
Dean dd7a2c964d Merge pull request #6313 from mazen320/fix/savedata-convert-completion-event
fix(savedata): queue conversion completion events
2026-10-23 19:28:07 +13:00
SebastianandClaude Opus 5.5 bb403de88f feat(libkernel): add missing pthread attribute accessors
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QnkpF2oEMofseVz9Z7WEAC
2026-10-23 06:27:49 +00:00
Dean 5255264b15 Merge pull request #9316 from MarrasFederico/feat/ngs2-system-create-arguments
fix(libSceNgs2.native): return the module's buffer and allocator errors from sceNgs2SystemCreate and sceNgs2SystemCreateWithAllocator
2026-10-23 19:27:46 +13:00
Dean bd4906d7cf Merge pull request #8111 from savvaniss/feat/camera-not-attached
feat(libSceCamera): report that no camera is attached
2026-10-23 19:27:20 +13:00
Dean c9edaff579 Merge pull request #9104 from Retr0G28/fix/sendfile-enotsock
fix(libkernel): return ENOTSOCK from sendfile on a descriptor that is not a socket
2026-10-23 19:25:35 +13:00
Dean b3d9852630 Merge pull request #9090 from santhoshkumar-dev/codex/freetype-face-properties
feat(libSceFreeType): expose font format and embedding flags
2026-10-23 19:25:13 +13:00
Dean 9af7d8d810 Merge pull request #8987 from simonbronk/feat/libkernel_sys-pthread-barrier
feat(libkernel_sys): implement the scePthreadBarrier, cpuclockid, concurrency and msync forms
2026-10-23 19:24:34 +13:00
Dean 41fca9b037 Merge pull request #8967 from simonbronk/feat/libSceCesCs-japanese-scalar
feat(libSceCesCs): implement Shift-JIS and EUC-JP scalar conversions
2026-10-23 19:23:56 +13:00
Dean 444c2e1a3c Merge pull request #8112 from savvaniss/feat/companion-httpd-no-device
feat(libSceCompanionHttpd): keep the server state with no companion device
2026-10-23 19:23:35 +13:00
hypermistandClaude Opus 5.5 1cee26eba7 Merge remote-tracking branch 'upstream/main' into fix/audioout2-mastering-state
Keep the shared Init/InitEx validation over the InitEx body from #9349.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SNqSvnFwRBz3D76n476yw6
2026-10-23 19:12:29 +13:00
frankea 98c6aef289 Merge branch 'perf/structurizer-split-search' into perf/structurizer-construct-walk 2026-10-23 02:03:06 -04:00
frankea 00ed884987 Merge branch 'fix/structurizer-scc-iterative' into perf/structurizer-split-search 2026-10-23 02:03:06 -04:00
frankea ea2b648a05 Merge remote-tracking branch 'origin/main' into fix/one-sample-ancillary-unsampled 2026-10-23 02:02:41 -04:00
frankea 594f57aef7 Merge remote-tracking branch 'origin/main' into fix/one-sample-depth-comp-z 2026-10-23 02:02:41 -04:00
JAB-devandClaude Sonnet 5.5 9723f7af66 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/ngs2-play-without-setup
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 07:58:53 +02:00
MarcZX10 86f3f07012 merge upstream main into sched interval fix 2026-10-23 05:56:19 +00:00
JJenkxandClaude Opus 5.5 cdc21a9897 fix(tools): bound symbol lookups to their section, keep inclusive counts and refuse unrecorded modules
Review of #9572 found three gaps:

- PeModule.name() checked that an RVA was in some code section, then
  bisected one list of every symbol, so an address in a later code
  section before that section's first symbol took the last symbol of an
  earlier section. Each code section now keeps its own sorted list.
- Address files keep both counters ('module offset self inclusive'):
  the inclusive count is kept and subtracted by --since, and the summary
  lists functions by inclusive samples as well, summed over each
  function's addresses (an upper bound when a function is on one stack
  more than once). The total comes from the '# N samples' line or from
  the 'thread <id> samples <n>' headings of APS5_SAMPLE_THREADS, which
  the loader previously misread as a stack line; --thread keeps one
  thread.
- The address writers of both samplers wrote no '# module' records, so
  those files skipped the size and timestamp check. Both now write them
  (through the helper the collapsed-stack writer uses), and the tool
  leaves a module unsymbolized when the samples have no record for it,
  unless --unverified is given.

Five new cases cover a second code section, inclusive totals, --since
on an address file, thread headings with --thread, and the missing
record with and without --unverified.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 01:49:21 -04:00
JJenkxandClaude Opus 5.5 59693ae54c feat(tools): symbolize the Windows samplers' stacks
The Windows samplers (APS5_SAMPLE_WORKER, APS5_SAMPLE_COMMITTER and
APS5_SAMPLE_THREADS) write every frame as module+0xRVA, and BUILD.md left
naming them to the reader ("for example with nm on the .prx"). Doing that
by hand means finding each module's image base, choosing between COFF
symbols and the export table, and keeping the files cumulative totals in
mind.

tools/symbolize_samples.py reads a collapsed-stack file or the address
file, opens each module it finds in --libs as a PE32+ image, and names
every frame module!function:

- From the COFF symbol table that the MinGW-built .prx and .dll keep:
  external and static symbols in code sections, at the section's RVA
  plus the symbol value. Addresses outside a code section, or before the
  first symbol, stay module+0xRVA.
- From the export table, prefixed with "~", for a module without
  symbols, such as the runtime DLLs.
- A module whose SizeOfImage or TimeDateStamp differs from the sampler's
  "# module" line is left unsymbolized, with a warning: its addresses
  would name the wrong functions.

--since subtracts an earlier copy of the same file, which keeps only the
samples taken between the two copies (the files hold totals since
start-up). --out writes the named stacks for speedscope or flamegraph.pl.
--demangle uses c++filt when it is on PATH. It needs no binutils
otherwise.

test_symbolize_samples (registered with CTest) builds small PE32+ images
with COFF symbols and with an export table, and covers short, string-table
and static names, the ignored section and data symbols, addresses outside
code, the export fallback, the size and timestamp check, --since with
--out, the address-file format and rejected lines.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 01:49:21 -04:00
Celegans12 c77548f5f1 feat(agc): enable VK_NV_device_diagnostics_config behind APS5_NV_DIAGNOSTICS
A device loss on NVIDIA reports only VK_ERROR_DEVICE_LOST, and
VK_EXT_device_fault often gives no address. Nsight Aftermath can write a
crash dump that names the faulting shader and the kind of fault, but
only when the device was created with VK_NV_device_diagnostics_config.
APS5_NV_DIAGNOSTICS (presence) now creates the device with that
extension (shader debug info, resource tracking, automatic checkpoints,
shader error reporting) and with VK_NV_device_diagnostic_checkpoints
when the device supports them. Unset, or on a device without the
extension, the device is created as before; the latter prints a notice.
ChooseDeviceDiagnostics holds the choice so the test can check it.

AI-assisted: yes
2026-10-23 07:44:58 +02:00
Ondra97 b13deef0db feat(libSceFreeType): implement FT_Get_Gasp 2026-10-23 07:44:17 +02:00
xdCloudy 5dbfbc9382 feat(libSceIpmi): declare 49 PS5 pending exports 2026-10-23 06:43:01 +01:00
Adrià 0ed14c1067 Merge pull request #10031 from xXPBSXx/docs/debt-keyboard-getkey2char-title
docs(debt): note what a title call of sceKeyboardGetKey2Char shows about the output buffer
2026-10-23 07:33:53 +02:00
ntamas94 5f5c956ae8 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/agc-copied-writer-label-drain
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/Recorder.cpp
2026-10-23 07:27:00 +02:00
Dean 16319642a4 Merge pull request #6946 from Raghav314/perf/agc-draw-pipeline
perf(agc): draw finisher pipeline (APS5_DRAW_PIPELINE)
2026-10-23 18:24:48 +13:00
Yunus Shaikh a376e37b88 fix(relinker): decode each red-zone leaf over its whole FDE range 2026-10-23 05:22:26 +00:00
Federico Marras 25b6f6e50b Merge branch 'feat/ngs2-calc-atrac9-block' into feat/ngs2-atrac9-module-loops 2026-10-23 07:22:20 +02:00
Federico Marras 767e188339 test(libSceNgs2.native): expect the module's ATRAC9 block in the frame info test 2026-10-23 07:21:17 +02:00
Retr0 0ca2e0b4e7 fix(libkernel): return ENOTCONN from getpeername once a socketpair peer closed
getpeername on a socketpair end returned the unnamed AF_UNIX address
even after the other end was closed. In FreeBSD 11, closing an end runs
uipc_detach, whose unp_disconnect and unp_drop clear SS_ISCONNECTED on
both stream and datagram ends, and kern_getpeername then fails with
ENOTCONN. Each end now keeps a weak reference to its peer's socket,
which expires when the peer's last descriptor, duplicates included, is
closed. shutdown leaves the ends connected, as soshutdown does.
2026-10-23 08:21:09 +03:00
Retr0 0f3d4bc9ee fix(libc): fail with ENOTDIR for a file named with a trailing slash on Windows
FreeBSD 11.4's lookup() (sys/kern/vfs_lookup.c) fails with ENOTDIR when
a path with a trailing slash ends at something that is not a directory.
On Windows a mount alias dropped the slash, and the host calls do not
report ENOTDIR for "file\", so unlink, rename and open acted on the file
or failed with EINVAL. Guest path resolution now rejects an existing
non-directory named with a trailing slash with ENOTDIR on every host, and
a mount alias keeps the slash on Windows as it does on Linux and macOS.
2026-10-23 08:21:01 +03:00
Federico Marras 601d6dbe38 Merge remote-tracking branch 'upstream/main' into feat/ngs2-calc-atrac9-block 2026-10-23 07:19:59 +02:00
Dean Galvin f648ad61e2 fix(libSceConvertKeycode): map the user's keyboard type to the IME keyboard type 2026-10-23 18:19:52 +13:00