Skip to content

Use Manta Ray loader and collision member interfaces - #2751

Merged
andrewboudreau merged 8 commits into
mainfrom
fix/manta-contracts-0918
Sep 18, 2026
Merged

andrewboudreau merged 8 commits into
mainfrom
fix/manta-contracts-0918

Conversation

@andrewboudreau

@andrewboudreau andrewboudreau commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Manta Ray declared Animation::LoadFile locally as returning void, conflicting with the shared char* contract, and called several existing methods through manually spelled mangled names. Use the shared loader declarations, mModelAnim.SetFile, inherited UpdatePosWithOnlySpeed, and the collision object's Clear/Update methods. This removes six unnecessary bridge declarations without changing headers or layouts.

Follow-up to #2729, which landed before this repair. Both methods pass fresh relocation-aware checks under pinned 2004/b56; the complete module build is 106/106 exact with 11,206 reproducing functions and zero mismatches. Port references pass (423 checked), and attribution shows zero changed or lost credit. The full build reused cached objects; the two target methods were compiled and link-checked separately. Existing incomplete ROM-data coverage is unchanged and is not claimed as complete.

Reconstruction remains partial: the callback shadow types, raw field/vector views, and collision-initialization bridge are tracked in #2750. This patch claims no compiler barrier for them. The committed handoff retains the original review findings. Queue task: manta-contract-repair-0918.

Independent review accepts exact head e741d4f6e16696ea9f5ec26625eaeaf42b8f4ee2 against base 6a8b012074dcb805974767cb4ac18adeb72f11bb as partial reconstruction. Fresh compilation verifies 852 bytes and 38 relocations; the composed build remains 106/106 exact. Queue task manta-composition6-review-0918 retains all six findings. Required private PR validation is pending; this is not a merge acceptance.

@tangos-validator

tangos-validator Bot commented Sep 18, 2026

Copy link
Copy Markdown

✅ PR validation — Passed

Committed merge introduces no reconstruction or attribution regression.

Full merge validation

Check Result
Committed test merge yes
Byte-verified functions 11,177 / 11,344 (98.53%, +0)
Byte-verified code bytes 2,136,384 / 2,211,124 (96.62%, +0)
Claimed, not byte-verified 147 functions, 51,284 bytes (+0)
Perfect source moves 0 R100
Contributor credit 0 added, 0 changed, 0 lost
Relocation check 2 checked; 2 VERIFIED
Port reference check 423 checked; 0 stale
Module fidelity 106/106 exact; 100.000000% compared bytes
Code linked from verified source 11,206 functions, 2,150,424 bytes (96.08%)
Module bytes from source 2,150,424 / 3,049,600 (70.5%); 806,508 (26.4%) are data no delink entry reaches
Retail-gap contribution 894,192 module bytes (87,684 function-code; 806,508 data/non-function)
ROM data reproduced from source 720 symbol(s) exact, 232 partial, 4 differ

Byte-verified means the range carries complete in a delinks.txt, so the ROM build compiled it and compared it to the cartridge. The 147 claimed functions have a src/ file named after the symbol with no NONMATCHING banner, and nothing compiles them -- dsd fills their addresses with the ROM's own bytes. Both together are the 11,324 this project calls matched.

Per-file link-check detail

All 2 changed file(s) compile to the ROM byte-for-byte with correct relocation targets.

File Symbol Result Slots checked
src/_ZN8MantaRay13InitResourcesEv.cpp _ZN8MantaRay13InitResourcesEv ✅ verified 1
src/_ZN8MantaRay8BehaviorEv.cpp _ZN8MantaRay8BehaviorEv ✅ verified 1

The private worker commits a test merge, builds the stock ROM profile, compares every executable module, measures matched and source-built code, checks contributor lineage, and verifies affected relocations. The mod profile is opt-in and is not part of this merge gate.

@andrewboudreau
andrewboudreau marked this pull request as ready for review September 18, 2026 06:26
@andrewboudreau
andrewboudreau merged commit 2b79e85 into main Sep 18, 2026
14 of 15 checks passed
@andrewboudreau
andrewboudreau deleted the fix/manta-contracts-0918 branch September 18, 2026 10:09
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