Skip to content

feat(src): 33 more functions exact match - #341

Closed
Lynder063 wants to merge 2 commits into
match/lynder063-27-functionsfrom
match/lynder063-33-functions
Closed

Lynder063 wants to merge 2 commits into
match/lynder063-27-functionsfrom
match/lynder063-33-functions

Conversation

@Lynder063

Copy link
Copy Markdown
Member

33 more level and boot functions of 200-600 bytes now match; this PR builds on #339.
tools/build.py all --strict is OK for all 28 programs in us, pal and us2; near misses are in nonmatching/.

🤖 Generated with Claude Code

Lynder063 and others added 2 commits October 27, 2026 23:57
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@llesieur99 llesieur99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed immutable head 42b4c94ec82076de8628520e4d2029b11def97cd, stacked on #339. Several real source contracts need correction before merge, even though local byte checks pass:

  1. src/levels/07_siberius/L07_003F4578-g8.c:249-250: func_002AD470 is declared void although prerequisite #339 defines and returns an integer 0/1. func_002A0F48 is declared as returning a scalar float although its inspected VU transform has no scalar FPR result. Preserve the actual contracts even at call sites that ignore results.
  2. src/levels/12_todano/L12_0041E3E8-split-g8.c:16: func_002AA548 is declared void, whereas its current matched definition and the retail return a 32-bit float in f0. Use the real float-return contract.
  3. src/levels/12_todano/L12_0041E3E8-g8.c:5-7,39,41: the 1F50/1F58/1F60 globals are declared as individual four-byte floats, then passed as larger blocks. Actual func_L00_0032A258 reads at least 28 bytes from its second argument and eight bytes from each third/fourth argument. These scalar declarations understate the objects and force a misleading small-data model. Use truthful range/vector-block declarations, incomplete when ownership is unknown, and appropriate isolated thresholds rather than reducing their extent to fit G8.

The L14 eight-byte range declarations are supported by the inspected callee; this is not a blanket objection to small-data arrays or RAC1 methods. Please refresh source checks and strict carrying gates after the corrections. Merge order also matters: #339 must land first, then this PR should target master with only its additional changes.

@llesieur99

Copy link
Copy Markdown
Collaborator

This head (42b4c94ec82076de8628520e4d2029b11def97cd) is already an ancestor of master through the earlier integration train. GitHub refuses retargeting to master because there are no new commits to merge.

The follow-up source-contract corrections are merged in #345. All 33 C contributions are retained, with truthful settings extents and return declarations; the combined tree passes all 84 strict programs across USA v1.01, USA v2.00 and PAL, plus 294 tests.

Closing this redundant PR as already integrated. The contributor's branch and history are preserved.

@llesieur99 llesieur99 closed this Oct 28, 2026
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.

2 participants