Commit Graph
9104 Commits
Author SHA1 Message Date
Omar Elmahy 7587941644 test(libSceVideodec): cover null and struct size validation in delete and reset decoder 2026-10-28 23:32:13 +00:00
08b5961f1b fix(tools): print the per-library progress change in %
The changed-libraries table of the progress report printed the change in
percentage points (` pp`), while the headline prints it in `%`. Both are
the difference between two percentages, so the table now uses `%` too,
including the small-change path added with the rounding fix (`+0.0006%`,
`+<0.0001%`). Keeps the two decimals, the explicit sign and the `+0.00`
rounding of tiny or negative-zero changes.

The change is moved into `percent_change()`. Tests pin the `%` unit for
the table and the headline, and `docs/dev/PROGRESS.md` describes the
column in the unit of the headline.

Rebased onto main (which now carries #10992's small-change path) and
resolved there: that path also prints `%`.

Co-authored-by: MarcZX10 <[email protected]>
Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-29 00:27:33 +01:00
Omar Elmahy 1a7b6eb4b1 test(libSceNpAuthAuthorizedAppDialog): cover argument validation precedence over uninitialized state 2026-10-28 23:26:52 +00:00
Retr0 e7798c0e4b Merge remote-tracking branch 'origin/main' into fix/freopen-directory
# Conflicts:
#	docs/dev/debt/libc.md
2026-10-29 01:22:27 +02:00
Omar Elmahy 29960a13b5 test(libSceSigninDialog): cover finished dialog open and close and result buffer preservation 2026-10-28 23:22:22 +00:00
zaryabzip 3625fdaa88 feat(libSceCamera): answer the camera audio calls without a camera 2026-10-29 04:18:30 +05:00
Dean 3a2b919816 Merge pull request #11863 from ionut27001/fix/libkernel-soc-sensor-channels
fix(libkernel): return -49 from sceKernelGetSocSensorTemperature channel 64 as a PS5 payload process does
2026-10-29 12:17:03 +13:00
Dean 711c4eca09 Merge pull request #11785 from ionut27001/fix/libc-hardware-concurrency
fix(libc): return the CPU count of the default thread mask from std::thread::hardware_concurrency
2026-10-29 12:16:46 +13:00
Lindamea1andClaude Opus 5.5 677da22471 feat(libSceHttp2): implement sceHttp2SetMinSslVersion for versions 2 to 5
sceHttp2SetMinSslVersion returns 0 for versions 2 (SSL 3.0) to 5 (TLS 1.2)
on a template or an unsent request: the range libSceSsl's
sceSslSetMinSslVersion takes on a 13.40 console (docs/dev/debt/libSceSsl.md).
The floor is not kept, as libSceSsl negotiates TLS 1.2 only, which meets
every accepted floor. Versions 0, 1 and above 5 still throw, as do context
and cookie-box ids and sent requests; unknown and deleted ids still return
0x817B1100.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Lindamea1andClaude Opus 5.5 443fea643c feat(libkernel_sys): implement scePthreadMutexInitForInternalLibc and scePthreadMutexattrInitForInternalLibc
Both call libkernel's pthread_mutex_init and pthread_mutexattr_init and
return 0x80020000 | errno on error, as shadPS4 (ce74386) exports them as
ORBIS(posix_pthread_mutex_init) and ORBIS(posix_pthread_mutexattr_init)
and ChonkyStation4 (c101a23) maps them to its POSIX init functions. A
mutex made without attributes is error-checking. FreeBSD 11.4's
malloc-internal _pthread_mutex_init_calloc_cb makes a normal mutex
instead; the gap is recorded in the libkernel_sys debt file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Lindamea1andClaude Opus 5.5 b2b07ce33d feat(libSceBluetoothHid): implement sceBluetoothHidThreadParamInitialize
sceBluetoothHidThreadParamInitialize threw NotImplemented. It now fills
the thread parameter block that sceBluetoothHidRegisterCallback reads:
the 32-bit priority at offset 0, the 64-bit affinity mask at offset 8
and 0 in the 32 bits at offset 16, leaving bytes 4 to 7 and 20 to 23
as they were, and returns 0. A null block returns 0x81540001.

This follows BunnyFl's native x86-64 run of firmware 13.42's
libSceBluetoothHid, not a console:
https://github.com/boykopovar/AnyPS5/pull/11124#issuecomment-6416053242
The test checks the run's bytes for (700, 0x3f) and the null answer.
The run does not show the success value, range checks, bytes 20 to 23
or calls before sceBluetoothHidInit; the debt entry records them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Lindamea1andClaude Opus 5.5 c85368d0b5 feat(libkernel_sys): implement kldstat
kldstat was a NotImplemented stub. It now follows FreeBSD 11.4's
sys_kldstat (sys/kern/kern_linker.c): only the version field is read
(EFAULT when that fails), and a version other than 1056
(struct kld_file_stat_1) or 2080 (struct kld_file_stat) is EINVAL.
No linker file is listed here, as for kldnext, so every file id then
gets ENOENT and the structure is never written.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Lindamea1andClaude Opus 5.5 4f4dc0d9ae feat(libSceHmd2): implement the no-session answers of sceHmd2ReprojectionEnableMirroring, GetPredictedDisplayTime and SetRenderConfig
Without a reprojection session the three calls return 0x8a72000b
(reprojection not initialized) for every argument and write nothing.
A retail PS5 answered so from a payload before sceHmd2Initialize,
with every argument null and with every argument pointing at a zeroed
16 KiB buffer (firmware 13.60, T3cm0's hmd2s log on #7798), and in a
PPSA23479 game process (firmware 13.40, frankea on #8645).
sceHmd2ReprojectionInitialize throws on main, so no session can
exist; the in-session answers stay unimplemented and are recorded in
docs/dev/debt/libSceHmd2.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:31 +00:00
Lindamea1andClaude Opus 5.5 bcf8e9be44 feat(libSceVideodec2): implement H.264 picture info in sceVideodec2GetPictureInfo and sceVideodec2GetAvcPictureInfo
Fill the 120-byte SceVideodec2AvcPictureInfo for a single owned H.264
picture queried with thisSize 0x78: SPS fields, VUI, pic_struct from the
picture-timing SEI and per-unit presence flags, parsed per ITU-T H.264
(08/2021) from the access unit that produced the picture. Layout from
SharpProspero Videodec2.cs and shadPS4 videodec2.h. Other accepted
sizes, two records and unsupported syntax still throw after the
validity clears.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:30 +00:00
Lindamea1andClaude Opus 5.5 1a87f4f6cc feat(libSceFreeTypeOt): implement FT_MulDiv_No_Round, FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled and ft_highpow2
Name four Unknown Ot exports by their NIDs and implement them after
FreeType 2.4.12 ftcalc.c and ftutil.c and bundled 2.13.3: truncating
MulDiv, the scaled matrix product and vector transform, and the highest
power of two. Inputs on which the FT_LONG64 and 32-bit builds of
FreeType 2.4.11-2.5.3 and bundled 2.13.3 can differ throw before any
output is written.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:30 +00:00
Lindamea1andClaude Opus 5.5 f70f9e34f3 feat(libSceIcu): implement u_isspace, u_isblank, u_isWhitespace, u_isJavaSpaceChar and u_isUWhiteSpace
Replace the five Unknown stubs whose NIDs hash these ICU names with the
uchar.cpp definitions of ICU 78.1 (049e0d6a), over the Zs, Zl, Zp and
White_Space code points that ICU 65.1 to 78.1 ship. Values outside
U+0000..U+10FFFF return 0, as ICU's trie error value gives.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 23:16:30 +00:00
Dean b6f08f0443 Merge pull request #11238 from zaryabzip/feat/ajm-inline-buffer
feat(libSceAjm): implement sceAjmBatchJobInlineBuffer
2026-10-29 12:16:13 +13:00
Dean 33acc03447 Merge pull request #8930 from JJenkx/perf/agc-write-changed-byte-stores
perf(agc): store a write-back's changed bytes without a masked non-temporal store
2026-10-29 12:15:29 +13:00
Dean a0f31fe0ff Merge pull request #12362 from Queuse/codex/freetype-autofitter-script-properties
feat(libSceFreeType): support autofitter scripts
2026-10-29 12:14:56 +13:00
Dean 5c8c1b0c1f Merge pull request #12288 from MarcZX10/feat/libscenet-pending-exports
feat(libSceNet): implement Show*WithMemory diagnostics and sceNetGetStatisticsInfo
2026-10-29 12:12:41 +13:00
Dean 3e3fa79116 Merge pull request #12229 from Danigamer05/feat/libc-stdc-one-runs
feat(libc): add C23 leading and trailing one counts
2026-10-29 12:10:46 +13:00
Dean 34ae0d5e9e Merge pull request #12193 from Danigamer05/feat/libc-stdc-zero-runs
feat(libc): add C23 leading and trailing zero counts
2026-10-29 12:09:21 +13:00
Evrim Cicek 74abb8ce1c fix(relinker): defer the runtime modules another deferred module needs on Windows 2026-10-29 02:09:01 +03:00
zaryabzip 217fc9f7e3 feat(libSceNpUtility): create lookup and word filter title contexts for a user id 2026-10-29 04:06:44 +05:00
Dean db3443a3f7 Merge pull request #11511 from milescoviello/docs/msgdialog-open-param-layout
docs(libSceMsgDialog): note the sceMsgDialogOpen param layout two titles write
2026-10-29 12:05:47 +13:00
Dean 37a119906c Merge pull request #11509 from milescoviello/docs/ajm-instance-create-call-sites
docs(libSceAjm): note how many instances six titles create with sceAjmInstanceCreate
2026-10-29 12:05:30 +13:00
Dean f47e079ec6 Merge pull request #11505 from milescoviello/docs/userservice-get-event-call-sites
docs(libSceUserService): note how six titles handle sceUserServiceGetEvent
2026-10-29 12:05:12 +13:00
Dean 4cda0ba896 Merge pull request #11503 from milescoviello/docs/http-wait-request-call-sites
docs(libSceHttp): note the timeouts two titles pass to sceHttpWaitRequest
2026-10-29 12:04:52 +13:00
Dean 46a49a1978 Merge pull request #11502 from milescoviello/docs/videoout-vblank-status-readers
docs(libSceVideoOut): note that four titles never read the vblank status's third word
2026-10-29 12:04:35 +13:00
Dean fc8de3bbec Merge pull request #11495 from milescoviello/docs/gameupdate-check-call-sites
docs(libSceGameUpdate): note how three titles call sceGameUpdateCheck
2026-10-29 12:03:59 +13:00
Dean d3c60c50fc Merge pull request #11492 from milescoviello/docs/agc-trinity-mode-call-sites
docs(agc): note how six titles call sceAgcGetIsTrinityMode
2026-10-29 12:03:41 +13:00
FelixKunzJr 78f3d63c2d docs(relinker): record Rosetta instruction support on an M2 Pro with macOS 27.0.1 2026-10-29 00:01:44 +01:00
Dean b76d41ea82 Merge pull request #11979 from xXPBSXx/carry/6713-default-heap-no-procparam
fix(libc): use the default heap for an executable without process parameters
2026-10-29 11:49:55 +13:00
Dean 2ae8649e6d Merge pull request #11405 from p3n1cillin/claude/videoout-hfr-unavailable-output
fix(libSceVideoOut): answer 0 and UNAVAILABLE_OUTPUT_MODE when the output has no 120 Hz, as the console does
2026-10-29 11:49:38 +13:00
Adrià 8bcd771840 Merge pull request #12106 from PrivacyOnion/feat/addresssanitizer-declarations-ps5rs
feat(libSceAddressSanitizer): add skeleton library and 301 ps5rs-listed stubs
2026-10-28 23:49:29 +01:00
Adrià 72da4926aa Merge pull request #12102 from PrivacyOnion/feat/psnowgkp-declarations-ps5
feat(libScePSNowGkp): add skeleton library and 4 PS5 3.20 stubs
2026-10-28 23:49:24 +01:00
Dean d775fc5958 Merge pull request #11403 from MarcZX10/marc/fix-libkernel-shm-anon-windows
fix(libkernel): recognize Windows anonymous shared memory descriptors
2026-10-29 11:49:22 +13:00
Adrià 26b9602a8b Merge pull request #12100 from PrivacyOnion/feat/pfs-declarations-ps5rs
feat(libScePfs): add skeleton library and 9 ps5rs-listed stubs
2026-10-28 23:49:19 +01:00
Adrià 1d72c749f4 Merge pull request #12099 from PrivacyOnion/feat/vrhand-declarations-ps5rs
feat(libSceVrHand): add skeleton library and 8 ps5rs-listed stubs
2026-10-28 23:49:14 +01:00
Adrià fe22b15fcb Merge pull request #12600 from xXPBSXx/docs/savedata-initialize3-pairing
docs(debt): count how local titles pair sceSaveDataInitialize3 and Terminate
2026-10-28 23:48:45 +01:00
Adrià e44f7224b4 Merge pull request #12542 from dantdmdarealguy/docs/hw-oracle-execution-tests-path
docs(hw-oracle): give the full path of the execution tests
2026-10-28 23:48:33 +01:00
Adrià ff17aa8596 Merge pull request #12534 from dantdmdarealguy/docs/re-call-site-example
docs(dev): point the call-site example at a stub that still throws
2026-10-28 23:48:28 +01:00
Dean 91f495595f Merge pull request #12289 from fogydes/fix/bsearch-s-zero-size
fix(libc): invoke constraint handler on zero element size in bsearch_s
2026-10-29 11:47:28 +13:00
Adrià FranchandClaude Sonnet 5.5 949c9cf477 docs(env): point APS5_DRAW_CACHE_INDIRECT at the file that reads it
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 16:13:29 -06:00
Joey Fisher 898083cae3 perf(agc): cache CPU-path indirect draws behind APS5_DRAW_CACHE_INDIRECT
cacheDrawStages never admitted a draw an indirect packet runs on the CPU
path, so a title whose draws are mostly DRAW_INDEX_INDIRECT packets with
a patched user word the vertex program reads as a value missed the draw
cache on nearly every lookup whatever its size. On Demon's Souls 97 % of
the draw packets are such draws and the hit rate stayed at 9 % with
APS5_DRAW_CACHE_ENTRIES=32768.

APS5_DRAW_CACHE_INDIRECT admits them. A hit reuses the fragment stage
and skips the first vertex pass; the stage whose user word the record
patches is still re-materialized per record, as the hit path already
provided for.

Tested: agc_driver_draw_cache_reuse_indirect (three DRAW_INDIRECT draws
patching an unfolded user word: one insert and one hit with the knob,
none without), the other draw_cache_reuse, key_miss, register_key and
draw_cache_relocation tests on lavapipe and an RTX 5070 Ti.
2026-10-28 16:13:29 -06:00
xXPBSXxandClaude Sonnet 5.5 75bb8cb2bc docs(libSceFont): record that sceFontRebindRenderer follows the shadPS4 port
The return codes of sceFontRebindRenderer come from our shadPS4-based port and
are unmeasured; the new test pins them, so the debt file now says so.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 23:10:18 +01:00
JamieandClaude Opus 5.5 fa2b143d5a fix(agc): zero host-only multisample memory in capture deltas
Late-added ranges and write-watched blocks are read through the same
host-only-aware read as the snapshot, so a CPU store over a guarded
multisample target no longer aborts a capture. The read is a helper
tested for ranges in the middle, at either edge, overlapping and
outside a block, and against a native target and its neighbor.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:58:54 +00:00
xXPBSXxandClaude Opus 5.5 0ea07e55b2 docs(debt): count how local titles pair sceSaveDataInitialize3 and Terminate
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 22:58:30 +01:00
AnyPS5 Contributor e8532d9ecc docs(libSceUserService): record unmeasured accessibility getters in technical debt 2026-10-28 22:34:17 +01:00
Yunus Shaikh 3e5441dd86 feat(libkernel_sys): implement sceKernelSettimeofday 2026-10-28 21:05:36 +00:00