Conversation
✅ PR validation — PassedCommitted merge introduces no reconstruction or attribution regression. Full merge validation
Byte-verified means the range carries Warnings: 2 linkcheck result(s) have unresolved relocations. Per-file link-check detailChecked 307 changed file(s): 2 BLIND, 2 DRAFT, 303 VERIFIED.
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. |
0x02005d94-0x0200651c is one arm9 translation unit holding the twelve ordinary methods. func_02005e28 and func_02005ed8 are dCapEnemy_c methods. D1 and C2 keep their single-function shards: ~dCapEnemy_c is the key function and only a member emits _ZTV11dCapEnemy_c. D2 and D0 stay on ov002.
19c6539 to
76e44e5
Compare
Summary
dCapEnemy_cmethods into one translation unit,src/actors/dCapEnemy_c_arm9.cpp, and retires their one-function shards (src/_ZN11dCapEnemy_c*.cpp,src/func_02005e28.c,src/func_02005ed8.c).Unk_02005d94,func_02005e28,func_02005ed8,DestroyIfCapNotNeeded,GetCapState,RespawnIfHasCap,GetCapEatenOffIt,ReleaseCap,RenderCapModel,UpdateCapPos,AddCap,UnloadCapModel— all realdCapEnemy_cmembers declared ininclude/dCapEnemy_c.h.D1(0x0200651c) andC2(0x02006554) keep their single-function shards.~dCapEnemy_cis this class's key function — only a member destructor emits_ZTV11dCapEnemy_c— and a member dtor/ctor inside the multi-function TU would also emitD0/D2/C1asSTB_GLOBALhomed to the ov002 TU, whichplan_manycannot deadstrip. Same licensed-range trim as the landeddaObjKuruma_csplit. The ov002D2/D0pair stays insrc/actors/dCapEnemy_c.cpp.attribution.jsoncarries the original per-function match credit onto the newpath#symbolkeys (Unk_02005d94/AddCap→andrewboudreau,UpdateCapPos→ruspecial, the rest →tangosdev).Verification
tools/tubuild.py verify arm9/dCapEnemy_c: 12/12 MATCH, TEXT-VERIFIED.tools/rombuild.py -j16 --no-rom: PASS — 106/106 modules exact, 0 mismatching source-built functions,dsd check modules --failPASS.tools/romdata_check.pyon the three dCapEnemy sources:_ZTV11dCapEnemy_cVERIFIED (124 bytes exact),_ZTI11dCapEnemy_cand_ZTI12dEnemyBase_cVERIFIED, 0 DIFFERS.tools/prepush_linkcheck.py --range origin/main..HEAD: header fan-out all VERIFIED includingD1,C2,D0,D2; the only warnings are the pre-existingBLIND-2s (dScDSMT_c::Behavior,func_02034fbcindScMB_c.cpp).tools/prepush_attribution.py: 0 changed / 0 lost.tools/queue_audit.py --check-promoted: agrees with the manifest.tools/check_decl_agreement.py --changed: clean.tools/check_dead_references.py: no new dead references.tools/port_refcheck.py: clean.Known environment caveats (pre-existing, not introduced here): the
dsd check symbolsstock control reports the same 9 ITCM/ARM9-main baseline symbols (overlay_100,overlay_102,data_020ad524,data_020ad560,func_01ff98f4,func_01ff99a4,func_01ff9d40,_deq,func_01ff9e2c) on an unmodified tree, and the locally packed ROM SHA differs from the bootstrap SHA while module bytes compare exact.Generated with Devin