zeroMessage appends is unsupported, and both PA_CL_CLIP_CNTL rejections passed a
name that already read unsupported PA_CL_CLIP_CNTL flags, so a rejected draw or
state reported "unsupported PA_CL_CLIP_CNTL flags is unsupported (register 0x204 =
0x0c090000)" (seen on PPSA03541). Pass the register and the noun once, as the other
call sites do.
Group capture resolves the dispatches behind a gate ahead and parks the
result per packet. A CPU store or a GPU write queued on another queue
between the resolve and the adoption was not seen, so the dispatch ran
with the descriptors and data it captured before. At adoption, reject the
ahead result when a non-code region it captured has a pending write or
no longer matches memory, and take the normal path instead.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
PPSA03396 calls sceAgcAcbMemSemaphore and sceAgcDcbMemSemaphore as
(cb, address, waitForMailbox, signalType, operation). Both read the
address from the fourth argument instead, so the call aborted with
"null or misaligned address 0x1".
Co-Authored-By: Claude Opus 5.5 <[email protected]>
sceAudioOut2SetSystemDebugState accepts only the loudness debug state (id 1, 8-byte param); other ids and sizes return the invalid param error and a null pointer returns the invalid pointer error. The one debug state the console also accepts, id 0x20 with a 4-byte param, throws.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
VulkanDevice::dispatch now ends after the resources are complete and
the pipeline is resolved, and hands a DispatchCompletion (references to
the context, shader, push constants, pipeline objects, resources and the
cache outcome) to recordCompletedDispatch, which records the dispatch
and runs what follows it: the lease sync, the traces and the recipe.
No behaviour changes; the code of both halves is unchanged.
This is the dispatch-side counterpart of the Graphics::Draw prepare and
record split discussed in #7895, so that later steps can complete a
dispatch apart from recording it.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
An unsupported speaker count returns 0x804A8451, a unit angle other than 360 or 2*pi with angles returns 0x804A8450 and a null work returns 0x804A8010, leaving the work untouched, instead of throwing.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
LEA computes an effective address and the multi-byte NOP ignores its operand, so neither accesses memory and a GS prefix on them is ignored. The Windows TLS builder and macOS image writer treated every ModRM memory form as an access and replaced these instructions with UD2 and NOP padding.
Wrap the pr_labels entrypoint in main(argv=None) with UTF-8 stream
reconfiguration using backslashreplace error handling.
Catch CalledProcessError when querying repository or pull request details
and report cleanly via parser.error rather than propagating an unhandled
traceback.
BunnyFl's firmware 13.42 check shows that the distortion, wide-near and
2D VR command queries give NOT_INITIALIZED for handle 0 before
sceHmdInitialize only when the title's compiled SDK version is below
4.50. From 4.50 the library first checks state it sets up when it
starts, which isn't measured, so handle 0 before initialization now
throws there, as it does after initialization and as all six queries
do on main. The SDK version is read from the process parameters, as
libSceHmd2 does.
guest_hmd checks handle 0 before initialization at SDK 0x044fffff and
0x04500000.
Source: https://github.com/boykopovar/AnyPS5/pull/9577#issuecomment-6343495321 (BunnyFl)
sceAgcCbSetShRegistersDirect and sceAgcCbSetUcRegistersDirect now accept
a list at any byte address because PPSA26344 passes lists at 1 mod 4.
The debt entry names that title evidence and states that how the console
reads such a list is not measured, so the host behaviour is not taken for
a measured console contract.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
sceAgcCbSetShRegistersDirect and sceAgcCbSetUcRegistersDirect refused a
register list that was not 4-byte aligned. PPSA26344 passes the sh
register list of a shader header that sits 1 byte past an 8-byte
boundary (core_common_subcore.core_b1_fx.sprig.xpps; the unaligned
headers themselves are accepted since #902), and the title aborted with
"null or misaligned address 0x8021363131" after about 11 minutes in the
open world.
The list entries are now copied byte for byte, as #7606 does for register
range values. A null list with a count still throws.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
EnterFreshRoot named the root from one steady_clock reading and reused
an existing directory. Under Rosetta 2, processes started together can
read the same value, so parallel guest_app_archive_* runs shared a root
and overwrote each other's app0.zar. The root is now claimed with
create_directory and renamed until the claim succeeds.