Repository navigation
fix(APR): correct guest resolution outputs, object layout and gather sizing - #2789
Conversation
|
Thank you for your interest in the project! We are sorry, but we cannot accept more PRs while we work through the existing backlog. This PR has been automatically closed and labeled "intake paused". This is not a judgment of the quality of your changes. |
a72abc1 to
b299350
Compare
|
Checked on Linux (GCC, Release) with the PR rebased onto current Added as our own commit: a TechnicalDebt line recording that the Merging once CI is green. |
|
Additional platform validation of standalone PR head Windows: passed — Windows 11, WinLibs GCC 15.2.0 UCRT/POSIX/SEH r7; CMake 4.3.1 / Ninja; Release, 1 checks, 0 failures, 0 CTest skips. Built the selected targets and dependencies; this is focused validation, not a full build or full-suite run. Checks: Command after building: No title/gameplay validation. These results cover the standalone head, not a merge with current main. |
What
Split from #1616, following its review. Set guest errno, invalidate failed file IDs/sizes and return the successful ForEach count. Match the 24-byte object: type at 0, cursor at 4, count at 8, capacity at 12 and pointer at 16, as asserted by ampr_emu; its 32-bit type word is represented as two 16-bit fields.
Compact gathers use 12 rather than 40 bytes to avoid HFW's 1 MiB buffer exhaustion. Opcode 29 and the three-word packing are AnyPS5 internal encoding, not console opcodes; existing 40-bit offsets and lengths 1 through 2^32 are retained. Keep that distinction in the header comment and record the reference/limits in TechnicalDebt. Three commits.
Tested
Linux x86-64, GCC 16.2.1, Release.
guest_ampr_markerspasses, including guest errno/failed output handling, constrained-buffer gather execution and size/offset boundary checks. Object field offsets are asserted at compile time. Conventions and whitespace checks pass on current main (5edae353).Depends on
None for build. HFW integration also needs #2785 (relinker), #2786 (loader), #2787 (filesystem), #2788 (http), #2790 (shader). #1269 (media), #1339 (VRR), #1586 (unwind) and #1436 (imports) are now on main. Local image-table experiments are excluded; open #757 → #758 overlaps them, and #920 is closed without merging. Earlier combined integration reached menu/loading UI; these isolated branches have not been game-tested and gameplay is unverified.
Checklist
main; no duplicate implementation found beyond superseded fix(linux): resolve loader and APR failures exposed by HFW #1616