Repository navigation
feat(src): match shared steering update and repair retained large functions - #391
Merged
Merged
Conversation
…airs Promote func_L04_003FA7E0 from its retained reconstruction: 4,516 distinct USA bytes, with two placements in each USA release. The current quadword block-move support reproduces the template assignment. Correct helper return contracts resolve the remaining camera-store/call scheduling difference. Canonical names, the real buffers and the existing compiler profile are retained. The sixteen-function investigation also repairs the retained caller contracts, the waypoint pair's 64-bit sentinel/reset, complete collision-request storage, unsigned alpha packing and camera-route layout. Remove fourteen dummy local declarations instead of using them to influence stack or pseudo numbering. Keep fifteen unmatched reconstructions and their negative results in the existing nonmatching index and compiler/blocker notes. Equal size, local corrections and allocation experiments receive no matching or functional credit. The old nonmatching copy of the promoted function is retired. No compiler, catalogue, shared-header, functional-manifest or progress-report change is included. Game data, generated evidence and trial outputs stay private. Validation: - tools/check.py: the new C matches all four carrying USA placements; PAL identity absent. - tools/build.py all --strict --version us: 28 programs OK, zero C fallbacks. - tools/build.py all --strict --version us2: 28 programs OK, zero C fallbacks. - tools/build.py all --strict --version pal: 28 programs OK, zero C fallbacks. - python3 -m unittest discover -s tests: 339 tests passed. - tests/check_repository.py and tools/progress.py --check for all three releases passed. - All 7,568 qualified production-input hashes agree with the host checkout; LF/diff checks passed. - No native gameplay test or functional capture replay was run; reports were not regenerated.
ByteMatch progress reportSCES_516.07
No function changes. SCUS_972.68_v2
No function changes. SCUS_972.68
No function changes. Commit 364ccfe · Ratchet & Clank: Going Commando on ByteMatch |
Veradictus
added a commit
to DrLegitamate/rac2-decomp
that referenced
this pull request
Nov 3, 2026
…o HUD rows func_002859C8 declared func_0028E640 and func_0027C878 as returning int and passed their results to func_0028F410 and func_0027FC70 as int, but both build a 64-bit GS TEX0 word (dsll32/ld) that the callee keeps whole: on the host the high half was lost. func_0027FAA8 returns int. func_0034B2C8 declared the formatter func_00115DA8 with fixed arguments; it is variadic. Prototypes as llesieur99's OpenRAC#391 found them in the near-miss drafts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Match
func_L04_003FA7E0, the shared steering and impact-effect update: 4,516distinct USA code bytes, placed in Barlow and Joba in both USA v1.01 and v2.00.
PAL has no row with this canonical identity.
The current compiler already produces the normal aligned 0x50-byte template copy.
Restoring the helpers' real float, integer and pointer return declarations closes
the remaining camera-store/call scheduling difference. The return contracts were
checked against consuming callers and deliberate return sequences in retail. The
implementation uses canonical external names and the existing per-file profile;
no compiler patch, register pin, synthetic dependency or ad-hoc assembly is added.
The full investigation covered 16 large functions / 68,664 retail bytes. The
other 15 remain nonmatching; they add no matching or functional credit. Retain
their useful corrections and reopening conditions in the existing source/index:
64-bit render/style parameters, and the loader's heap-pointer contract.
the later direction vector as retail does. Keep the real three-quadword matrix
extents. The unexplained request scalar is not filled with an invented value.
numbering. Preserve unsigned alpha packing and the measured camera-route layout.
rounding barriers. The final countdown loop in
func_L00_003C9978exists inretail; it is preserved, not mistaken for dummy code.
The promoted function replaces its marker and old nonmatching copy. No catalogue,
compiler, shared-header, functional-manifest or progress-report changes are included.
All private disassembly, objects and trial evidence remain outside the repository.
Checked
Validation:
All 384 applicable candidate placements were checked across the three releases:
four complete placements match, and the remaining 380 do not. Missing canonical
identities do not imply the absence of related gameplay code in another release.
No native gameplay test or functional capture replay was run. Strict production
builds do not qualify the code retained in
nonmatching/.This PR is ready for maintainer review and is intentionally left open.