The speed, ETA and prefetch checks now take their valid handle from scePlayGoInitialize and scePlayGoOpen in the same process and close it afterwards, instead of assuming handle 1.
The mesh pipeline check rejected a shader with one message for three
limits, so a shader 4 bytes over the shared memory limit could not be told
from one with too many output vertices. ValidateMeshLimits checks the
workgroup, output vertices, output primitives and LDS size separately and
names the limit and both values.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
db2575839 (#8307) made both return 0, following their bodies in the
firmware module libSceVideoRecording.sprx (xor eax, eax; ret), but left
the entry saying they are parameterless stubs that throw. The firmware
body leaves no open gap, so the entry goes. sceVideoRecordingGetStatus
no longer lists sceVideoRecordingInit among the initializers that throw.
Titles report a progressive trophy's progress with _UpdateTrophyProgress
events. Their udsNN.ucp rules feed $._trophy_progress into an int32
statistic with the max aggregation, filtered on $._trophy_id, and the
trophy's unlockCondition names that statistic. Those statistics and
rules were skipped and the events were dropped, so such trophies never
reported progress or unlocked (21 of Borderlands 4's 64).
- Read max statistics (largest value posted, from initialValue) and
int32 statistics (0 to 2147483647).
- Read a rule condition with one == property equal to an unsigned
integer, and apply the rule only to events whose property matches.
- Post _UpdateTrophyProgress through the statistic rules.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The num_put facet's eight do_put overloads build the console's printf format from the stream flags, format through snprintf and lay out the result as the SDK libc.prx does: thousands separators from the stream locale's numpunct, its decimal point, fill and width with left, right and internal adjustment, true and false names under boolalpha, and the console's prefix and infinity rules for floating point.
extensionBits and memoryUse in the red-zone framer took every 8F lead
byte without REX for an XOP prefix. For pop r/m (8F /0) that read the
ModRM byte as XOP's inverted R, X and B bits, so the base of
"pop qword [rsp-0x10]" looked like R12, and "pop rsp" through 8F was
not seen as a use of RSP. A leaf with a frame pointer that pops to an
RSP operand was framed with the operand left in place, and leaves that
pop into RSP through 8F were framed, while the REX.W forms were refused
as other use of rsp. Both now take 8F for XOP only when the map field
of the next byte is 8 or more, the rule the instruction decoder
applies.
The implementation checks the handle first and reports BAD_HANDLE (0x80B20009) or BAD_POINTER (0x80B2000A); handle 1 is the valid one, so the pointer and speed cases use it and the invalid-handle cases expect BAD_HANDLE.
The time_put facet's do_put formats % with the modifier and conversion through strftime and writes the result through the output iterator's stream buffer, following the SDK libc.prx: it stores into the put area while room remains, calls overflow otherwise, and marks the iterator failed when overflow returns eof or the buffer is null.
The implementation checks initialization only and ignores the vendor and product IDs, so unregistering before RegisterCallback returns 0; NoCallback is a RegisterDevice and callback-path result.
Destroying a std::optional is noexcept in libstdc++, so a failing sync in
the guard's destructor ended the process with std::terminate instead of
raising the sync error. The Windows writev and pwritev path now uses a
plain guard, which does nothing for -1. The debt line names the synced
write calls and leaves out the AIO writes.
FreeBSD's F_SETFL may change O_FSYNC (FCNTLFLAGS), and vn_write then
writes with IO_SYNC. The flag now lives in the status table, and the
write entry points sync a regular file after the write while it is set.