wcstombs_s ends without error when a character does not fit a limit
below the capacity, as the console's does; wcsrtombs_s still reports
ERANGE there. Both paths became reachable with UTF-8. wcsftime keeps
returning 0 for a null buffer, and the debt entries that described the
single-byte locale now describe the UTF-8 one.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01RbLgECLQ2bpDM7oe2urGZK
Both threw. They now take no arguments and return 0x804E0801 while the
library is not initialized and 0 otherwise, as shadPS4's PS4 versions
do; that not-initialized code is the one prosper reads for
sceVoiceStart, and RPCS3's PS3 calls make the same check. Like
sceVoicePausePort they change no reported state: VitaSDK documents that
pausing every port keeps buffered data and the reported port state, and
nothing here processes port data.
guest_voice calls both before sceVoiceInit and after sceVoiceEnd
(0x804E0801), and twice each with ports open, where GetPortInfo still
reports the same type, state and frame size.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The title allocates, maps and releases about 48 direct-memory blocks per frame.
Each allocation created a pagefile-backed section and each release closed it.
A released section whose pages were never stored to (resident pages keep their
data in private memory and saved buffers, not in the section) is still blank,
so up to 256 such sections of at most 16 MiB, 256 MiB in total, are kept by
size and handed to the next allocation of that size instead of a new
CreateFileMappingW. APS5_NO_DIRECT_MEMORY_SECTION_POOL keeps the old behaviour.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
sceVideodec2GetPictureInfo writes the decoder's own picture layout. For a
VP9 decoder it now writes the 88-byte VP9 layout that
sceVideodec2GetVp9PictureInfo returns, instead of throwing. Mortal Shell 2
(PPSA34008) calls the generic query with that structure for its intro
movie. HEVC pictures still throw.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Kernel and native-library writes into guest pages the write watch left read-only fail with EFAULT on macOS and ERROR_NOACCESS on Windows (#7473). State the rule where contributors look and point the macOS write-watch debt entry at it.
An address-based compute build bound its written V# elements in place in
the host imports of the cached address space, and its BDA table sent the
same addresses there, so every access went over PCIe. A written element
inside one import region now becomes a region of its own, staged like any
written element (copy-in, device-local shadow, copy-back), and
AddressRanges cuts the import's table entry around it so pointers into
the element reach the shadow as its descriptor does. resolveOverlays
keeps a cluster only when it lies inside one direct import region, is
stagingEligible and is crossed by no in-place range or own region.
Dispatches under APS5_BDA_STAGING_MIN_THREADS (512) threads keep the
imports; APS5_NO_BDA_STAGING=1 turns it off. Test: agc_bda_staging.
The copy-back trade-off of staged elements is listed as technical debt.
AI-assisted: yes