Skip to content

Match shared triggers and UI setup; preserve renderer FP arguments - #420

Merged
llesieur99 merged 2 commits into
masterfrom
match/trigger-title-forwarding-20261104
Nov 4, 2026
Merged

llesieur99 merged 2 commits into
masterfrom
match/trigger-title-forwarding-20261104

Conversation

@llesieur99

Copy link
Copy Markdown
Collaborator

Match two more C functions after the five additions merged in #417:

Function USA v1.01 bytes Checked C placements
func_L01_00390A50 528 6 in each release
func_002CD3C0 284 28 in USA v1.01; canonical identity absent in US2/PAL

These are 812 distinct USA bytes and 46 additional placements. The forced-trigger arm uses the meaningful statement grouping documented from current RAC1 game C. The UI routine keeps its real screen-coordinate and owner-pointer lifetimes separate and uses the canonical point/volume interfaces.

Restore the observed owner argument in the two existing setup helpers. Also express all four floating bounds in the three regional rectangle forwarders and pass them through their typed renderer interface. Retail consumes f12 through f15; the previous C relied on those registers remaining populated without expressing that data flow. The complete helper/forwarder objects remain byte-identical. These existing functions add no matching credit.

Add a native 32-bit C regression for context selection, flags, all four bounds and the null-context path in every region. It passes the repaired source and rejects the prior source for missing floating arguments.

Retain the fourteen bounded dispatcher, sound, allocation, rounding and cache investigations in nonmatching/, with their measured residuals and reopening conditions. Remove the superseded matching/functional drafts for both new matches and their index entries.

Validation:

  • Strict USA and US2 builds passed; their compiled inputs are unchanged apart from byte-identical forwarder repairs. PAL was rebuilt on master acf5ae4f after feat(pal): carry 59 functions from their v1.01 C #418's 59-function carry.
  • All 84 complete loaded images rechecked, with zero C fallbacks and every intended C placement; seven functions including merged Match five HUD and level initialization functions #417 span 138 placements, of which this PR adds 46.
  • 168 existing owner-hook placements and 84 regional forwarder placements controlled.
  • 383 unit tests, repository checks and progress checks for all three releases.
  • README and progress reports remain unchanged. No compiler recipe or catalogue changes.

The tests establish PS2 byte equality and the C forwarding behavior; native-game runtime validation is separate.

Match func_L01_00390A50 (528 bytes) and func_002CD3C0 (284 bytes), adding
812 distinct USA v1.01 bytes and 46 carrying C placements. Group the real
forced-trigger arm, use canonical point/volume calls, and separate the UI
coordinate from its later owner pointer.

Restore the caller-supplied owner in two existing setup helpers and
explicitly forward all four FP bounds through the three regional rectangle
wrappers. Their complete objects remain unchanged. A native 32-bit C regression
covers the context, flags, bounds and null path in all regions; its prior-
source control detects the missing FP arguments.

Retain fourteen bounded near misses with their new allocation, alignment,
copy and ABI constraints. Remove obsolete matching/functional drafts and
their index entries rather than leaving parallel implementations.

Validation: 84 loaded images equal retail with zero C fallbacks; strict
USA/US2 builds preserved under an equivalent-input guard, PAL rebuilt after
upstream #418; all 46 new C placements verified, 168 owner-hook and 84
forwarder placements controlled; 383 unit tests; repository and three
progress checks. README/report bytes unchanged.
@bytematchdev

bytematchdev Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

ByteMatch progress report

SCUS_972.68

Code matched 90.31% · 4.99 MB of 5.53 MB
Fuzzy match 90.31%
Functions 8,096 / 8,578
Data matched 0.00%
Units complete 972 / 1,060

No function changes.

SCES_516.07

Code matched 55.43% · 3.16 MB of 5.70 MB
Fuzzy match 55.43%
Functions 7,156 / 8,671
Data matched 0.00%
Units complete 990 / 1,217

No function changes.

SCUS_972.68_v2

Code matched 84.86% · 4.73 MB of 5.58 MB
Fuzzy match 84.86%
Functions 7,870 / 8,633
Data matched 0.00%
Units complete 1,015 / 1,188

No function changes.

Commit 58eb5e8 · Ratchet & Clank: Going Commando on ByteMatch

Connect the shared blocker entry and compiler notes to PR #420 now that
its review URL exists. The references cover the two C matches, ignored
owner parameters and four-FP-argument forwarding in all regional wrappers.

Validation: git diff --check; both links target the published PR. All tested
production inputs and README/report bytes remain unchanged. This follow-up
only completes the documentation references after PR creation.
@llesieur99
llesieur99 merged commit 5e3add6 into master Nov 4, 2026
2 checks passed
bigbeno37 added a commit that referenced this pull request Nov 5, 2026
tools/build.py all --strict on master 236cfdf (after #416, #417, #418,
#420, 4b786ab, 4d6e47b and 236cfdf): 28 programs OK in each of us,
pal and us2. tools/progress.py for each release; --check --strict passes
for all three.

US 8,173 of 8,584 (91.80%), PAL 7,242 of 8,677 (56.58%),
US2 7,932 of 8,639 (86.02%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant