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.
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.
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]>
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.
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.
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]>
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.
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]>
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]>
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]>
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]>
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]>
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]>
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]>
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]>
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]>
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]>
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.