Skip to content

Reconstruct five KM2/KM3 actor profiles (wave 23) - #2158

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

Reconstruct five KM2/KM3 actor profiles (wave 23)#2158
andrewboudreau merged 4 commits into
mainfrom
cpp/profile-reconstruction-wave23

Conversation

@andrewboudreau

Copy link
Copy Markdown
Collaborator

Reconstructs five ROM-evidenced actor profile/factory pairs: KM2_GURA, KM2_AMI_BOU, KM2_UKISHIMA, KM2_NOBIRU, and KM3_KURUMA. Historical community aliases remain recorded in symbols/actor_renames.tsv and source provenance comments. Exact original SM64DS spellings are not claimed.\n\nValidation: five strict relocation-aware factory matches; 32/32 changed-source and header consumers VERIFIED; PoleLift shadow TU 7/7 exact; 98/98 shadow TUs compile; all 1,190 shadow references resolve; attribution and port references intact; 11,088/11,088 source functions and 4/4 source data claims reproduce; 106/106 modules exact.

@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,628 / 11,347 (93.66%, +0)
Byte-verified code bytes 1,987,432 / 2,211,124 (89.88%, +0)
Claimed, not byte-verified 589 functions, 118,248 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 +431
Contributor credit 0 added, 0 changed, 0 lost
Relocation check 32 checked; 32 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 594 symbol(s) exact, 175 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 589 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 28 changed file(s) compile to the ROM byte-for-byte with correct relocation targets.

File Symbol Result Slots checked
src/_ZN16FloatingFloorBfs13InitResourcesEv.cpp _ZN16FloatingFloorBfs13InitResourcesEv ✅ verified 1
src/_ZN16FloatingFloorBfs16CleanupResourcesEv.cpp _ZN16FloatingFloorBfs16CleanupResourcesEv ✅ verified 1
src/_ZN16FloatingFloorBfsD0Ev.cpp _ZN16FloatingFloorBfsD0Ev ✅ verified 1
src/_ZN16FloatingFloorBfsD1Ev.cpp _ZN16FloatingFloorBfsD1Ev ✅ verified 1
src/_ZN17ExtendingPlatform13InitResourcesEv.cpp _ZN17ExtendingPlatform13InitResourcesEv ✅ verified 1
src/_ZN17ExtendingPlatform16CleanupResourcesEv.cpp _ZN17ExtendingPlatform16CleanupResourcesEv ✅ verified 1
src/_ZN17ExtendingPlatform16OnPendingDestroyEv.cpp _ZN17ExtendingPlatform16OnPendingDestroyEv ✅ verified 1
src/_ZN17ExtendingPlatform20UpdateModelTransformEv.cpp _ZN17ExtendingPlatform20UpdateModelTransformEv ✅ verified 1
src/_ZN17ExtendingPlatform23UpdateColliderTransformEv.cpp _ZN17ExtendingPlatform23UpdateColliderTransformEv ✅ verified 1
src/_ZN17ExtendingPlatform6RenderEv.cpp _ZN17ExtendingPlatform6RenderEv ✅ verified 1
src/_ZN17ExtendingPlatform8BehaviorEv.cpp _ZN17ExtendingPlatform8BehaviorEv ✅ verified 1
src/_ZN17ExtendingPlatformD0Ev.cpp _ZN17ExtendingPlatformD0Ev ✅ verified 1
src/_ZN17ExtendingPlatformD1Ev.cpp _ZN17ExtendingPlatformD1Ev ✅ verified 1
src/_ZN18TiltingPlatformBfs13InitResourcesEv.cpp _ZN18TiltingPlatformBfs13InitResourcesEv ✅ verified 1
src/_ZN18TiltingPlatformBfs16CleanupResourcesEv.cpp _ZN18TiltingPlatformBfs16CleanupResourcesEv ✅ verified 1
src/_ZN18TiltingPlatformBfsD0Ev.cpp _ZN18TiltingPlatformBfsD0Ev ✅ verified 1
src/_ZN18TiltingPlatformBfsD1Ev.cpp _ZN18TiltingPlatformBfsD1Ev ✅ verified 1
src/_ZN8PoleLift13InitResourcesEv.cpp _ZN8PoleLift13InitResourcesEv ✅ verified 1
src/_ZN8PoleLift16CleanupResourcesEv.cpp _ZN8PoleLift16CleanupResourcesEv ✅ verified 1
src/_ZN8PoleLift6RenderEv.cpp _ZN8PoleLift6RenderEv ✅ verified 1
src/_ZN8PoleLift8BehaviorEv.cpp _ZN8PoleLift8BehaviorEv ✅ verified 1
src/_ZN8PoleLiftD0Ev.cpp _ZN8PoleLiftD0Ev ✅ verified 1
src/_ZN8PoleLiftD1Ev.cpp _ZN8PoleLiftD1Ev ✅ verified 1
src/actors/daObjKm3_Kuruma_c.cpp _ZN17daObjKm3_Kuruma_cD1Ev + _ZN17daObjKm3_Kuruma_cD0Ev + _ZN17daObjKm3_Kuruma_c16CleanupResourcesEv + _ZN17daObjKm3_Kuruma_c13InitResourcesEv + daObjKm3_Dorifu_c_Spawn ✅ verified 5
src/daObjKm2_Ami_Bou_c_classInit.c daObjKm2_Ami_Bou_c_classInit ✅ verified 1
src/daObjKm2_Gura_c_classInit.c daObjKm2_Gura_c_classInit ✅ verified 1
src/daObjKm2_Nobiru_c_classInit.c daObjKm2_Nobiru_c_classInit ✅ verified 1
src/daObjKm2_Ukishima_c_classInit.c daObjKm2_Ukishima_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:11
notes/tu-reconstruction-pilot-report.md quotes a verbatim build_pin.verify
log from before src/PoleLift_Spawn.c was renamed to
src/daObjWlPolelift_c_classInit.cpp; the log output shouldn't be rewritten,
so mark the path as a known historical reference.
Base automatically changed from cpp/profile-reconstruction-wave22 to main September 2, 2026 14:10
…ction-wave23

# Conflicts:
#	config/arm9/overlays/ov045/symbols.txt
#	config/arm9/overlays/ov047/delinks.txt
#	config/arm9/overlays/ov047/symbols.txt
#	include/daObjKm3_Kuruma_c.h
#	notes/data/c-cpp-classification.tsv
#	notes/data/tu-merge-candidates.json
#	src/daObjKm3_Kuruma_c_classInit.c
#	symbols/actor_renames.tsv
@andrewboudreau
andrewboudreau merged commit 3f1d600 into main Sep 2, 2026
11 checks passed
@andrewboudreau
andrewboudreau deleted the cpp/profile-reconstruction-wave23 branch September 2, 2026 15:07
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