Skip to content

Reconstruct five platform profile pairs - #2141

Merged
andrewboudreau merged 4 commits into
mainfrom
cpp/profile-reconstruction-wave11
Sep 2, 2026
Merged

Reconstruct five platform profile pairs#2141
andrewboudreau merged 4 commits into
mainfrom
cpp/profile-reconstruction-wave11

Conversation

@andrewboudreau

Copy link
Copy Markdown
Collaborator

Stacked on #2140. Reconstructs the registry-facing factory/profile pairs for BK_UKISIMA, BK_ROTEBAR, BK_LIFT01, KI_HASIRA, and KI_ITA: daObjBk_Ukisima_c_classInit / g_profile_BK_UKISIMA; daObjBk_Rotebar_c_classInit / g_profile_BK_ROTEBAR; daObjBk_Lift_c_classInit / g_profile_BK_LIFT01; daObjKi_Hasira_c_classInit / g_profile_KI_HASIRA; daObjKi_Ita_c_classInit / g_profile_KI_ITA. These preserve the separation between ROM RTTI class identity and existing community implementation aliases such as RotatingPlatformWf, RotatingBridge, TowerStep, RockPillar, and FloatOnWaterPlatformJrb. Exact original SM64DS spellings are not claimed, and no source-owned profile descriptor data is invented. Validation: all five factories match 2004/b56 with strict relocation checks; 35 affected sources checked (34 VERIFIED plus one pre-existing non-blocking NO-SYM warning for the promoted daObjKm3_Kaitendai_c TU); five history-preserving path moves keep attribution intact; 98/98 reconstructed TUs compile; 11,088/11,088 source functions and 4/4 source data claims reproduce; 106/106 modules exact; repository reference, attribution, compatibility, language-mode, and dead-reference gates pass.

@tangos-validator

tangos-validator Bot commented Sep 1, 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 10,655 / 11,347 (93.90%, +0)
Byte-verified code bytes 1,989,784 / 2,211,124 (89.99%, +0)
Claimed, not byte-verified 562 functions, 115,896 bytes (+0)
Perfect source moves 0 R100
Enrolled ranges (delinks complete) 11,059 functions, 2,053,148 bytes (92.86%, +0) -- differs from byte-verified by +404
Contributor credit 0 added, 0 changed, 0 lost
Relocation check 40 checked; 40 VERIFIED
Port reference check 405 checked; 0 stale
Module fidelity 106/106 exact; 100.000000% compared bytes
Code linked from verified source 11,088 functions, 2,067,148 bytes (93.49%)
Module bytes from source 2,067,148 / 3,049,600 (67.8%); 811,492 (26.6%) are data no delink entry reaches
ROM data reproduced from source 589 symbol(s) exact, 172 partial, 5 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 562 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,217 this project calls matched.

Per-file link-check detail

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

