Skip to content

fix(src): preserve object extents and return contracts in reviewed matches - #345

Merged
llesieur99 merged 1 commit into
masterfrom
fix/reviewed-contracts-20261027
Oct 28, 2026
Merged

llesieur99 merged 1 commit into
masterfrom
fix/reviewed-contracts-20261027

Conversation

@llesieur99

Copy link
Copy Markdown
Collaborator

What

Repair the C object extents and call interfaces identified while reviewing the recently merged contributions. Particle settings now use their measured 24-byte type, and unknown-sized settings remain incomplete arrays rather than false 4-/8-byte objects. Pointer and integer/FP return declarations follow their actual callees. All integrated C functions are retained; zero additional functions or matching bytes are claimed.

The existing SDATA macro now has explicit assembler alias metadata adapted from current RAC1, with provenance, tests and cache invalidation. Canonical storage and compiler-authored instructions/operands are preserved. Both compiler chains and allocation diagnostics use the same step. Two useful near misses regain complete compilation context; one already-closed near miss is retired.

PR #344's particle payload correction is already in the base. This completes the remaining source corrections from the reviews of #337, #339, #340 and #341. No report, game assets, proprietary tools or generated evidence is included.

Checked

  • python3 tools/build.py all --strict --jobs 6 --version us: 28 programs OK, no C fallback.
  • The same command with --version us2 and --version pal: 28 programs OK each; 84 total.
  • Targeted C checks: 2,533 placements, plus the existing L02 ABI controls; absent catalogue identities are recorded as absent.
  • python3 -m unittest discover -s tests: 294 tests pass.
  • python3 tests/check_repository.py, python3 tools/progress.py --check, staged LF/BOM and git diff --check: pass.
  • All 4,623 source/tool/test input hashes agree before/after qualification and with the host source. Compiler binaries were reused unchanged.
  • Independent authored SDATA controls cover full 14-/28-byte reads, canonical storage identity, signed GP limits and rejection, ordinary-code identity, both compiler chains and cache invalidation.

These are strict linked-image and source-contract checks; no new native-port gameplay or live functional calibration is claimed.

…tches

Replace undersized particle and settings declarations with measured full types
or incomplete arrays. Keep the Tabora initializer in its existing G8 unit and
isolate the measured 24-byte Damosel settings record under G32/WaG32.

Implement the existing SDATA address-alias contract using RAC1's explicit
metadata route. Preserve canonical storage, compiler-authored operations and
ordinary assembly; reject conflicting aliases and include the helper in object
cache keys. Apply the same step in allocation diagnostics and add regression
tests and pinned GPL-3.0 provenance.

Correct pointer and integer/FP return interfaces, restore two complete retained
near misses, and retire an obsolete near miss already replaced by linked C.
All previously integrated C functions remain active. This adds zero matching
functions or bytes and leaves progress generation to the maintainer refresh.

Validated combined source: all 28 programs in each of US, US2 and PAL pass
tools/build.py all --strict, with no C fallback; 294 tests pass. Targeted checks
cover 2,533 placements plus existing ABI regressions. Repository, progress,
LF and diff checks pass; all 4,623 source/tool/test inputs remain unchanged.
@bytematchdev

bytematchdev Bot commented Oct 28, 2026

Copy link
Copy Markdown

ByteMatch progress report

SCUS_972.68

Code matched 45.04% · 2.49 MB of 5.53 MB
Fuzzy match 45.04%
Functions 5,623 / 8,584
Data matched 0.00%
Units complete 618 / 734

No function changes.

SCUS_972.68_v2

Code matched 23.63% · 1.32 MB of 5.58 MB
Fuzzy match 23.63%
Functions 5,304 / 8,639
Data matched 0.00%
Units complete 636 / 891

No function changes.

SCES_516.07

Code matched 15.01% · 856.52 KB of 5.70 MB
Fuzzy match 15.01%
Functions 4,412 / 8,677
Data matched 0.00%
Units complete 571 / 927

No function changes.

Commit 6a07494 · Ratchet & Clank: Going Commando on ByteMatch

@llesieur99
llesieur99 merged commit 5e51988 into master Oct 28, 2026
2 checks passed
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