The merge with main re-added the Misc/ShaderFusion.hpp declaration that
duplicates Shader/include/InterpolantMapping.hpp, dropped
testUpdate0100Boundary, and restored the stale "behaviour unknown" debt
entry. Keep the canonical Shader declaration, restore the 32-input
no-output and reversed-matching cases (identity defaults
0x000/0x100/0x200/0x300 for the corrected encoding), and point the debt
entry at the InterpolantMapping.cpp implementation again.
The counts, the per-title numbers and the counting script stay in the PR, as the review asks. The entry now says that the type argument is the constant 0 or 1 at every call site of the 14 titles that call the function directly from the executable.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Extends the entry by one sentence of counts: 14 of 53 local titles call the function directly at 149 sites; the third argument is the constant 0 at 30 and 1 at 14 of the 44 sites read by two counts, and PPSA10261's 105 sites carry 1 at 101 and 0 at 4 in one count, which the second count checks without contradiction. Counts only; nothing is claimed about console behavior.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Adds the missing full stop after the original sentence and states that the 13 titles call both functions directly from the executable, so the entry does not read as if the other titles never call them.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
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]>
Implement sceAgcAcquireMemSetEngine following the PS5 12.70 module (0xd450).
Checks that opcode byte is 0x58 (returns 0x8a6c000c if not), leaves length
unchecked, and patches bit 31 of dword 1 using (engine << 31). Reconcile with
canonical signature in Agc.hpp and extend agc_commands tests.
Kept main's new debt entries next to this PR's FuseShaderHalves entry, and stated that entry's behaviour without naming a source.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
On a PS5 the builder writes 15 dwords: a tag write of 0xc6000006, opcode 0x3a with its arguments, initiator 0x80 whatever the modifier, and a closing tag write; GetSize returns 60. AnyPS5 wrote NUM_INSTANCES and DRAW_INDEX_2 under argument meanings nothing confirms. The driver refuses 0x3a, whose field meanings are not known, and names it DRAW_INDEX_MULTI_INST as Linux's nvd.h does.
On a PS5, sceAgcAcbWaitOnAddressGetSize and sceAgcDcbWaitOnAddressGetSize return 56 for size 0, 64 for size 1 and 0 for any other 32-bit value, and sceAgcDcbContextStateOpGetSize returns 0 for an operation above 3. The ACB wait size takes a 32-bit argument instead of a byte.