`sceAudioOut2MasteringInit` still does not return the `0x80268006` the console returns before `sceAudioOut2Initialize`, and the entry no longer justifies that with the initialization being untracked, which this change makes untrue. The new repeat entry links `AudioOut.cpp`, where both initializers are defined.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
- Track up to 4 pad slots in libScePad with per-slot inputs, outputs, sensor fusion, and deadbands
- Support dynamic user login/logout events and multi-user registration in libSceUserService
- Map SDL controllers 0-3 to Players 1-4 in libSceVideoOut while preserving Player 1 keyboard and mouse composition
- Add test coverage for multi-controller pads and multi-user services
Branch target collection added the branch displacement to the next
instruction address as std::int64_t, which is undefined behaviour for
a segment mapped at or above 2^63 (found by fuzzing with UBSan, see
#10653). The addresses now add as unsigned values and only targets
that wrap past 2^64 are dropped, so the branch-target check also
applies to segments mapped across 2^63.
Fixes#10653
The large-input case of input_magic runs the relinker under a 512 MiB
RLIMIT_AS, so a regression that reads the whole 8 GiB input before
checking its magic (#8685) fails the conversion. An ANYPS5_ENABLE_ASAN
relinker cannot start under that limit: AddressSanitizer reserves about
14 TiB of shadow at startup, the mapping fails with ENOMEM and the
process dies before reading anything, so the test fails on every ASan
build.
Under ASan the test now gets max_allocation_size_mb=512 through
add_asan_test_options, and runs that case without the address-space
limit when the cap is in ASAN_OPTIONS. An allocation of the whole input
is then refused by ASan, which ends the conversion as the limit does,
while the shadow reservation, which is not an allocation, is left
alone. Other builds keep RLIMIT_AS.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
relocationTypeName had no case for R_X86_64_PC32, which ValidationPolicy
accepts, so a PC32 import appeared in the Linux registry as UNKNOWN(2).
The registry now prints its name like the others.
A nonzero subnormal result from _Stodx, _Stofx or _Stoldx sets neither
errno nor the error argument; only underflow to zero and overflow do.
_Stofx used to keep the ERANGE that strtof sets for an inexact
subnormal. Measured by running firmware 13.60's libSceLibcInternal.sprx
in a Linux host process, not on a console.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
glibc's vsnprintf fails a SIZE_MAX size, where the console formats as
usual; no result above INT_MAX can be returned, so the cap changes
nothing else.
Co-Authored-By: Claude Opus 5.5 <[email protected]>