Commit Graph
7981 Commits
Author SHA1 Message Date
xXPBSXxandClaude Sonnet 5.5 9e076485b2 docs(debt): note the call sites of sceAgcCbMemsetExclusive in six titles
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 20:57:13 +01:00
Adrià 2f506cacac Merge pull request #9624 from MarrasFederico/feat/avplayer-trick-speed-bandwidth-source
fix(libSceAvPlayer): refuse sceAvPlayerSetTrickSpeed without a source and sceAvPlayerSetAvailableBandwidth after one
2026-10-25 20:52:31 +01:00
Adrià 91a5573911 Merge pull request #9479 from EagleBearerYS/fix/libc-scanf-integer-widths-windows
fix(libc): convert scanf integers as FreeBSD does on Windows
2026-10-25 20:52:26 +01:00
Yunus Shaikh 3a47ea6ea4 Merge main into feat/libkernel-sys-libthr-names
Main's #9573 implements scePthreadResume right after the
scePthreadMutexattrSetkind stub this branch removes from libkernel_sys;
the merge takes main's scePthreadResume and leaves the stub out.

Main's public-header audit wants one header declaration per export, so
the merge declares this branch's scePthreadMutexattrSetkind,
scePthreadMutexattrGetkind and pthread_rwlockattr_settype_np in
libkernel's Api.hpp, drops their stub declarations from libkernel_sys's
Api.hpp, has Mutex.cpp take sceKernelError from libkernel's Api.hpp,
and has the test include the libkernel headers instead of its own
declarations.
2026-10-25 12:49:51 -07:00
orezraeyandClaude Opus 5.5 496d29622c Merge main into fix/libkernel-posix-thread-attr-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 16:44:57 -03:00
Disaster c4f013e39d docs(libc): record firmware _Thrd_lt evidence 2026-10-25 22:42:29 +03:00
plexerPK 34368b9e54 feat(tools): gate repeated Vulkan validation comparisons 2026-10-25 20:41:19 +01:00
Disaster 35c38ce8d5 fix(libc): match measured _Exp and _FExp special values 2026-10-25 22:38:39 +03:00
orezraeyandClaude Opus 5.5 3345e2047d Merge main into fix/libkernel-pthread-attr-measured-ps5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 16:32:10 -03:00
orezraeyandClaude Opus 5.5 49bcd7549e fix(libkernel): report SCM_BINTIME and SCM_TIMESTAMP from recvmsg as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 16:30:34 -03:00
xXPBSXxandClaude Sonnet 5.5 02027f0f8d docs(debt): note how titles call sceNetResolverStartNtoaMultipleRecords
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 20:29:33 +01:00
akkadbakkad89 fe38bc485d fix(libScePsml): fail MFSR init and shared-resource limits as a base console does
The firmware disassembly (the real Sony libScePsml.sprx inside PPSA20397)
shows scePsmlMfsrInit returning 0x8A810012 before touching the initialized
flag when sceKernelIsTrinityMode is 0, so on the modelled console every MFSR
call correctly stays uninitialized instead of reaching the unimplemented
dispatch path. The shared-resources pair likewise returns 0x8A81000D for
disallowed types and 0x8A810015 while a shared-resources object already
exists.
2026-10-26 00:58:27 +05:30
Adrià aeff26bd97 Merge pull request #9573 from zaryabzip/feat/pthread-create-suspended
feat(libkernel_sys): create threads suspended and resume them
2026-10-25 20:21:07 +01:00
Adrià 1a7a3dfd4f Merge pull request #9572 from JJenkx/windows/symbolize-sampler-stacks
feat(tools): symbolize the Windows samplers' stacks
2026-10-25 20:18:58 +01:00
xXPBSXxandClaude Sonnet 5.5 dee5c3c241 docs(debt): note what two titles' Ajm resample calls show about flags and result handling
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 20:17:25 +01:00
mugurcandiamthehimansh 70b2e138bb fix(libSceNet): keep MSG_DONTWAIT and aborted stream sends short on macOS hosts
Two stream send behaviours of XNU differ from FreeBSD and Linux:

- MSG_DONTWAIT does not keep a stream send on a blocking socket from
  waiting for buffer space; XNU only skips the wait for the send buffer
  lock. A 16 MiB send to a slow peer blocked until the peer went away.
  A MSG_DONTWAIT transfer now also passes XNU's MSG_NBIO (0x20000), which
  makes one call non-blocking: the send queues what fits and returns that
  count, or EAGAIN when nothing fits.
- A blocking stream send that fails after queuing data, for example when
  sceNetSocketAbort shuts the socket down, returns only the error, where
  Linux returns the bytes queued. A blocking stream send now goes to the
  host in sends of 64 KiB and reports the bytes of the sends that
  completed when a later one fails, as #8658 does.

The debt entry records the undocumented flag and the bytes that a failing
64 KiB send queued but does not report.

