Commit Graph
10207 Commits
Author SHA1 Message Date
Qu Yi bb143b3f5c feat(libSceIcu): implement UTF-8 macro helpers 2026-10-29 10:32:12 +08:00
Qu Yi 63529b3c6d feat(libSceIcu): implement converter stop and skip callbacks 2026-10-29 10:31:44 +08:00
JJenkx 39f432f357 fix(libc): allow zero-stride bsearch_s as bundled libc does 2026-10-28 22:17:34 -04:00
SnekPolylepisandClaude Opus 5.5 54e36ff835 docs(debt): cite BunnyFl's 13.42 measurement for two AvSetting exports
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:09:28 -05:00
MarcZX10 4e90e51864 docs(debt): record what the host report was not run on
The Windows and macOS branches and a hardware GPU's output are not
checked, and the list of required Vulkan items is kept in step with
VulkanDevice.cpp by hand.
2026-10-29 02:07:19 +00:00
MarcZX10 54110e0c31 docs(game-testing): point the host line of a test report at the host report
The report prints the CPU, OS, GPU, driver and Vulkan items in one block;
the power source and the refresh rate stay with the tester.
2026-10-29 02:07:11 +00:00
MarcZX10 93d823f523 docs(env): list ANYPS5_HOST_REPORT in the environment reference
The variable is read in VulkanDevice.cpp; the row gives its values and the
refusal of any other.
2026-10-29 02:07:11 +00:00
MarcZX10 6dc9d58c2b docs(env): document ANYPS5_RUMBLE
List the controller vibration strength variable in the libScePad table with its default of 100, the paths it covers, the adaptive trigger effects it does not, and the error an invalid value raises.
2026-10-29 02:06:36 +00:00
xXPBSXxandClaude Sonnet 5.5 ecd5ae72f7 docs(agc): count how local titles call sceAgcAcbMemSemaphore and sceAgcDcbMemSemaphore
Extends the entry by one sentence of counts: 13 of 53 local titles call both functions once each, from one wrapper in the title's library code that passes the operation as a byte and zeroes two arguments for operation 7. Counts and a description of the title code only; nothing is claimed about console behavior.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 02:55:44 +01:00
dantdmdarealguy 9c13197689 docs(debt): narrow libSceSystemService's collapsed-dispatch note to the throwing calls
The LncUtil collapsed dispatch entry, written by d4f2911b74 and
50c8103af2 (#9137), said its protected service implementations remain
unchanged. Of the functions whose signatures d4f2911b74 restored,
sceSystemServiceGetAppId answers for the running title since
7c83407e11 (#8354) and sceLncUtilGetAppId since 695041093b (#10801).
Only the status, GPU-crash, dialog-activation, shared-memory,
continue and VSH-ready calls still throw.
2026-10-28 20:55:04 -05:00
Zain cf9b7c6b39 docs(libSceFreeType): place script map limitations 2026-10-28 20:43:57 -05:00
Zain 143224ed9f docs(libSceFreeType): clarify supported map property 2026-10-28 20:43:19 -05:00
Zain fa27ccb4db refactor(libSceFreeType): isolate script map adapter 2026-10-28 20:43:09 -05:00
Zain 1ca278f05a feat(libSceFreeType): expose glyph-to-script maps 2026-10-28 20:42:06 -05:00
hyvvs facc4e8781 fix(libSceFont): restore drawup texture argument ABI 2026-10-29 02:22:40 +01:00
Queuze d2ce672d13 feat(libSceFreeType): support per-face x-height limits 2026-10-28 22:06:59 -03:00
AdriàandClaude Sonnet 5.5 73703358bf docs(remoteplay): split debt into Silent stubs and Functional
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 02:06:31 +01:00
Zain a6b4c2ee7c fix(prx): drop duplicate VrTracker2 exports 2026-10-28 19:42:21 -05:00
Zain 9952a55c02 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-28 19:36:25 -05:00
Zain 49a02b630d Merge remote-tracking branch 'origin/main' into HEAD 2026-10-28 19:36:25 -05:00
Adrià 234f4d81bb fix(agc): check the rendering wait cursor before reading it, drop the mode 1 test 2026-10-29 01:29:23 +01:00
Eduardo Ruiz a24832950a fix(remoteplay): model the initialization state and accept an absent heap
The 11.00 module accepts a null heap and allocates 0x1800 bytes itself, requires at least 0x1800 for a caller heap, and keeps a state that distinguishes initialized from terminated. The three exports now follow that contract instead of throwing or always answering success.
2026-10-29 01:23:40 +01:00
JJenkx f7b1759879 fix(libc): parse scaled NaN subjects without numeric conversion 2026-10-28 20:13:03 -04:00
BunnyFlandClaude Opus 5.5 9d619dee3e docs(agc): shorten the host-pointer import debt entry under the length limit
Keeps the import exceptions, the shared-alias tracking, the per-page
exclusion with its generations and what restores tracking, and the
hint-only marks with their costs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:07:49 +01:00
BunnyFlandClaude Opus 5.5 c817507aa1 docs(agc): keep the page-exclusion debt entries under the length limit
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:06:09 +01:00
BunnyFlandClaude Opus 5.5 a3f6a014fa perf(agc): exclude only an import's own pages from the write watch and settle partial-block imports in the background
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 01:06:09 +01:00
Eduardo Ruiz f94297b8c2 docs(libc): drop the title name from the _Throw debt entry 2026-10-29 01:03:00 +01:00
Eduardo Ruiz c7b70f44b0 feat(libc): implement std::_Throw(const std::bad_array_new_length&)
Follow the console libc.prx (PPSA02530) at 0xcb2d0: ignore the argument and throw the static bad_array_new_length object. Star Wars Racer (PPSA28416) imports it.
2026-10-29 01:03:00 +01:00
slopgobblercobbler 2a4aad96e5 fix(agc): validate rendering wait buffer and expand resource registration tests 2026-10-29 00:51:53 +01:00
xXPBSXxandClaude Sonnet 5.5 c1ec0f19d6 docs(debt): record the address family titles pass to sceNetInetPton and sceNetInetNtop
The entry says the IPv6 text conversion of both exports is unverified on a
console. Add how the 53 locally run titles call them: 36 titles call
sceNetInetPton at 107 call sites and 22 call sceNetInetNtop at 67, and every
call site loads the family 2 (AF_INET) into the first argument; none loads 28
(AF_INET6). Read from the instructions of the titles' own executables, not
measured.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:51:35 +01:00
xXPBSXxandClaude Sonnet 5.5 ba998c5558 docs(libSceAudioOut): count the blocking values passed to sceAudioOut2ContextPush
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:49:14 +01:00
slopgobblercobbler e0e260357f docs(debt): document unmeasured sceSaveDataDialogOpen param size validation 2026-10-29 00:41:40 +01:00
slopgobblercobbler 0d608b579c fix(libSceSaveDataDialog.native): validate param size in sceSaveDataDialogOpen and condense debt entry 2026-10-29 00:40:57 +01:00
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
Biologisten 315050d000 fix(audio): reject invalid APS5_PAD_SPEAKER_FALLBACK_DB values and read the gain once
A set-but-invalid value, including an empty one, a non-finite number, a
number outside -60 to 0 or trailing text, stops the title with an error
naming the variable and the value instead of silently keeping 0 dB. The
gain is parsed once when the AudioOut2 context is created, kept in the
context and passed to the mix loop, so the audio thread never reads the
environment.

The one-read rule is pinned end to end: a play that changes the variable
to a value that would stop the title after the context was created keeps
the parsed fold and never re-reads the environment.
2026-10-29 00:16:16 +01:00