File Symbol Result Slots checked
src/_ZN10RockPillar13InitResourcesEv.cpp _ZN10RockPillar13InitResourcesEv ✅ verified 1
src/_ZN10RockPillar16CleanupResourcesEv.cpp _ZN10RockPillar16CleanupResourcesEv ✅ verified 1
src/_ZN10RockPillar6RenderEv.cpp _ZN10RockPillar6RenderEv ✅ verified 1
src/_ZN10RockPillar8BehaviorEv.cpp _ZN10RockPillar8BehaviorEv ✅ verified 1
src/_ZN10RockPillarD0Ev.cpp _ZN10RockPillarD0Ev ✅ verified 1
src/_ZN10RockPillarD1Ev.cpp _ZN10RockPillarD1Ev ✅ verified 1
src/_ZN16daObjKaitendai_c6RenderEv.cpp _ZN16daObjKaitendai_c6RenderEv ✅ verified 1
src/_ZN16daObjKaitendai_c8BehaviorEv.cpp _ZN16daObjKaitendai_c8BehaviorEv ✅ verified 1
src/_ZN16daObjKaitendai_cD0Ev.cpp _ZN16daObjKaitendai_cD0Ev ✅ verified 1
src/_ZN16daObjKaitendai_cD1Ev.cpp _ZN16daObjKaitendai_cD1Ev ✅ verified 1
src/_ZN18RotatingPlatformRr13InitResourcesEv.cpp _ZN18RotatingPlatformRr13InitResourcesEv ✅ verified 1
src/_ZN18RotatingPlatformRr16CleanupResourcesEv.cpp _ZN18RotatingPlatformRr16CleanupResourcesEv ✅ verified 1
src/_ZN18RotatingPlatformRrD0Ev.cpp _ZN18RotatingPlatformRrD0Ev ✅ verified 1
src/_ZN18RotatingPlatformRrD1Ev.cpp _ZN18RotatingPlatformRrD1Ev ✅ verified 1
src/_ZN18RotatingPlatformWf13InitResourcesEv.cpp _ZN18RotatingPlatformWf13InitResourcesEv ✅ verified 1
src/_ZN18RotatingPlatformWf16CleanupResourcesEv.cpp _ZN18RotatingPlatformWf16CleanupResourcesEv ✅ verified 1
src/_ZN18RotatingPlatformWfD0Ev.cpp _ZN18RotatingPlatformWfD0Ev ✅ verified 1
src/_ZN18RotatingPlatformWfD1Ev.cpp _ZN18RotatingPlatformWfD1Ev ✅ verified 1
src/_ZN19RotatingPlatformLll13InitResourcesEv.cpp _ZN19RotatingPlatformLll13InitResourcesEv ✅ verified 1
src/_ZN19RotatingPlatformLll16CleanupResourcesEv.cpp _ZN19RotatingPlatformLll16CleanupResourcesEv ✅ verified 1
src/_ZN19RotatingPlatformLllD0Ev.cpp _ZN19RotatingPlatformLllD0Ev ✅ verified 1
src/_ZN19RotatingPlatformLllD1Ev.cpp _ZN19RotatingPlatformLllD1Ev ✅ verified 1
src/_ZN23FloatOnWaterPlatformJrb13InitResourcesEv.cpp _ZN23FloatOnWaterPlatformJrb13InitResourcesEv ✅ verified 1
src/_ZN23FloatOnWaterPlatformJrbD0Ev.cpp _ZN23FloatOnWaterPlatformJrbD0Ev ✅ verified 1
src/_ZN23FloatOnWaterPlatformJrbD1Ev.cpp _ZN23FloatOnWaterPlatformJrbD1Ev ✅ verified 1
src/actors/d_a_obj_wc_obj07.cpp _ZN15daObjWc_Obj07_cD1Ev + _ZN15daObjWc_Obj07_cD0Ev + _ZN15daObjWc_Obj07_c16CleanupResourcesEv + _ZN15daObjWc_Obj07_c13InitResourcesEv + daObjWc_Obj07_c_Spawn ✅ verified 5
src/actors/daObjKm3_Kaitendai_c.cpp _ZN20daObjKm3_Kaitendai_cD1Ev + _ZN20daObjKm3_Kaitendai_cD0Ev + _ZN20daObjKm3_Kaitendai_c16CleanupResourcesEv + _ZN20daObjKm3_Kaitendai_c13InitResourcesEv + func_ov047_021113bc ✅ verified 5
src/daObjBk_Lift_c_classInit.c daObjBk_Lift_c_classInit ✅ verified 1
src/daObjBk_Rotebar_c_classInit.c daObjBk_Rotebar_c_classInit ✅ verified 1
src/daObjBk_Ukisima_c_classInit.c daObjBk_Ukisima_c_classInit ✅ verified 1
src/daObjKi_Hasira_c_classInit.c daObjKi_Hasira_c_classInit ✅ verified 1
src/daObjKi_Ita_c_classInit.c daObjKi_Ita_c_classInit ✅ 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 2, 2026 05:04
Base automatically changed from cpp/profile-reconstruction-wave10 to main September 2, 2026 06:39
…ction-wave11

# Conflicts:
#	include/daObjKaitendai_c.h
#	notes/data/c-cpp-classification.tsv
notes/tu-filename-reconstruction-pilot.md documents the intake filenames
as they were when the pilot ran; src/Stage_Spawn.cpp and
src/func_02023624.c were renamed away by main's TU promotion before this
merge landed.
@andrewboudreau
andrewboudreau merged commit 0b18511 into main Sep 2, 2026
9 checks passed
@andrewboudreau
andrewboudreau deleted the cpp/profile-reconstruction-wave11 branch September 2, 2026 07:43
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