Co-authored-by: iamthehimansh <[email protected]>
2026-10-25 20:11:31 +01:00
slopggobblercobbler81 9c232b38fe fix(savedata): validate null arguments in delete, search, and mount3 2026-10-25 20:07:59 +01:00
thuanquang 6adad6733c Merge main into fix/linear-target-import-creation 2026-10-26 02:07:34 +07:00
AZLisme 32f8285f29 feat(libSceAjm): decode three to five channel AAC streams 2026-10-26 03:04:17 +08:00
Adrià ae7d59258e Merge pull request #9637 from ntamas94/feat/libSceAjm-ps4-batch-buffer
feat(libSceAjm): run PS4 batch buffer jobs in the console's chunk layout
2026-10-25 19:58:19 +01:00
KernelPanicNT 6e8ec6d213 fix(libSceNet): reject the flags and names the module rejects
sceNetEpollCreate fails with EINVAL for a null name or non-zero flags,
sceNetResolverCreate and sceNetGetMacAddress for non-zero flags, and
sceNetResolverStartNtoa, before any other check, for a negative timeout
or retry count or a flag bit outside 0x10001, as prosper reads the
libSceNet module. The two accepted resolver flag bits are still ignored,
which the debt file now records.
2026-10-25 19:52:23 +01:00
Dean 8a29e08834 Merge pull request #9949 from wrocketdev/feat/libressl-ocsp-strings
feat(libSceLibreSsl): implement the OCSP status and reason strings
2026-10-26 07:49:27 +13:00
Adrià e1ef22e888 Merge pull request #9461 from milescoviello/fix/tsc-calibration-one-cpu
fix(libkernel): measure the TSC frequency on one CPU
2026-10-25 19:48:55 +01:00
orezraeyandClaude Opus 5.5 1a4c3bb09e docs(libSceSystemService): record sceSystemServiceIsBgmPlaying as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:47:19 -03:00
Adrià 58c9977e3b Merge pull request #9562 from milescoviello/feat/uds-trophy-progress
feat(libSceNpTrophy2,libSceNpUniversalDataSystem): unlock progressive trophies through _UpdateTrophyProgress
2026-10-25 19:45:49 +01:00
Ondra97 a476e42188 feat(libSceFreeType): manage multiple size objects 2026-10-25 19:44:44 +01:00
orezraeyandClaude Opus 5.5 258ce3e2e9 docs(libc): record feholdexcept, fegetexcept, setlocale and strcasecmp as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:42:25 -03:00
Bram910andClaude Opus 5.5 df5555a905 docs(shader): move the unreachable-words debt entry next to the control-flow entries
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:40:23 +01:00
Shahul Mubeen AandClaude Opus 5.5 b9d00c5d80 fix(shader): write 1D storage images through 2D-array stores at slice 0
An image_store with DIM 2D_ARRAY through a 1D T# had no runtime image
mode, so the dispatch stopped with "image descriptor is incompatible
with the static runtime image interface". #2348 added a 1D mode for
DIM 2D stores only.

Write-only 2D-array storage images now get the same 1D mode as the 2D
case. On RDNA2 (gfx1036, hardware oracle) such a store writes texel x
and ignores y when the slice is 0, and writes nothing for any other
slice, with DEPTH 0 or 3, so the store is skipped unless the slice is 0.

New execution test agc_driver_image_store_line_through_plane_array.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 00:10:03 +05:30
Bram910 6541c73f49 Merge origin/main into fix/shader-skip-unreachable-words 2026-10-25 19:38:58 +01:00
Adrià a7a2eece49 Merge pull request #9437 from Ondra97/codex/fix-freetype-face-reference-lifetime
fix(libSceFreeType): preserve referenced face lifetimes
2026-10-25 19:35:22 +01:00
Adrià 2cd69d689a Merge pull request #9667 from xXPBSXx/docs/np-sns-debt-undeclared-names
docs(debt): make the NpSns entry and its note agree on three names
2026-10-25 19:35:10 +01:00
Adrià efe89d49c9 Merge pull request #9651 from xXPBSXx/docs/sce-net-connect-unspec-windows-bound-address
docs(debt): record what a Windows datagram socket keeps after sceNetConnect to AF_UNSPEC
2026-10-25 19:31:54 +01:00
orezraeyandClaude Opus 5.5 f0a989a508 docs(libkernel): record the version stubs, kern.boottime and the SoC power block as measured on a PS5
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:29:10 -03:00
orezraeyandClaude Opus 5.5 fc938dcedb fix(libkernel): throw on PRIO_PGRP and PRIO_USER setpriority until measured
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:27:28 -03:00
Yunus Shaikh 46fe252486 docs(debt): record that sceAjmBatchJobGetStatistics only zero-fills its sideband 2026-10-25 18:25:27 +00:00
Kraken d1a277b7d8 feat(libc): implement sequential bitwise fetch helpers 2026-10-25 19:16:20 +01:00
Bram910andClaude Opus 5.5 e1213fd473 fix(shader): skip undecodable words that only follow s_branch or s_endpgm
The RDNA program decode sweeps linearly up to the last s_endpgm past the
furthest direct branch target, so it also decoded words that no path
reaches and threw on any it could not decode. A word directly after
s_branch, s_endpgm or s_code_end that fails to decode is now skipped;
the decode still throws that word's error when a direct branch or
s_call_b64 targets it, and a failure on a word reachable by fall-through
is unchanged. The control-flow graph starts the block after s_branch and
s_endpgm at the next decoded instruction instead of the next word.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 19:15:40 +01:00
Adrià 5d48c6233e Merge pull request #9401 from tibzejoker/perf/grow-pipeline-store
perf(agc): size the pipeline store to the title's working set
2026-10-25 19:07:59 +01:00
orezraeyandClaude Opus 5.5 c5dd9f9cbc fix(libSceRtc): check the seconds before the pointer in sceRtcSetTime_t as measured on a PS5
On PS5 firmware 13.60 sceRtcSetTime_t(NULL, -1) returns
SCE_RTC_ERROR_INVALID_VALUE and sceRtcSetTime_t(NULL, 0)
SCE_RTC_ERROR_INVALID_POINTER: negative seconds are rejected before a
null destination under the later SDK rules. The other measured
GetDayOfWeek, SetTime_t and FormatRFC3339 results already matched.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:06:45 -03:00
AlxcBTW 3aa53715ce docs(debt): record the unmeasured Annex K stream function results 2026-10-25 19:04:17 +01:00
Yunus Shaikh d0c945ce86 docs(libkernel): record how poll reports a hung-up stream socket on each host 2026-10-25 19:01:11 +01:00
orezraeyandClaude Opus 5.5 642f6fc7ef docs(libkernel): mark PRIO_PGRP and PRIO_USER setpriority as unverified
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 14:59:05 -03:00
Braxton Atkinson 67c149465e feat(net): store DNS overrides and match firmware argument checks
Apply the firmware 13.42 module-probe report in PR #9506: all four DNS calls check initialization first; getters return EINVAL for null outputs or nonzero flags; setters reject flags before reading guest memory. Keep the checked input copy and document EFAULT as host safety, not firmware behavior. Use the current public Net.hpp declarations in the regression.

Rebased onto upstream e7e3e9c198. Ubuntu 24.04, GCC 13.3, Release: actual libc/libkernel/libSceNet libraries and both focused test executables built. guest_sce_net passes. A separate harness linked against those unmodified libraries passes initialization, errno, invalid flags, unreadable-input flag precedence, null clearing and unchanged-output checks. The full guest_net_dns_info test is blocked here: process_vm_readv is denied with EPERM by the execution environment. No full DNS regression pass is claimed. Public-header audit, conventions, test registration and whitespace checks pass.

The resolver still uses host DNS; IPv6 host-server discovery and firmware server-count behavior remain debt. Firmware evidence: https://github.com/boykopovar/AnyPS5/pull/9506#issuecomment-6390574180

AI-assisted: yes
2026-10-25 18:56:14 +01:00
orezraeyandClaude Opus 5.5 2a0604d3e9 fix(libkernel): keep the nice value at 0 after setpriority as measured on a PS5
On PS5 firmware 13.60 setpriority(PRIO_PROCESS, 0, v) returns 0 for -25,
-5, 5 and 25, and getpriority keeps returning 0. setpriority keeps its
target checks and returns 0 without storing the value.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 14:48:57 -03:00
Adrià 19fe176ddc Merge pull request #9456 from mazen320/feat/libc-time-get-vtable
feat(libc): export the time_get facet vtable as data
2026-10-25 18:38:52 +01:00
Adrià FranchandClaude Sonnet 5.5 44ea38fc23 fix(relinker): align the macOS import trace stack and trace only executable segments
Save r12 in the entry walk so TraceImport_nid_no_patch is called with an aligned stack, record only executable Mach-O segments in the module map, and make the test hook check the alignment.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 18:37:39 +01:00
Radu Ursache 66ca5c0442 feat(relinker): trace function imports on macOS
Walk each macOS function import before the guest entry and pass it through TraceImport_nid_no_patch, as Linux and Windows already do. An x86-64 libc build records the call and prints it on SIGABRT.
2026-10-25 18:37:23 +01:00
Adrià ac65cf490e Merge pull request #9613 from JJenkx/windows/libc-debt-bundled-readings
docs(debt): cite the bundled libc.prx for _Mtx_trylock, strdup and strndup
2026-10-25 18:36:43 +01:00
Eduardo Ruiz 1adc418e6e feat(libc): forward pthread attributes in _Pad::_Launch 2026-10-25 18:34:18 +01:00