Skip to content

Declare dScMgBase_c slot 29 (OnAimedAtWithEgg) across the minigame family - #2100

Merged
andrewboudreau merged 1 commit into
mainfrom
cpp/minigame-slot29
Sep 1, 2026
Merged

Declare dScMgBase_c slot 29 (OnAimedAtWithEgg) across the minigame family#2100
andrewboudreau merged 1 commit into
mainfrom
cpp/minigame-slot29

Conversation

@andrewboudreau

Copy link
Copy Markdown
Collaborator

Twelfth of the eighteen slot commits in the dScMgBase_c keystone campaign. Stacked on #2099 (slot 28); base retargets to main when that lands.

What it does

Declares slot 29 on dScMgBase_c and on the two descendants that override it, so all 32 vtables that reach this slot emit their word from source instead of stopping one entry short.

metric slot 28 slot 29 delta
verifiedBytes 35,404 35,408 +4
partialBytes 11,376 11,500 +124
verified / partial / differs 465 / 253 / 6 465 / 253 / 6 unchanged

128 bytes total = the census's 32 tables at four bytes each; 31 are PARTIAL and one is already VERIFIED, which is the whole of the split.

rombuild -j 16 --no-rom: 11,088 / 11,088 reproducing, 106/106 exact, 100.000000% of compared bytes, ROM-build analysis PASS.

What settled the signature

Arity — measured three times, and the third witness is destructive. dScMgSlot3_c's override clobbers r1 with a masked read of the sub display-control register and only then tail-branches into the base. A second argument passed in r1 would arrive at dScMgBase_c's body as a DISPCNT word, so the base cannot be reading one.

Return type — a hint, not a measurement, and the second consecutive slot no body pins. Neither exit sets r0 deliberately. No caller settles it either, and here that is measured: scanning arm9 and all 103 overlays for the dispatch pair (ldr rN,[rM,#0x74] immediately followed by blx rN — not any load at +0x74, which also matches an ordinary field read) finds 35 sites, of which exactly one is in ov004 or ov006. That one is inside dScMgBase_c::OnKicked, and the instruction after the blx is add r0,r4,#0x4000: the result is dead before anything can read it. The other 34 sit in enemy overlays — dActor_c's branch, sharing the index and nothing else.

No reconciliation pass. First slot since 26 where no descendant had already declared the member early, so nothing had to be un-declared in the same commit.

A name correction, and a caution about all of them

ov006:0x020e6d24 carried recovered name: dScMgTrampoline2_c_OnAimedAtWithEgg. Five vtables hold that address, so the body is dScMgD3DBase_c's — the seventh such misattribution in this campaign, the sixth on that class. Unlike slots 26–28 this one is not a twelve-byte veneer but a real 0x68-byte body, so its #include and the type it casts this to had to move with the name.

The larger caution is written into the header, and it is worth reading before the next slot:

Every method name in this range is transplanted from include/dActor_c.h at the same index. The cartridge carries class names only, so the recovered name: comments are themselves index transplants, not independent recoveries — there was never a second witness, only the same witness reached twice.

Here the ROM contradicts the transplant. The sole in-family dispatch is edge-guarded on mMenuOpen, and the body saves POWCNT1's screen-swap bit and both BG-enable bytes into the object, clears every layer- and window-enable bit in both DISPCNTs, saves 0x400 bytes of BG palette and 0x2000 bytes of sub-screen OBJ VRAM into the object, then draws the menu's own palettes and a per-language image over the top. That is the three-item overlay menu going up. It is not a Yoshi egg.

The name is kept anyway — coining a replacement would put an unverifiable identifier on a byte-exact symbol, and that blocks data verification. It is kept as a label, not as a claim, and the header now says so. Whether slots 18–30 get a systematic rename to menu/interaction semantics is a call for the repo owner, not for this PR.

A refutation banked for slot 30

include/dActor_c.h:151 returns a Vector3 by value at slot 30. That cannot be transplanted here: at ov004:0x020ae168 slot 30 is dispatched with r0 still holding this, where a 12-byte return would put a hidden result pointer in r0 and this in r1 under AAPCS. Recorded in the header and in notes/dScMgBase_c-slots-18-35.md now rather than rediscovered next week.

Readability

The base body drops its 27-method shadow scaffold — a local struct Base of twenty-six placeholder virtuals plus struct Obj : Base { char pad[0x4700]; }, which existed only so self->Init() would compile to a load of vtable+0x68. Slot 26 is OnHitByCannonBlastedChar and dScMgBase_c declares it now, so the class does that job and both calls say what they are. Field offsets give way to the names the header already carried (mSavedScreenSwap, mSavedMainBgBits, mSavedSubBgBits, mSceneKind); the two buffers inside pad_228 stay as raw offsets, since this body is the only evidence for their extent. Both volatile unsigned short tmp = 0; round-trips are preserved verbatim — they generate the strh/ldrh pair.

Gates

  • rombuild -j 16 --no-romPASS, 11,088/11,088, 106/106 exact
  • romdata_check -j 16 — no regressions; deltas as tabled above
  • check_dead_references — clean; two stale prose references to the renamed file retargeted (notes/minigame-provenance.md, and mSavedMainBgBits's own comment in dScMgBase_c.h)
  • port_refcheck — 405 references, all resolve
  • check_header_offsets --changed origin/main — 7 changed headers, 0 mismatched, 0 unparsed
  • langmode_audit --check — ratchet PASS
  • pre-push hooks — 11,038 stems none doubled, 97/97 TUs compile

🤖 Generated with Claude Code

https://claude.ai/code/session_01QhhAeJwXBnfPp7B5DNjCwh

…mily

Twelfth of the eighteen slot commits. Declares slot 29 on dScMgBase_c and on
the two descendants that override it, so every one of the 32 vtables that
reaches this slot now emits its word from source instead of stopping one
entry short.

  romdata_check, against slot 28's tree:
    verifiedBytes  35404 -> 35408  (+4)
    partialBytes   11376 -> 11500  (+124)
    verified/partial/differs counts  465/253/6  unchanged
  128 bytes = the 32 tables in the census, four bytes each: 31 of them are
  PARTIAL and one is already VERIFIED, which is where the split comes from.

  rombuild -j 16 --no-rom: 11,088/11,088 reproducing, 106/106 exact,
  100.000000% of compared bytes, ROM-build analysis PASS.

WHAT SETTLED THE SIGNATURE

Arity is measured three times and the third witness is destructive rather
than circumstantial. dScMgSlot3_c's override clobbers r1 with a masked read
of the sub display-control register and only then tail-branches into the
base, so a second argument in r1 would arrive at dScMgBase_c's body as a
DISPCNT word. It cannot be reading one.

Return type is a hint, not a measurement -- the second consecutive slot no
body pins. Neither exit sets r0 deliberately. No caller settles it either,
and that is measured, not assumed: scanning arm9 and all 103 overlays for
the dispatch PAIR (`ldr rN,[rM,#0x74]` immediately followed by `blx rN`,
not any load at +0x74) finds 35 sites, of which exactly ONE is in ov004 or
ov006. That one is inside dScMgBase_c::OnKicked, and the instruction after
the blx is `add r0,r4,#0x4000` -- the result is dead before anything reads
it. The other 34 are in enemy overlays, dActor_c's branch.

No reconciliation pass. This is the first slot since 26 where no descendant
had already declared the member early, so nothing had to be un-declared
alongside it.

A NAME CORRECTION, AND A CAUTION ABOUT ALL OF THEM

ov006:0x020e6d24 carried `recovered name: dScMgTrampoline2_c_OnAimedAtWithEgg`.
Five vtables hold that address, so the body is dScMgD3DBase_c's -- the
seventh such misattribution in this campaign and the sixth on that class.
Unlike slots 26-28 this one is not a twelve-byte veneer but a real 0x68-byte
body, so its include and the type it casts `this` to moved with the name.

The caution is larger and is written into the header. Every method name in
this range is transplanted from include/dActor_c.h at the same index; the
cartridge carries class names only, so the `recovered name:` comments are
themselves index transplants, not independent recoveries. There was never a
second witness. Here the ROM contradicts the transplant: the sole in-family
dispatch is edge-guarded on mMenuOpen, and the body saves POWCNT1's
screen-swap bit and both BG-enable bytes, clears every layer- and
window-enable bit in both DISPCNTs, saves 0x400 bytes of BG palette and
0x2000 bytes of sub-screen OBJ VRAM into the object, and draws the menu's
own palettes and a per-language image over the top. That is the three-item
overlay menu going up. It is not a Yoshi egg. The name is kept, because
coining a replacement would put an unverifiable identifier on a byte-exact
symbol -- but it is kept as a LABEL, and slots 18-30 should be read that way.

AND A REFUTATION BANKED FOR SLOT 30

include/dActor_c.h:151 returns a Vector3 by value at slot 30. That cannot be
transplanted here: at ov004:0x020ae168 slot 30 is dispatched with r0 still
holding `this`, where a 12-byte return would put a hidden result pointer in
r0 and `this` in r1 under AAPCS. Recorded in the header and in the notes now
rather than rediscovered later.

READABILITY

The base body drops its 27-method shadow scaffold -- a local `struct Base`
of twenty-six placeholder virtuals plus `struct Obj : Base` with a
`char pad[0x4700]`, which existed only so `self->Init()` would compile to a
load of vtable+0x68. Slot 26 is OnHitByCannonBlastedChar and dScMgBase_c
declares it, so the class does that job and both calls say what they are.
Field offsets give way to the names the header already carried; the two
buffers inside pad_228 stay as raw offsets, since this body is the only
evidence for their extent.

Gates: rombuild PASS, romdata_check no regressions, check_dead_references
clean (two stale prose references to the renamed file retargeted),
port_refcheck 405/405, check_header_offsets 7 changed headers 0 mismatched,
langmode ratchet PASS.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhhAeJwXBnfPp7B5DNjCwh
@andrewboudreau andrewboudreau added the attribution-override Maintainer accepts this PR's contributor-credit changes; validation reports them as warnings label Aug 31, 2026
@tangos-validator

tangos-validator Bot commented Aug 31, 2026

Copy link
Copy Markdown

✅ PR validation — Passed

Committed merge passes; 2 contributor credit reassignment(s) noted, not a blocker.

Full merge validation

Check Result
Committed test merge yes
Byte-verified functions 10,781 / 11,347 (95.01%, +0)
Byte-verified code bytes 2,004,460 / 2,211,124 (90.65%, +0)
Claimed, not byte-verified 436 functions, 101,220 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 +278
Contributor credit 0 added, 2 changed, 0 lost
Relocation check 1345 checked; 5 BLIND, 1340 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 465 symbol(s) exact, 253 partial, 6 differ

Contributor credit moved (2)

Function Source Before After
ov006:0x020e6d24 src/func_ov006_020e6d24.cpp -> src/_ZN14dScMgD3DBase_c16OnAimedAtWithEggEv.cpp tangosdev andrewboudreau
ov006:0x0210aa3c src/func_ov006_0210aa3c.c -> src/_ZN12dScMgSlot3_c16OnAimedAtWithEggEv.c ruspecial andrewboudreau

Byte-verified means the range carries complete in a delinks.txt, so the ROM build compiled it and compared it to the cartridge. The 436 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.

Warnings: contributor attribution changed, not a blocker (2 changed, 0 lost -- src/_ZN14dScMgD3DBase_c16OnAimedAtWithEggEv.cpp: tangosdev -> andrewboudreau; src/_ZN12dScMgSlot3_c16OnAimedAtWithEggEv.c: ruspecial -> andrewboudreau); 5 linkcheck result(s) have unresolved relocations.

Per-file link-check detail

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

File Symbol Result Slots checked
src/AmbientSoundEffects_Spawn.c AmbientSoundEffects_Spawn ✅ verified 1
src/Amp_Spawn.c Amp_Spawn ✅ verified 1
src/ArmedRotatingPlatform_Spawn.c ArmedRotatingPlatform_Spawn ✅ verified 1
src/ArrowLift_Spawn.c ArrowLift_Spawn ✅ verified 1
src/ArrowPathLift_Spawn.c ArrowPathLift_Spawn ✅ verified 1
src/ArrowSignLeft_Spawn.c ArrowSignLeft_Spawn ✅ verified 1
src/ArrowSignRight_Spawn.c ArrowSignRight_Spawn ✅ verified 1
src/BabyPenguin_Spawn.c BabyPenguin_Spawn ✅ verified 1
src/BasementWater_Spawn.c BasementWater_Spawn ✅ verified 1
src/BigBrickBlock_Spawn.c BigBrickBlock_Spawn ✅ verified 1
src/BigBully_Spawn.c BigBully_Spawn ✅ verified 1
src/BigMovingIceBlock_Spawn.c BigMovingIceBlock_Spawn ✅ verified 1
src/BigMrI_Spawn.c BigMrI_Spawn ✅ verified 1
src/Bird_Spawn.c Bird_Spawn ✅ verified 1
src/BlackBrickBlock_Spawn.c BlackBrickBlock_Spawn ✅ verified 1
src/BlueCoin_Spawn.c BlueCoin_Spawn ✅ verified 1
src/BlueFlame_Spawn.c BlueFlame_Spawn ✅ verified 1
src/BobOmbBuddy_Spawn.c BobOmbBuddy_Spawn ✅ verified 1
src/BobOmb_Spawn.c BobOmb_Spawn ✅ verified 1
src/BookShotSpawner_Spawn.c BookShotSpawner_Spawn ✅ verified 1
src/BookShot_Spawn.c BookShot_Spawn ✅ verified 1
src/Bookend_Spawn.c Bookend_Spawn ✅ verified 1
src/BowserFireSeaArena_Spawn.c BowserFireSeaArena_Spawn ✅ verified 1
src/BowserFire_Spawn.c BowserFire_Spawn ✅ verified 1
src/BowserPuzzlePiece_Spawn.c BowserPuzzlePiece_Spawn ✅ verified 1
src/BowserShockwaves_Spawn.c BowserShockwaves_Spawn ✅ verified 1
src/BowserTail_Spawn.c BowserTail_Spawn ✅ verified 1
src/Bowser_Spawn.c Bowser_Spawn ✅ verified 1
src/BrickBlockSwitchActivated_Spawn.c BrickBlockSwitchActivated_Spawn ✅ verified 1
src/BrickBlock_Spawn.c BrickBlock_Spawn ✅ verified 1
src/BulletBill_Spawn.c BulletBill_Spawn ✅ verified 1
src/Bullet_Spawn.c Bullet_Spawn ✅ verified 1
src/Bully_Spawn.c Bully_Spawn ✅ verified 1
src/Butterfly_Spawn.c Butterfly_Spawn ✅ verified 1
src/CameraTag_Spawn.c CameraTag_Spawn ✅ verified 1
src/Camera_UpdateMatrices.c Camera_UpdateMatrices ✅ verified 1
src/CapBlockLuigi_Spawn.c CapBlockLuigi_Spawn ✅ verified 1
src/CapBlockMario_Spawn.c CapBlockMario_Spawn ✅ verified 1
src/CapBlockWario_Spawn.c CapBlockWario_Spawn ✅ verified 1
src/Cap_Spawn.c Cap_Spawn ✅ verified 1
src/CastleWater_Spawn.c CastleWater_Spawn ✅ verified 1
src/CccArena_Spawn.c CccArena_Spawn ✅ verified 1
src/CccBigIce_Spawn.c CccBigIce_Spawn ✅ verified 1
src/CccSmallIce_Spawn.c CccSmallIce_Spawn ✅ verified 1
src/CgStairs_Spawn.c CgStairs_Spawn ✅ verified 1
src/ChainChompFence_Spawn.c ChainChompFence_Spawn ✅ verified 1
src/CheepCheep_Spawn.c CheepCheep_Spawn ✅ verified 1
src/ChillBully_Spawn.c ChillBully_Spawn ✅ verified 1
src/Chuckya_Spawn.c Chuckya_Spawn ✅ verified 1
src/ClockPaintingHandLong_Spawn.c ClockPaintingHandLong_Spawn ✅ verified 1
src/ClockPaintingHandShort_Spawn.cpp ClockPaintingHandShort_Spawn ✅ verified 1
src/ClockPaintingPendulum_Spawn.c ClockPaintingPendulum_Spawn ✅ verified 1
src/Cloud_Spawn.c Cloud_Spawn ✅ verified 1
src/Coffin_Spawn.c Coffin_Spawn ✅ verified 1
src/Coin_Spawn.c Coin_Spawn ✅ verified 1
src/CrazedCrate_Spawn.c CrazedCrate_Spawn ✅ verified 1
src/CutsceneObject_Spawn.c CutsceneObject_Spawn ✅ verified 1
src/DonutBlock_Spawn.c DonutBlock_Spawn ✅ verified 1
src/Door_Spawn.c Door_Spawn ✅ verified 1
src/DorrieCap_Spawn.c DorrieCap_Spawn ✅ verified 1
src/EnemySpawner_Spawn.c EnemySpawner_Spawn ✅ verified 1
src/EnemySwitchTag_Spawn.c EnemySwitchTag_Spawn ✅ verified 1
src/ExclamationBlockVs_Spawn.c ExclamationBlockVs_Spawn ✅ verified 1
src/ExclamationBlock_Spawn.c ExclamationBlock_Spawn ✅ verified 1
src/ExclamationSwitch_Spawn.c ExclamationSwitch_Spawn ✅ verified 1
src/Exit_Spawn.c Exit_Spawn ✅ verified 1
src/ExtendingPlatform_Spawn.c ExtendingPlatform_Spawn ✅ verified 1
src/FallBlockBfs_Spawn.c FallBlockBfs_Spawn ✅ verified 1
src/FallBlockLll_Spawn.c FallBlockLll_Spawn ✅ verified 1
src/FirePiranhaPlantBig_Spawn.c FirePiranhaPlantBig_Spawn ✅ verified 1
src/FirePiranhaPlantSmall_Spawn.c FirePiranhaPlantSmall_Spawn ✅ verified 1
src/FirePiranhaPlant_Spawn.c FirePiranhaPlant_Spawn ✅ verified 1
src/Fireball_Spawn.c Fireball_Spawn ✅ verified 1
src/Fish_Spawn.cpp Fish_Spawn ✅ verified 1
src/Flag_Spawn.c Flag_Spawn ✅ verified 1
src/FloatOnLavaPlatform_Spawn.c FloatOnLavaPlatform_Spawn ✅ verified 1
src/FloatOnWaterPlatformJrb_Spawn.c FloatOnWaterPlatformJrb_Spawn ✅ verified 1
src/FloatOnWaterPlatformWdwRectangle_Spawn.c FloatOnWaterPlatformWdwRectangle_Spawn ✅ verified 1
src/FloatOnWaterPlatformWdwSquare_Spawn.c FloatOnWaterPlatformWdwSquare_Spawn ✅ verified 1
src/FloatingFloorBfs_Spawn.c FloatingFloorBfs_Spawn ✅ verified 1
src/FloatingFloorLllBig_Spawn.c FloatingFloorLllBig_Spawn ✅ verified 1
src/FloatingFloorLllSmall_Spawn.c FloatingFloorLllSmall_Spawn ✅ verified 1
src/FlyGuy_Spawn.c FlyGuy_Spawn ✅ verified 1
src/FortressTowerWall_Spawn.c FortressTowerWall_Spawn ✅ verified 1
src/FortressTower_Spawn.c FortressTower_Spawn ✅ verified 1
src/FortressWallBreakable_Spawn.c FortressWallBreakable_Spawn ✅ verified 1
src/FortressWall_Spawn.c FortressWall_Spawn ✅ verified 1
src/Fwoosh_Spawn.c Fwoosh_Spawn ✅ verified 1
src/GoombaLarge_Spawn.c GoombaLarge_Spawn ✅ verified 1
src/GoombaSmall_Spawn.c GoombaSmall_Spawn ✅ verified 1
src/Goomba_Spawn.c Goomba_Spawn ✅ verified 1
src/GreenShellBlockTag_Spawn.c GreenShellBlockTag_Spawn ✅ verified 1
src/Grindel_Spawn.c Grindel_Spawn ✅ verified 1
src/HauntedChair_Spawn.c HauntedChair_Spawn ✅ verified 1
src/HealingHeart_Spawn.c HealingHeart_Spawn ✅ verified 1
src/HeaveHo_Spawn.c HeaveHo_Spawn ✅ verified 1
src/HootTheOwl_Spawn.c HootTheOwl_Spawn ✅ verified 1
src/HugeWater_Spawn.c HugeWater_Spawn ✅ verified 1
src/IceBlock_Spawn.c IceBlock_Spawn ✅ verified 1
src/IceSheet_Spawn.c IceSheet_Spawn ✅ verified 1
src/IceSlideManager_Spawn.c IceSlideManager_Spawn ✅ verified 1
src/JetStream_Spawn.c JetStream_Spawn ✅ verified 1
src/Key_Spawn.c Key_Spawn ✅ verified 1
src/KingBobOmb_Spawn.c KingBobOmb_Spawn ✅ verified 1
src/Klepto_Spawn.c Klepto_Spawn ✅ verified 1
src/KnockDownPlank_Spawn.c KnockDownPlank_Spawn ✅ verified 1
src/KoopaFlag_Spawn.c KoopaFlag_Spawn ✅ verified 1
src/KoopaShell_Spawn.c KoopaShell_Spawn ✅ verified 1
src/KoopaSmall_Spawn.c KoopaSmall_Spawn ✅ verified 1
src/KoopaTheQuick_Spawn.c KoopaTheQuick_Spawn ✅ verified 1
src/Koopa_Spawn.c Koopa_Spawn ✅ verified 1
src/LakituBro_Spawn.c LakituBro_Spawn ✅ verified 1
src/Lakitu_Spawn.c Lakitu_Spawn ✅ verified 1
src/LastStar_Spawn.c LastStar_Spawn ✅ verified 1
src/LavaBubble_Spawn.c LavaBubble_Spawn ✅ verified 1
src/LavaPlank_Spawn.c LavaPlank_Spawn ✅ verified 1
src/LightBeam_Spawn.c LightBeam_Spawn ✅ verified 1
src/MantaRay_Spawn.c MantaRay_Spawn ✅ verified 1
src/MegaMushroomBlockTag_Spawn.c MegaMushroomBlockTag_Spawn ✅ verified 1
src/MegaMushroom_Spawn.c MegaMushroom_Spawn ✅ verified 1
src/MetalNetLift_Spawn.c MetalNetLift_Spawn ✅ verified 1
src/MetalNet_Spawn.c MetalNet_Spawn ✅ verified 1
src/MgBobOmbSquad_Spawn.c MgBobOmbSquad_Spawn ✅ verified 1
src/MgHideAndBooSeek_Spawn.c MgHideAndBooSeek_Spawn ✅ verified 1
src/MgLakituLaunch_Spawn.c MgLakituLaunch_Spawn ✅ verified 1
src/MgPuzzlePanelPuzzlePanic_Spawn.c MgPuzzlePanelPuzzlePanic_Spawn ✅ verified 1
src/MgShuffleShell_Spawn.c MgShuffleShell_Spawn ✅ verified 1
src/MgWanted_Spawn.c MgWanted_Spawn ✅ verified 1
src/Moneybag_Spawn.c Moneybag_Spawn ✅ verified 1
src/MontyMoleRock_Spawn.c MontyMoleRock_Spawn ✅ verified 1
src/MontyMole_Spawn.c MontyMole_Spawn ✅ verified 1
src/MotherPenguin_Spawn.c MotherPenguin_Spawn ✅ verified 1
src/MovingBarBig_Spawn.c MovingBarBig_Spawn ✅ verified 1
src/MovingBarSmall_Spawn.c MovingBarSmall_Spawn ✅ verified 1
src/MrBlizzard_Spawn.c MrBlizzard_Spawn ✅ verified 1
src/MrI_Spawn.c MrI_Spawn ✅ verified 1
src/MugenBgm_Spawn.c MugenBgm_Spawn ✅ verified 1
src/Number_Spawn.c Number_Spawn ✅ verified 1
src/OneUpLogo_Spawn.c OneUpLogo_Spawn ✅ verified 1
src/OneUpMushroomBlockTag_Spawn.c OneUpMushroomBlockTag_Spawn ✅ verified 1
src/OneUpMushroom_Spawn.c OneUpMushroom_Spawn ✅ verified 1
src/OrangeBallBillboard_Spawn.c OrangeBallBillboard_Spawn ✅ verified 1
src/PeachPainting_Spawn.c PeachPainting_Spawn ✅ verified 1
src/PiranhaPlant_Spawn.c PiranhaPlant_Spawn ✅ verified 1
src/PokeySegment_Spawn.c PokeySegment_Spawn ✅ verified 1
src/Pokey_Spawn.c Pokey_Spawn ✅ verified 1
src/PoleBillboard_Spawn.c PoleBillboard_Spawn ✅ verified 1
src/PoleLift_Spawn.c PoleLift_Spawn ✅ verified 1
src/PowerFlower_Spawn.c PowerFlower_Spawn ✅ verified 1
src/PowerStar_Spawn.c PowerStar_Spawn ✅ verified 1
src/PrincessPeach_Spawn.c PrincessPeach_Spawn ✅ verified 1
src/PyramidStep_Spawn.c PyramidStep_Spawn ✅ verified 1
src/PyramidTag_Spawn.c PyramidTag_Spawn ✅ verified 1
src/PyramidTop_Spawn.c PyramidTop_Spawn ✅ verified 1
src/QuestionBlock_Spawn.c QuestionBlock_Spawn ✅ verified 1
src/RabbitKey_Spawn.c RabbitKey_Spawn ✅ verified 1
src/Rabbit_Spawn.c Rabbit_Spawn ✅ verified 1
src/RacingPenguin_Spawn.c RacingPenguin_Spawn ✅ verified 1
src/RedCoin_Spawn.c RedCoin_Spawn ✅ verified 1
src/RedFlame_Spawn.c RedFlame_Spawn ✅ verified 1
src/RickshawBdw_Spawn.c RickshawBdw_Spawn ✅ verified 1
src/RickshawPlatformBdw_Spawn.c RickshawPlatformBdw_Spawn ✅ verified 1
src/RickshawPlatformBs_Spawn.c RickshawPlatformBs_Spawn ✅ verified 1
src/RockTriangle_Spawn.c RockTriangle_Spawn ✅ verified 1
src/RollingIronBall_Spawn.c RollingIronBall_Spawn ✅ verified 1
src/RollingLogLll_Spawn.c RollingLogLll_Spawn ✅ verified 1
src/RollingLogTtm_Spawn.c RollingLogTtm_Spawn ✅ verified 1
src/RopeBarrier_Spawn.c RopeBarrier_Spawn ✅ verified 1
src/RotatingBridge_Spawn.c RotatingBridge_Spawn ✅ verified 1
src/RotatingClockHand_Spawn.c RotatingClockHand_Spawn ✅ verified 1
src/RotatingCogSmall_Spawn.c RotatingCogSmall_Spawn ✅ verified 1
src/RotatingPlatformLll_Spawn.c RotatingPlatformLll_Spawn ✅ verified 1
src/RotatingPlatformRr_Spawn.c RotatingPlatformRr_Spawn ✅ verified 1
src/RotatingPlatformWdw_Spawn.c RotatingPlatformWdw_Spawn ✅ verified 1
src/RotatingPlatformWf_Spawn.c RotatingPlatformWf_Spawn ✅ verified 1
src/RotatingUpDownPlatformUtm_Spawn.c RotatingUpDownPlatformUtm_Spawn ✅ verified 1
src/RotatingUpDownPlatform_Spawn.c RotatingUpDownPlatform_Spawn ✅ verified 1
src/Scuttlebug_Spawn.c Scuttlebug_Spawn ✅ verified 1
src/Seaweed_Spawn.c Seaweed_Spawn ✅ verified 1
src/SeesawBdw_Spawn.c SeesawBdw_Spawn ✅ verified 1
src/SeesawBfs_Spawn.c SeesawBfs_Spawn ✅ verified 1
src/SeesawBob_Spawn.c SeesawBob_Spawn ✅ verified 1
src/SeesawBsPlank_Spawn.c SeesawBsPlank_Spawn ✅ verified 1
src/SeesawBsZigZag_Spawn.c SeesawBsZigZag_Spawn ✅ verified 1
src/SeesawRr_Spawn.c SeesawRr_Spawn ✅ verified 1
src/SeesawUtm_Spawn.c SeesawUtm_Spawn ✅ verified 1
src/Shark_Spawn.c Shark_Spawn ✅ verified 1
src/ShipDown_Spawn.c ShipDown_Spawn ✅ verified 1
src/ShipUp_Spawn.c ShipUp_Spawn ✅ verified 1
src/ShipWater_Spawn.c ShipWater_Spawn ✅ verified 1
src/ShipWing_Spawn.c ShipWing_Spawn ✅ verified 1
src/ShutterBob_Spawn.c ShutterBob_Spawn ✅ verified 1
src/ShutterHmc_Spawn.c ShutterHmc_Spawn ✅ verified 1
src/SignPost_Spawn.c SignPost_Spawn ✅ verified 1
src/SilverStarBlockTag_Spawn.c SilverStarBlockTag_Spawn ✅ verified 1
src/SilverStar_Spawn.c SilverStar_Spawn ✅ verified 1
src/SlideDecorationBlueSmiley_Spawn.c SlideDecorationBlueSmiley_Spawn ✅ verified 1
src/SlideDecorationOrangeSmiley_Spawn.c SlideDecorationOrangeSmiley_Spawn ✅ verified 1
src/SlideDecorationSilverStar_Spawn.c SlideDecorationSilverStar_Spawn ✅ verified 1
src/SlideDecorationYellowStar_Spawn.c SlideDecorationYellowStar_Spawn ✅ verified 1
src/SlidingBox_Spawn.c SlidingBox_Spawn ✅ verified 1
src/SlidingIceSpawner_Spawn.c SlidingIceSpawner_Spawn ✅ verified 1
src/SlidingIce_Spawn.c SlidingIce_Spawn ✅ verified 1
src/SlidingPlatformBdw_Spawn.c SlidingPlatformBdw_Spawn ✅ verified 1
src/SlidingPlatformBfsRectangle_Spawn.c SlidingPlatformBfsRectangle_Spawn ✅ verified 1
src/SlidingPlatformBfsSquare_Spawn.c SlidingPlatformBfsSquare_Spawn ✅ verified 1
src/SlidingPlatformBsLong_Spawn.c SlidingPlatformBsLong_Spawn ✅ verified 1
src/SlidingPlatformBsWide_Spawn.c SlidingPlatformBsWide_Spawn ✅ verified 1
src/SlidingPlatformRr_Spawn.c SlidingPlatformRr_Spawn ✅ verified 1
src/SlidingPlatformWf_Spawn.c SlidingPlatformWf_Spawn ✅ verified 1
src/Snowball_Spawn.c Snowball_Spawn ✅ verified 1
src/SnowmanBody_Spawn.c SnowmanBody_Spawn ✅ verified 1
src/SnowmanHead_Spawn.c SnowmanHead_Spawn ✅ verified 1
src/Snufit_Spawn.c Snufit_Spawn ✅ verified 1
src/SpikeBomb_Spawn.c SpikeBomb_Spawn ✅ verified 1
src/Spindrift_Spawn.c Spindrift_Spawn ✅ verified 1
src/SpinningPlatform_Spawn.c SpinningPlatform_Spawn ✅ verified 1
src/Spiny_Spawn.c Spiny_Spawn ✅ verified 1
src/SquareMetalNetLift_Spawn.c SquareMetalNetLift_Spawn ✅ verified 1
src/SquarePathLift_Spawn.c SquarePathLift_Spawn ✅ verified 1
src/StarDoor_Spawn.c StarDoor_Spawn ✅ verified 1
src/StarMarker_Spawn.c StarMarker_Spawn ✅ verified 1
src/StarSwitch_Spawn.c StarSwitch_Spawn ✅ verified 1
src/StaticRock_Spawn.c StaticRock_Spawn ✅ verified 1
src/SublevelToLevel.c SublevelToLevel ✅ verified 1
src/SwitchActivatedPlank_Spawn.c SwitchActivatedPlank_Spawn ✅ verified 1
src/Swoop_Spawn.c Swoop_Spawn ✅ verified 1
src/TTC_MovingBeam_Spawn.c TTC_MovingBeam_Spawn ✅ verified 1
src/Thwomp_Spawn.c Thwomp_Spawn ✅ verified 1
src/TiltingPlatformBfs_Spawn.c TiltingPlatformBfs_Spawn ✅ verified 1
src/TiltingPlatformLll_Spawn.c TiltingPlatformLll_Spawn ✅ verified 1
src/TinyWater_Spawn.c TinyWater_Spawn ✅ verified 1
src/Toad_Spawn.c Toad_Spawn ✅ verified 1
src/Tornado_Spawn.c Tornado_Spawn ✅ verified 1
src/TowerStep_Spawn.c TowerStep_Spawn ✅ verified 1
src/TreasureChest_Spawn.c TreasureChest_Spawn ✅ verified 1
src/TtcMovingCubeA_Spawn.c TtcMovingCubeA_Spawn ✅ verified 1
src/TtcMovingCubeB_Spawn.c TtcMovingCubeB_Spawn ✅ verified 1
src/TtcRotatingCube_Spawn.c TtcRotatingCube_Spawn ✅ verified 1
src/TtcRotatingGear_Spawn.c TtcRotatingGear_Spawn ✅ verified 1
src/TtcRotatingPrism_Spawn.c TtcRotatingPrism_Spawn ✅ verified 1
src/TtcRotatingTriangle_Spawn.c TtcRotatingTriangle_Spawn ✅ verified 1
src/UkikiCage_Spawn.c UkikiCage_Spawn ✅ verified 1
src/UkikiStar_Spawn.c UkikiStar_Spawn ✅ verified 1
src/UkikiThief_Spawn.c UkikiThief_Spawn ✅ verified 1
src/UpDownLiftBbh_Spawn.c UpDownLiftBbh_Spawn ✅ verified 1
src/UpDownLiftHmc_Spawn.c UpDownLiftHmc_Spawn ✅ verified 1
src/UpDownLiftRr_Spawn.c UpDownLiftRr_Spawn ✅ verified 1
src/VirtualDoor_Spawn.c VirtualDoor_Spawn ✅ verified 1
src/VolcanoFire_Spawn.c VolcanoFire_Spawn ✅ verified 1
src/WDW_Water_Spawn.c WDW_Water_Spawn ✅ verified 1
src/WallSign_Spawn.c WallSign_Spawn ✅ verified 1
src/WarpPipe_Spawn.c WarpPipe_Spawn ✅ verified 1
src/Warp_Spawn.c Warp_Spawn ✅ verified 1
src/WaterBomb_Spawn.c WaterBomb_Spawn ✅ verified 1
src/WaterDiamond_Spawn.c WaterDiamond_Spawn ✅ verified 1
src/WaterRing_Spawn.c WaterRing_Spawn ✅ verified 1
src/WaterSuction_Spawn.c WaterSuction_Spawn ✅ verified 1
src/Whirlpool_Spawn.c Whirlpool_Spawn ✅ verified 1
src/YoshiEgg_Spawn.c YoshiEgg_Spawn ✅ verified 1
src/_ZN10BowserFire8BehaviorEv.cpp _ZN10BowserFire8BehaviorEv ✅ verified 1
src/_ZN10BowserTail8BehaviorEv.cpp _ZN10BowserTail8BehaviorEv ✅ verified 1
src/_ZN10BrickBlock16CleanupResourcesEv.cpp _ZN10BrickBlock16CleanupResourcesEv ✅ verified 1
src/_ZN10ChainChomp13InitResourcesEv.cpp _ZN10ChainChomp13InitResourcesEv ✅ verified 1
src/_ZN10ChainChomp8BehaviorEv.cpp _ZN10ChainChomp8BehaviorEv ✅ verified 1
src/_ZN10CheepCheep13InitResourcesEv.cpp _ZN10CheepCheep13InitResourcesEv ✅ verified 1
src/_ZN10CheepCheep8BehaviorEv.cpp _ZN10CheepCheep8BehaviorEv ✅ verified 1
src/_ZN10ChillBully13InitResourcesEv.cpp _ZN10ChillBully13InitResourcesEv ✅ verified 1
src/_ZN10DonutBlock13InitResourcesEv.cpp _ZN10DonutBlock13InitResourcesEv ✅ verified 1
src/_ZN10DonutBlock16CleanupResourcesEv.cpp _ZN10DonutBlock16CleanupResourcesEv ✅ verified 1
src/_ZN10HootTheOwl13InitResourcesEv.cpp _ZN10HootTheOwl13InitResourcesEv ✅ verified 1
src/_ZN10HootTheOwl8BehaviorEv.cpp _ZN10HootTheOwl8BehaviorEv ✅ verified 1
src/_ZN10KingBobOmb13InitResourcesEv.cpp _ZN10KingBobOmb13InitResourcesEv ✅ verified 1
src/_ZN10KingBobOmb6RenderEv.cpp _ZN10KingBobOmb6RenderEv ✅ verified 1
src/_ZN10KingBobOmb8BehaviorEv.cpp _ZN10KingBobOmb8BehaviorEv ✅ verified 1
src/_ZN10LavaBridge16CleanupResourcesEv.cpp _ZN10LavaBridge16CleanupResourcesEv ✅ verified 1
src/_ZN10LavaBridge8BehaviorEv.cpp _ZN10LavaBridge8BehaviorEv ✅ verified 1
src/_ZN10LavaSeesaw16CleanupResourcesEv.cpp _ZN10LavaSeesaw16CleanupResourcesEv ✅ verified 1
src/_ZN10MrBlizzard13InitResourcesEv.cpp _ZN10MrBlizzard13InitResourcesEv ✅ verified 1
src/_ZN10MrBlizzard8BehaviorEv.cpp _ZN10MrBlizzard8BehaviorEv ✅ verified 1
src/_ZN10PyramidTop13InitResourcesEv.cpp _ZN10PyramidTop13InitResourcesEv ✅ verified 1
src/_ZN10PyramidTop16CleanupResourcesEv.cpp _ZN10PyramidTop16CleanupResourcesEv ✅ verified 1
src/_ZN10PyramidTop8BehaviorEv.cpp _ZN10PyramidTop8BehaviorEv ✅ verified 1
src/_ZN10RockPillar13InitResourcesEv.cpp _ZN10RockPillar13InitResourcesEv ✅ verified 1
src/_ZN10RockPillar16CleanupResourcesEv.cpp _ZN10RockPillar16CleanupResourcesEv ✅ verified 1
src/_ZN10Scuttlebug13InitResourcesEv.cpp _ZN10Scuttlebug13InitResourcesEv ✅ verified 1
src/_ZN10Scuttlebug8BehaviorEv.cpp _ZN10Scuttlebug8BehaviorEv ✅ verified 1
src/_ZN10ShutterBob16CleanupResourcesEv.cpp _ZN10ShutterBob16CleanupResourcesEv ✅ verified 1
src/_ZN10ShutterBob8BehaviorEv.cpp _ZN10ShutterBob8BehaviorEv ✅ verified 1
src/_ZN10ShutterHmc13InitResourcesEv.cpp _ZN10ShutterHmc13InitResourcesEv ✅ verified 1
src/_ZN10ShutterHmc16CleanupResourcesEv.cpp _ZN10ShutterHmc16CleanupResourcesEv ✅ verified 1
src/_ZN10SlidingBox13InitResourcesEv.cpp _ZN10SlidingBox13InitResourcesEv ✅ verified 1
src/_ZN10SlidingBox16CleanupResourcesEv.cpp _ZN10SlidingBox16CleanupResourcesEv ✅ verified 1
src/_ZN10StarMarker13InitResourcesEv.cpp _ZN10StarMarker13InitResourcesEv ✅ verified 1
src/_ZN10StarMarker16CleanupResourcesEv.cpp _ZN10StarMarker16CleanupResourcesEv ✅ verified 1
src/_ZN10StarMarker16OnPendingDestroyEv.cpp _ZN10StarMarker16OnPendingDestroyEv ✅ verified 1
src/_ZN10StarMarker8BehaviorEv.cpp _ZN10StarMarker8BehaviorEv ✅ verified 1
src/_ZN10StarSwitch15OnGroundPoundedER8dActor_c.cpp _ZN10StarSwitch15OnGroundPoundedER8dActor_c ✅ verified 1
src/_ZN10StarSwitch8BehaviorEv.cpp _ZN10StarSwitch8BehaviorEv ✅ verified 1
src/_ZN10dBgActor_c13IsClsnInRangeE5Fix12IiES1_.cpp _ZN10dBgActor_c13IsClsnInRangeE5Fix12IiES1_ ✅ verified 1
src/_ZN10dBgActor_c21IsClsnInRangeOnScreenE5Fix12IiES1_.cpp _ZN10dBgActor_c21IsClsnInRangeOnScreenE5Fix12IiES1_ ✅ verified 1
src/_ZN10dBgCh_Actr16UpdateContinuousEv.cpp _ZN10dBgCh_Actr16UpdateContinuousEv ✅ verified 1
src/_ZN10dBgCh_Actr20UpdateDiscreteNoLavaEv.cpp _ZN10dBgCh_Actr20UpdateDiscreteNoLavaEv ✅ verified 1
src/_ZN10dBgCh_Actr22UpdateContinuousNoLavaEv.cpp _ZN10dBgCh_Actr22UpdateContinuousNoLavaEv ✅ verified 1
src/_ZN10dBgCh_Actr22UpdateDiscreteNoLava_2Ev.cpp _ZN10dBgCh_Actr22UpdateDiscreteNoLava_2Ev ✅ verified 1
src/_ZN10dBgW_KcMbg7SetFileEP8KCL_FileRK9Matrix4x35Fix12IiEsR10CLPS_Block.c _ZN10dBgW_KcMbg7SetFileEP8KCL_FileRK9Matrix4x35Fix12IiEsR10CLPS_Block ✅ verified 1
src/_ZN10dScEntry_c13InitResourcesEv.cpp _ZN10dScEntry_c13InitResourcesEv ✅ verified 1
src/_ZN10dScEntry_c16CleanupResourcesEv.cpp _ZN10dScEntry_c16CleanupResourcesEv ✅ verified 1
src/_ZN10dScEntry_c6RenderEv.cpp _ZN10dScEntry_c6RenderEv ✅ verified 1
src/_ZN10dScEntry_c8BehaviorEv.cpp _ZN10dScEntry_c8BehaviorEv ✅ verified 1
src/_ZN10dScMgCup_c13InitResourcesEv.cpp _ZN10dScMgCup_c13InitResourcesEv ✅ verified 1
src/_ZN10dScMgCup_c6RenderEv.cpp _ZN10dScMgCup_c6RenderEv ✅ verified 1
src/_ZN10dScMgCup_c8BehaviorEv.cpp _ZN10dScMgCup_c8BehaviorEv ✅ verified 1
src/_ZN10dScMgCup_cD0Ev.cpp _ZN10dScMgCup_cD0Ev ✅ verified 1
src/_ZN10dScMgCup_cD1Ev.cpp _ZN10dScMgCup_cD1Ev ✅ verified 1
src/_ZN10dScTitle_c6RenderEv.cpp _ZN10dScTitle_c6RenderEv ✅ verified 1
src/_ZN10dScTitle_c8BehaviorEv.cpp _ZN10dScTitle_c8BehaviorEv ✅ verified 1
src/_ZN10daPgDfdr_c13InitResourcesEv.cpp _ZN10daPgDfdr_c13InitResourcesEv ✅ verified 1
src/_ZN10daPgDfdr_c8BehaviorEv.cpp _ZN10daPgDfdr_c8BehaviorEv ✅ verified 1
src/_ZN10daPgMthr_c13InitResourcesEv.cpp _ZN10daPgMthr_c13InitResourcesEv ✅ verified 1
src/_ZN11BillBlaster16CleanupResourcesEv.cpp _ZN11BillBlaster16CleanupResourcesEv ✅ verified 1
src/_ZN11ChiefChilly13InitResourcesEv.cpp _ZN11ChiefChilly13InitResourcesEv ✅ verified 1
src/_ZN11CrazedCrate13InitResourcesEv.cpp _ZN11CrazedCrate13InitResourcesEv ✅ verified 1
src/_ZN11CrazedCrate8BehaviorEv.cpp _ZN11CrazedCrate8BehaviorEv ✅ verified 1
src/_ZN11DiamondLift13InitResourcesEv.cpp _ZN11DiamondLift13InitResourcesEv ✅ verified 1
src/_ZN11DiamondLift16CleanupResourcesEv.cpp _ZN11DiamondLift16CleanupResourcesEv ✅ verified 1
src/_ZN11MirrorLuigi13InitResourcesEv.cpp _ZN11MirrorLuigi13InitResourcesEv ✅ verified 1
src/_ZN11MirrorLuigi6RenderEv.cpp _ZN11MirrorLuigi6RenderEv ✅ verified 1
src/_ZN11MirrorLuigi8BehaviorEv.cpp _ZN11MirrorLuigi8BehaviorEv ✅ verified 1
src/_ZN11PowerFlower13InitResourcesEv.cpp _ZN11PowerFlower13InitResourcesEv ✅ verified 1
src/_ZN11PowerFlower8BehaviorEv.cpp _ZN11PowerFlower8BehaviorEv ✅ verified 1
src/_ZN11PyramidLift13InitResourcesEv.cpp _ZN11PyramidLift13InitResourcesEv ✅ verified 1
src/_ZN11PyramidStep16CleanupResourcesEv.cpp _ZN11PyramidStep16CleanupResourcesEv ✅ verified 1
src/_ZN11PyramidStep8BehaviorEv.cpp _ZN11PyramidStep8BehaviorEv ✅ verified 1
src/_ZN11SnowmanBody8BehaviorEv.cpp _ZN11SnowmanBody8BehaviorEv ✅ verified 1
src/_ZN11SnowmanHead13InitResourcesEv.cpp _ZN11SnowmanHead13InitResourcesEv ✅ verified 1
src/_ZN11SoundObject13InitResourcesEv.cpp _ZN11SoundObject13InitResourcesEv ✅ verified 1
src/_ZN11SoundObject8BehaviorEv.cpp _ZN11SoundObject8BehaviorEv ✅ verified 1
src/_ZN11VirtualDoor8BehaviorEv.cpp _ZN11VirtualDoor8BehaviorEv ✅ verified 1
src/_ZN11VolcanoFire13InitResourcesEv.cpp _ZN11VolcanoFire13InitResourcesEv ✅ verified 1
src/_ZN11dCapEnemy_c12Unk_02005d94Ev.cpp _ZN11dCapEnemy_c12Unk_02005d94Ev ✅ verified 1
src/_ZN11dCapEnemy_c15RespawnIfHasCapEv.cpp _ZN11dCapEnemy_c15RespawnIfHasCapEv ✅ verified 1
src/_ZN11dCapEnemy_c21DestroyIfCapNotNeededEv.cpp _ZN11dCapEnemy_c21DestroyIfCapNotNeededEv ✅ verified 1
src/_ZN11dScMgBase_c15OnHitByMegaCharEv.cpp _ZN11dScMgBase_c15OnHitByMegaCharEv ✅ verified 1
src/_ZN11dScMgBase_c15graphCallback_c14GraphCallback0Ev.cpp _ZN11dScMgBase_c15graphCallback_c14GraphCallback0Ev ✅ verified 1
src/_ZN11dScMgBase_c15graphCallback_c14GraphCallback1Ev.cpp _ZN11dScMgBase_c15graphCallback_c14GraphCallback1Ev ✅ verified 1
src/_ZN11dScMgBase_c15graphCallback_c14GraphCallback2Ev.cpp _ZN11dScMgBase_c15graphCallback_c14GraphCallback2Ev ✅ verified 1
src/_ZN11dScMgBase_c15graphCallback_c14GraphCallback3Ev.cpp _ZN11dScMgBase_c15graphCallback_c14GraphCallback3Ev ✅ verified 1
src/_ZN11dScMgBase_c16OnAimedAtWithEggEv.cpp _ZN11dScMgBase_c16OnAimedAtWithEggEv ✅ verified 1
src/_ZN11dScMgBase_c19OnHitFromUnderneathEv.cpp _ZN11dScMgBase_c19OnHitFromUnderneathEv ✅ verified 1
src/_ZN11dScMgBase_c8OnPushedEv.cpp _ZN11dScMgBase_c8OnPushedEv ✅ verified 1
src/_ZN11dScMgBase_cC2Ev.cpp _ZN11dScMgBase_cC2Ev ✅ verified 1
src/_ZN11dScMgBase_cD0Ev.cpp _ZN11dScMgBase_cD0Ev ✅ verified 1
src/_ZN11dScMgBase_cD1Ev.cpp _ZN11dScMgBase_cD1Ev ✅ verified 1
src/_ZN11dScMgBase_cD2Ev.cpp _ZN11dScMgBase_cD2Ev ✅ verified 1
src/_ZN11dScMgCoin_c13InitResourcesEv.cpp _ZN11dScMgCoin_c13InitResourcesEv ✅ verified 1
src/_ZN11dScMgCoin_c13OnYoshiTryEatEi.cpp _ZN11dScMgCoin_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN11dScMgCoin_c6RenderEv.cpp _ZN11dScMgCoin_c6RenderEv ✅ verified 1
src/_ZN11dScMgCoin_c8BehaviorEv.cpp _ZN11dScMgCoin_c8BehaviorEv ✅ verified 1
src/_ZN11dScMgCoin_cD0Ev.cpp _ZN11dScMgCoin_cD0Ev ✅ verified 1
src/_ZN11dScMgCoin_cD1Ev.cpp _ZN11dScMgCoin_cD1Ev ✅ verified 1
src/_ZN11dScMgJump_c13InitResourcesEv.cpp _ZN11dScMgJump_c13InitResourcesEv ✅ verified 1
src/_ZN11dScMgJump_c13OnTurnIntoEggEi.cpp _ZN11dScMgJump_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN11dScMgJump_c16CleanupResourcesEv.cpp _ZN11dScMgJump_c16CleanupResourcesEv ✅ verified 1
src/_ZN11dScMgJump_c6RenderEv.cpp _ZN11dScMgJump_c6RenderEv ✅ verified 1
src/_ZN11dScMgJump_c8BehaviorEv.cpp _ZN11dScMgJump_c8BehaviorEv ✅ verified 1
src/_ZN11dScMgJump_cD0Ev.cpp _ZN11dScMgJump_cD0Ev ✅ verified 1
src/_ZN11dScMgJump_cD1Ev.cpp _ZN11dScMgJump_cD1Ev ✅ verified 1
src/_ZN11dScMiniGm_c13InitResourcesEv.cpp _ZN11dScMiniGm_c13InitResourcesEv ✅ verified 1
src/_ZN11dScMiniGm_c16CleanupResourcesEv.cpp _ZN11dScMiniGm_c16CleanupResourcesEv ✅ verified 1
src/_ZN11dScMiniGm_c8BehaviorEv.cpp _ZN11dScMiniGm_c8BehaviorEv ✅ verified 1
src/_ZN11daBgSnwmn_c13InitResourcesEv.cpp _ZN11daBgSnwmn_c13InitResourcesEv ✅ verified 1
src/_ZN11daBgSnwmn_c16CleanupResourcesEv.cpp _ZN11daBgSnwmn_c16CleanupResourcesEv ✅ verified 1
src/_ZN11daDsnBase_c16CleanupResourcesEv.cpp _ZN11daDsnBase_c16CleanupResourcesEv ✅ verified 1
src/_ZN12Flamethrower13InitResourcesEv.cpp _ZN12Flamethrower13InitResourcesEv ✅ verified 1
src/_ZN12Flamethrower8BehaviorEv.cpp _ZN12Flamethrower8BehaviorEv ✅ verified 1
src/_ZN12FortressWall16CleanupResourcesEv.cpp _ZN12FortressWall16CleanupResourcesEv ✅ verified 1
src/_ZN12FortressWall24OnHitByCannonBlastedCharER8dActor_c.cpp _ZN12FortressWall24OnHitByCannonBlastedCharER8dActor_c ✅ verified 1
src/_ZN12HauntedChair13InitResourcesEv.cpp _ZN12HauntedChair13InitResourcesEv ✅ verified 1
src/_ZN12HauntedChair8BehaviorEv.cpp _ZN12HauntedChair8BehaviorEv ✅ verified 1
src/_ZN12HealingHeart13InitResourcesEv.cpp _ZN12HealingHeart13InitResourcesEv ✅ verified 1
src/_ZN12MetalNetLift13InitResourcesEv.cpp _ZN12MetalNetLift13InitResourcesEv ✅ verified 1
src/_ZN12MetalNetLift16CleanupResourcesEv.cpp _ZN12MetalNetLift16CleanupResourcesEv ✅ verified 1
src/_ZN12PiranhaPlant8BehaviorEv.cpp _ZN12PiranhaPlant8BehaviorEv ✅ verified 1
src/_ZN12SwitchPillar16CleanupResourcesEv.cpp _ZN12SwitchPillar16CleanupResourcesEv ✅ verified 1
src/_ZN12WaterSuction13InitResourcesEv.cpp _ZN12WaterSuction13InitResourcesEv ✅ verified 1
src/_ZN12WaterSuction8BehaviorEv.cpp _ZN12WaterSuction8BehaviorEv ✅ verified 1
src/_ZN12WorkElevator16CleanupResourcesEv.cpp _ZN12WorkElevator16CleanupResourcesEv ✅ verified 1
src/_ZN12dBgCh_SphCrr15SetObjAndSphereERK7Vector35Fix12IiEP8dActor_c.cpp _ZN12dBgCh_SphCrr15SetObjAndSphereERK7Vector35Fix12IiEP8dActor_c ✅ verified 1
src/_ZN12dScMg3DEsp_c13InitResourcesEv.cpp _ZN12dScMg3DEsp_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMg3DEsp_c13OnYoshiTryEatEi.cpp _ZN12dScMg3DEsp_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMg3DEsp_c16CleanupResourcesEv.cpp _ZN12dScMg3DEsp_c16CleanupResourcesEv ✅ verified 1
src/_ZN12dScMg3DEsp_c6RenderEv.cpp _ZN12dScMg3DEsp_c6RenderEv ✅ verified 1
src/_ZN12dScMg3DEsp_c8BehaviorEv.cpp _ZN12dScMg3DEsp_c8BehaviorEv ✅ verified 1
src/_ZN12dScMg3DEsp_cD0Ev.cpp _ZN12dScMg3DEsp_cD0Ev ✅ verified 1
src/_ZN12dScMg3DEsp_cD1Ev.cpp _ZN12dScMg3DEsp_cD1Ev ✅ verified 1
src/_ZN12dScMgAmida_c13InitResourcesEv.cpp _ZN12dScMgAmida_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgAmida_c13OnYoshiTryEatEi.c _ZN12dScMgAmida_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMgAmida_c21AfterCleanupResourcesEj.cpp _ZN12dScMgAmida_c21AfterCleanupResourcesEj ✅ verified 1
src/_ZN12dScMgAmida_c5Unk36Ev.cpp _ZN12dScMgAmida_c5Unk36Ev ✅ verified 1
src/_ZN12dScMgAmida_c6RenderEv.cpp _ZN12dScMgAmida_c6RenderEv ✅ verified 1
src/_ZN12dScMgAmida_c8BehaviorEv.cpp _ZN12dScMgAmida_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgAmida_cD0Ev.cpp _ZN12dScMgAmida_cD0Ev ✅ verified 1
src/_ZN12dScMgAmida_cD1Ev.cpp _ZN12dScMgAmida_cD1Ev ✅ verified 1
src/_ZN12dScMgJump2_c13InitResourcesEv.cpp _ZN12dScMgJump2_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgJump2_c13OnTurnIntoEggEi.c _ZN12dScMgJump2_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN12dScMgJump2_c13OnYoshiTryEatEi.c _ZN12dScMgJump2_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMgJump2_c16CleanupResourcesEv.cpp _ZN12dScMgJump2_c16CleanupResourcesEv ✅ verified 1
src/_ZN12dScMgJump2_c6RenderEv.cpp _ZN12dScMgJump2_c6RenderEv ✅ verified 1
src/_ZN12dScMgJump2_c8BehaviorEv.cpp _ZN12dScMgJump2_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgJump2_cD0Ev.cpp _ZN12dScMgJump2_cD0Ev ✅ verified 1
src/_ZN12dScMgJump2_cD1Ev.cpp _ZN12dScMgJump2_cD1Ev ✅ verified 1
src/_ZN12dScMgLuigi_c13InitResourcesEv.cpp _ZN12dScMgLuigi_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgLuigi_c13OnYoshiTryEatEi.c _ZN12dScMgLuigi_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMgLuigi_c21AfterCleanupResourcesEj.cpp _ZN12dScMgLuigi_c21AfterCleanupResourcesEj ✅ verified 1
src/_ZN12dScMgLuigi_c6RenderEv.cpp _ZN12dScMgLuigi_c6RenderEv ✅ verified 1
src/_ZN12dScMgLuigi_c8BehaviorEv.cpp _ZN12dScMgLuigi_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgLuigi_cD0Ev.cpp _ZN12dScMgLuigi_cD0Ev ✅ verified 1
src/_ZN12dScMgLuigi_cD1Ev.cpp _ZN12dScMgLuigi_cD1Ev ✅ verified 1
src/_ZN12dScMgPanel_c13InitResourcesEv.cpp _ZN12dScMgPanel_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgPanel_c13OnYoshiTryEatEi.c _ZN12dScMgPanel_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMgPanel_c6RenderEv.cpp _ZN12dScMgPanel_c6RenderEv ✅ verified 1
src/_ZN12dScMgPanel_c8BehaviorEv.cpp _ZN12dScMgPanel_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgPanel_cD0Ev.cpp _ZN12dScMgPanel_cD0Ev ✅ verified 1
src/_ZN12dScMgPanel_cD1Ev.cpp _ZN12dScMgPanel_cD1Ev ✅ verified 1
src/_ZN12dScMgSlot1_c13InitResourcesEv.cpp _ZN12dScMgSlot1_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgSlot1_c13OnYoshiTryEatEi.c _ZN12dScMgSlot1_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMgSlot1_c15OnHitByMegaCharEv.cpp _ZN12dScMgSlot1_c15OnHitByMegaCharEv ✅ verified 1
src/_ZN12dScMgSlot1_c19OnHitFromUnderneathEv.cpp _ZN12dScMgSlot1_c19OnHitFromUnderneathEv ✅ verified 1
src/_ZN12dScMgSlot1_c6RenderEv.cpp _ZN12dScMgSlot1_c6RenderEv ✅ verified 1
src/_ZN12dScMgSlot1_c9betIcon_c6RenderEv.cpp _ZN12dScMgSlot1_c9betIcon_c6RenderEv ✅ verified 1
src/_ZN12dScMgSlot1_c9betIcon_c8BehaviorEv.cpp _ZN12dScMgSlot1_c9betIcon_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgSlot1_cD0Ev.cpp _ZN12dScMgSlot1_cD0Ev ✅ verified 1
src/_ZN12dScMgSlot1_cD1Ev.cpp _ZN12dScMgSlot1_cD1Ev ✅ verified 1
src/_ZN12dScMgSlot3_c13InitResourcesEv.cpp _ZN12dScMgSlot3_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgSlot3_c13OnYoshiTryEatEi.c _ZN12dScMgSlot3_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN12dScMgSlot3_c16OnAimedAtWithEggEv.c _ZN12dScMgSlot3_c16OnAimedAtWithEggEv ✅ verified 1
src/_ZN12dScMgSlot3_c6RenderEv.cpp _ZN12dScMgSlot3_c6RenderEv ✅ verified 1
src/_ZN12dScMgSlot3_c8BehaviorEv.cpp _ZN12dScMgSlot3_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgSlot3_cD0Ev.cpp _ZN12dScMgSlot3_cD0Ev ✅ verified 1
src/_ZN12dScMgSlot3_cD1Ev.cpp _ZN12dScMgSlot3_cD1Ev ✅ verified 1
src/_ZN12dScMgSound_c13InitResourcesEv.cpp _ZN12dScMgSound_c13InitResourcesEv ✅ verified 1
src/_ZN12dScMgSound_c13OnYoshiTryEatEi.c _ZN12dScMgSound_c13OnYoshiTryEatEi 🔶 blind (a reloc slot could not be resolved) 1
src/_ZN12dScMgSound_c6RenderEv.cpp _ZN12dScMgSound_c6RenderEv ✅ verified 1
src/_ZN12dScMgSound_c8BehaviorEv.cpp _ZN12dScMgSound_c8BehaviorEv ✅ verified 1
src/_ZN12dScMgSound_cD0Ev.cpp _ZN12dScMgSound_cD0Ev ✅ verified 1
src/_ZN12dScMgSound_cD1Ev.cpp _ZN12dScMgSound_cD1Ev ✅ verified 1
src/_ZN12dScStarSel_c16CleanupResourcesEv.cpp _ZN12dScStarSel_c16CleanupResourcesEv ✅ verified 1
src/_ZN12daDossyCap_c8BehaviorEv.cpp _ZN12daDossyCap_c8BehaviorEv ✅ verified 1
src/_ZN13BasementWater13InitResourcesEv.cpp _ZN13BasementWater13InitResourcesEv ✅ verified 1
src/_ZN13BasementWater16CleanupResourcesEv.cpp _ZN13BasementWater16CleanupResourcesEv ✅ verified 1
src/_ZN13BowserShutter13InitResourcesEv.cpp _ZN13BowserShutter13InitResourcesEv ✅ verified 1
src/_ZN13BowserShutter16CleanupResourcesEv.cpp _ZN13BowserShutter16CleanupResourcesEv ✅ verified 1
src/_ZN13FortressTower13InitResourcesEv.cpp _ZN13FortressTower13InitResourcesEv ✅ verified 1
src/_ZN13FortressTower16CleanupResourcesEv.cpp _ZN13FortressTower16CleanupResourcesEv ✅ verified 1
src/_ZN13KoopaTheQuick16CleanupResourcesEv.cpp _ZN13KoopaTheQuick16CleanupResourcesEv ✅ verified 1
src/_ZN13KoopaTheQuick8BehaviorEv.cpp _ZN13KoopaTheQuick8BehaviorEv ✅ verified 1
src/_ZN13MontyMoleRock8BehaviorEv.cpp _ZN13MontyMoleRock8BehaviorEv ✅ verified 1
src/_ZN13OneUpMushroom13InitResourcesEv.cpp _ZN13OneUpMushroom13InitResourcesEv ✅ verified 1
src/_ZN13OneUpMushroom8BehaviorEv.cpp _ZN13OneUpMushroom8BehaviorEv ✅ verified 1
src/_ZN13PoleBillboard13InitResourcesEv.cpp _ZN13PoleBillboard13InitResourcesEv ✅ verified 1
src/_ZN13QuestionBlock16CleanupResourcesEv.cpp _ZN13QuestionBlock16CleanupResourcesEv ✅ verified 1
src/_ZN13QuestionBlock8BehaviorEv.cpp _ZN13QuestionBlock8BehaviorEv ✅ verified 1
src/_ZN13RacingPenguin13InitResourcesEv.cpp _ZN13RacingPenguin13InitResourcesEv ✅ verified 1
src/_ZN13RacingPenguin8BehaviorEv.cpp _ZN13RacingPenguin8BehaviorEv ✅ verified 1
src/_ZN13RollingLogLll13InitResourcesEv.cpp _ZN13RollingLogLll13InitResourcesEv ✅ verified 1
src/_ZN13RollingLogLll16CleanupResourcesEv.cpp _ZN13RollingLogLll16CleanupResourcesEv ✅ verified 1
src/_ZN13SnowmanBreath8BehaviorEv.cpp _ZN13SnowmanBreath8BehaviorEv ✅ verified 1
src/_ZN13TTC_MovingBar13InitResourcesEv.cpp _ZN13TTC_MovingBar13InitResourcesEv ✅ verified 1
src/_ZN13TTC_MovingBar16CleanupResourcesEv.cpp _ZN13TTC_MovingBar16CleanupResourcesEv ✅ verified 1
src/_ZN13dScGameOver_c13InitResourcesEv.cpp _ZN13dScGameOver_c13InitResourcesEv ✅ verified 1
src/_ZN13dScMgFlower_c13InitResourcesEv.cpp _ZN13dScMgFlower_c13InitResourcesEv ✅ verified 1
src/_ZN13dScMgFlower_c13OnYoshiTryEatEi.c _ZN13dScMgFlower_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN13dScMgFlower_c6RenderEv.cpp _ZN13dScMgFlower_c6RenderEv ✅ verified 1
src/_ZN13dScMgFlower_c8BehaviorEv.cpp _ZN13dScMgFlower_c8BehaviorEv ✅ verified 1
src/_ZN13dScMgFlower_cD0Ev.cpp _ZN13dScMgFlower_cD0Ev ✅ verified 1
src/_ZN13dScMgFlower_cD1Ev.cpp _ZN13dScMgFlower_cD1Ev ✅ verified 1
src/_ZN13dScMgMemory_c13InitResourcesEv.cpp _ZN13dScMgMemory_c13InitResourcesEv ✅ verified 1
src/_ZN13dScMgMemory_c13OnTurnIntoEggEi.c _ZN13dScMgMemory_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN13dScMgMemory_c13OnYoshiTryEatEi.c _ZN13dScMgMemory_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN13dScMgMemory_c15OnGroundPoundedEv.c _ZN13dScMgMemory_c15OnGroundPoundedEv ✅ verified 1
src/_ZN13dScMgMemory_c6RenderEv.cpp _ZN13dScMgMemory_c6RenderEv ✅ verified 1
src/_ZN13dScMgMemory_c8BehaviorEv.cpp _ZN13dScMgMemory_c8BehaviorEv ✅ verified 1
src/_ZN13dScMgMemory_cD0Ev.cpp _ZN13dScMgMemory_cD0Ev ✅ verified 1
src/_ZN13dScMgMemory_cD1Ev.cpp _ZN13dScMgMemory_cD1Ev ✅ verified 1
src/_ZN13dScMgTeresa_c13InitResourcesEv.cpp _ZN13dScMgTeresa_c13InitResourcesEv ✅ verified 1
src/_ZN13dScMgTeresa_c6RenderEv.cpp _ZN13dScMgTeresa_c6RenderEv ✅ verified 1
src/_ZN13dScMgTeresa_c8BehaviorEv.cpp _ZN13dScMgTeresa_c8BehaviorEv ✅ verified 1
src/_ZN13dScMgTeresa_cD0Ev.cpp _ZN13dScMgTeresa_cD0Ev ✅ verified 1
src/_ZN13dScMgTeresa_cD1Ev.cpp _ZN13dScMgTeresa_cD1Ev ✅ verified 1
src/_ZN14ArrowSignRight16CleanupResourcesEv.cpp _ZN14ArrowSignRight16CleanupResourcesEv ✅ verified 1
src/_ZN14BlueCoinSwitch13InitResourcesEv.cpp _ZN14BlueCoinSwitch13InitResourcesEv ✅ verified 1
src/_ZN14BlueCoinSwitch16CleanupResourcesEv.cpp _ZN14BlueCoinSwitch16CleanupResourcesEv ✅ verified 1
src/_ZN14BlueCoinSwitch8BehaviorEv.cpp _ZN14BlueCoinSwitch8BehaviorEv ✅ verified 1
src/_ZN14CutsceneObject13InitResourcesEv.cpp _ZN14CutsceneObject13InitResourcesEv ✅ verified 1
src/_ZN14CutsceneObject6RenderEv.cpp _ZN14CutsceneObject6RenderEv ✅ verified 1
src/_ZN14CutsceneObject8BehaviorEv.cpp _ZN14CutsceneObject8BehaviorEv ✅ verified 1
src/_ZN14KnockDownPlank16CleanupResourcesEv.cpp _ZN14KnockDownPlank16CleanupResourcesEv ✅ verified 1
src/_ZN14RotatingBridge13InitResourcesEv.cpp _ZN14RotatingBridge13InitResourcesEv ✅ verified 1
src/_ZN14RotatingBridge16CleanupResourcesEv.cpp _ZN14RotatingBridge16CleanupResourcesEv ✅ verified 1
src/_ZN14UnchainedChomp8BehaviorEv.cpp _ZN14UnchainedChomp8BehaviorEv ✅ verified 1
src/_ZN14UnknownVsEntry13InitResourcesEv.cpp _ZN14UnknownVsEntry13InitResourcesEv ✅ verified 1
src/_ZN14UnknownVsEntry16CleanupResourcesEv.cpp _ZN14UnknownVsEntry16CleanupResourcesEv ✅ verified 1
src/_ZN14UnknownVsEntry8BehaviorEv.cpp _ZN14UnknownVsEntry8BehaviorEv ✅ verified 1
src/_ZN14dScMgBomroom_c13InitResourcesEv.cpp _ZN14dScMgBomroom_c13InitResourcesEv ✅ verified 1
src/_ZN14dScMgBomroom_c13OnYoshiTryEatEi.c _ZN14dScMgBomroom_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN14dScMgBomroom_c6RenderEv.cpp _ZN14dScMgBomroom_c6RenderEv ✅ verified 1
src/_ZN14dScMgBomroom_c8BehaviorEv.cpp _ZN14dScMgBomroom_c8BehaviorEv ✅ verified 1
src/_ZN14dScMgBomroom_cD0Ev.cpp _ZN14dScMgBomroom_cD0Ev ✅ verified 1
src/_ZN14dScMgBomroom_cD1Ev.cpp _ZN14dScMgBomroom_cD1Ev ✅ verified 1
src/_ZN14dScMgCurling_c13InitResourcesEv.cpp _ZN14dScMgCurling_c13InitResourcesEv ✅ verified 1
src/_ZN14dScMgCurling_c13OnYoshiTryEatEi.cpp _ZN14dScMgCurling_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN14dScMgCurling_c6RenderEv.cpp _ZN14dScMgCurling_c6RenderEv ✅ verified 1
src/_ZN14dScMgCurling_c8BehaviorEv.cpp _ZN14dScMgCurling_c8BehaviorEv ✅ verified 1
src/_ZN14dScMgCurling_cD0Ev.cpp _ZN14dScMgCurling_cD0Ev ✅ verified 1
src/_ZN14dScMgCurling_cD1Ev.cpp _ZN14dScMgCurling_cD1Ev ✅ verified 1
src/_ZN14dScMgD3DBase_c11AfterRenderEj.cpp _ZN14dScMgD3DBase_c11AfterRenderEj ✅ verified 1
src/_ZN14dScMgD3DBase_c12BeforeRenderEv.cpp _ZN14dScMgD3DBase_c12BeforeRenderEv ✅ verified 1
src/_ZN14dScMgD3DBase_c14BeforeBehaviorEv.cpp _ZN14dScMgD3DBase_c14BeforeBehaviorEv ✅ verified 1
src/_ZN14dScMgD3DBase_c16OnAimedAtWithEggEv.cpp _ZN14dScMgD3DBase_c16OnAimedAtWithEggEv ✅ verified 1
src/_ZN14dScMgD3DBase_c18AfterInitResourcesEj.cpp _ZN14dScMgD3DBase_c18AfterInitResourcesEj ✅ verified 1
src/_ZN14dScMgD3DBase_c19BeforeInitResourcesEv.cpp _ZN14dScMgD3DBase_c19BeforeInitResourcesEv ✅ verified 1
src/_ZN14dScMgD3DBase_c21AfterCleanupResourcesEj.cpp _ZN14dScMgD3DBase_c21AfterCleanupResourcesEj ✅ verified 1
src/_ZN14dScMgD3DBase_c8OnPushedEv.c _ZN14dScMgD3DBase_c8OnPushedEv ✅ verified 1
src/_ZN14dScMgD3DBase_cD0Ev.cpp _ZN14dScMgD3DBase_cD0Ev ✅ verified 1
src/_ZN14dScMgD3DBase_cD1Ev.cpp _ZN14dScMgD3DBase_cD1Ev ✅ verified 1
src/_ZN14dScMgMemory2_c13InitResourcesEv.cpp _ZN14dScMgMemory2_c13InitResourcesEv ✅ verified 1
src/_ZN14dScMgMemory2_c13OnTurnIntoEggEi.c _ZN14dScMgMemory2_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN14dScMgMemory2_c13OnYoshiTryEatEi.c _ZN14dScMgMemory2_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN14dScMgMemory2_c15OnGroundPoundedEv.c _ZN14dScMgMemory2_c15OnGroundPoundedEv ✅ verified 1
src/_ZN14dScMgMemory2_c6RenderEv.cpp _ZN14dScMgMemory2_c6RenderEv ✅ verified 1
src/_ZN14dScMgMemory2_c8BehaviorEv.cpp _ZN14dScMgMemory2_c8BehaviorEv ✅ verified 1
src/_ZN14dScMgMemory2_cD0Ev.cpp _ZN14dScMgMemory2_cD0Ev ✅ verified 1
src/_ZN14dScMgMemory2_cD1Ev.cpp _ZN14dScMgMemory2_cD1Ev ✅ verified 1
src/_ZN15BookShotSpawner13InitResourcesEv.cpp _ZN15BookShotSpawner13InitResourcesEv ✅ verified 1
src/_ZN15ChainChompFence13InitResourcesEv.cpp _ZN15ChainChompFence13InitResourcesEv ✅ verified 1
src/_ZN15ChainChompFence16CleanupResourcesEv.cpp _ZN15ChainChompFence16CleanupResourcesEv ✅ verified 1
src/_ZN15FireSeaElevator13InitResourcesEv.cpp _ZN15FireSeaElevator13InitResourcesEv ✅ verified 1
src/_ZN15FireSeaElevator16CleanupResourcesEv.cpp _ZN15FireSeaElevator16CleanupResourcesEv ✅ verified 1
src/_ZN15RollingIronBall13InitResourcesEv.cpp _ZN15RollingIronBall13InitResourcesEv 🔶 blind (a reloc slot could not be resolved) 1
src/_ZN15RotatingFirebar8BehaviorEv.cpp _ZN15RotatingFirebar8BehaviorEv ✅ verified 1
src/_ZN15TtcRotatingCube16CleanupResourcesEv.cpp _ZN15TtcRotatingCube16CleanupResourcesEv ✅ verified 1
src/_ZN15TtcRotatingCube8BehaviorEv.cpp _ZN15TtcRotatingCube8BehaviorEv ✅ verified 1
src/_ZN15TtcRotatingGear13InitResourcesEv.cpp _ZN15TtcRotatingGear13InitResourcesEv ✅ verified 1
src/_ZN15TtcRotatingGear16CleanupResourcesEv.cpp _ZN15TtcRotatingGear16CleanupResourcesEv ✅ verified 1
src/_ZN15dScMgCurling2_c13InitResourcesEv.cpp _ZN15dScMgCurling2_c13InitResourcesEv ✅ verified 1
src/_ZN15dScMgCurling2_c13OnYoshiTryEatEi.cpp _ZN15dScMgCurling2_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN15dScMgCurling2_c6RenderEv.cpp _ZN15dScMgCurling2_c6RenderEv ✅ verified 1
src/_ZN15dScMgCurling2_c8BehaviorEv.cpp _ZN15dScMgCurling2_c8BehaviorEv ✅ verified 1
src/_ZN15dScMgCurling2_cD0Ev.cpp _ZN15dScMgCurling2_cD0Ev ✅ verified 1
src/_ZN15dScMgCurling2_cD1Ev.cpp _ZN15dScMgCurling2_cD1Ev ✅ verified 1
src/_ZN15dScMgHanachan_c13InitResourcesEv.cpp _ZN15dScMgHanachan_c13InitResourcesEv ✅ verified 1
src/_ZN15dScMgHanachan_c13OnYoshiTryEatEi.c _ZN15dScMgHanachan_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN15dScMgHanachan_c16CleanupResourcesEv.cpp _ZN15dScMgHanachan_c16CleanupResourcesEv ✅ verified 1
src/_ZN15dScMgHanachan_c6RenderEv.cpp _ZN15dScMgHanachan_c6RenderEv ✅ verified 1
src/_ZN15dScMgHanachan_c8BehaviorEv.cpp _ZN15dScMgHanachan_c8BehaviorEv ✅ verified 1
src/_ZN15dScMgHanachan_cD0Ev.cpp _ZN15dScMgHanachan_cD0Ev ✅ verified 1
src/_ZN15dScMgHanachan_cD1Ev.cpp _ZN15dScMgHanachan_cD1Ev ✅ verified 1
src/_ZN15dScMgPachinko_c13InitResourcesEv.cpp _ZN15dScMgPachinko_c13InitResourcesEv ✅ verified 1
src/_ZN15dScMgPachinko_c13OnYoshiTryEatEi.c _ZN15dScMgPachinko_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN15dScMgPachinko_c6RenderEv.cpp _ZN15dScMgPachinko_c6RenderEv ✅ verified 1
src/_ZN15dScMgPachinko_c8BehaviorEv.cpp _ZN15dScMgPachinko_c8BehaviorEv ✅ verified 1
src/_ZN15dScMgPachinko_cD0Ev.cpp _ZN15dScMgPachinko_cD0Ev ✅ verified 1
src/_ZN15dScMgPachinko_cD1Ev.cpp _ZN15dScMgPachinko_cD1Ev ✅ verified 1
src/_ZN15dScMgRoulette_c13InitResourcesEv.cpp _ZN15dScMgRoulette_c13InitResourcesEv ✅ verified 1
src/_ZN15dScMgRoulette_c13OnTurnIntoEggEi.c _ZN15dScMgRoulette_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN15dScMgRoulette_c13OnYoshiTryEatEi.cpp _ZN15dScMgRoulette_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN15dScMgRoulette_c16CleanupResourcesEv.cpp _ZN15dScMgRoulette_c16CleanupResourcesEv ✅ verified 1
src/_ZN15dScMgRoulette_c6RenderEv.cpp _ZN15dScMgRoulette_c6RenderEv ✅ verified 1
src/_ZN15dScMgRoulette_c8BehaviorEv.cpp _ZN15dScMgRoulette_c8BehaviorEv ✅ verified 1
src/_ZN15dScMgRoulette_cD0Ev.cpp _ZN15dScMgRoulette_cD0Ev ✅ verified 1
src/_ZN15dScMgRoulette_cD1Ev.cpp _ZN15dScMgRoulette_cD1Ev ✅ verified 1
src/_ZN15dScMgSnowball_c11OnAttacked2Ev.c _ZN15dScMgSnowball_c11OnAttacked2Ev ✅ verified 1
src/_ZN15dScMgSnowball_c13InitResourcesEv.cpp _ZN15dScMgSnowball_c13InitResourcesEv ✅ verified 1
src/_ZN15dScMgSnowball_c13OnYoshiTryEatEi.c _ZN15dScMgSnowball_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN15dScMgSnowball_c16CleanupResourcesEv.cpp _ZN15dScMgSnowball_c16CleanupResourcesEv ✅ verified 1
src/_ZN15dScMgSnowball_c6RenderEv.cpp _ZN15dScMgSnowball_c6RenderEv ✅ verified 1
src/_ZN15dScMgSnowball_c8BehaviorEv.cpp _ZN15dScMgSnowball_c8BehaviorEv ✅ verified 1
src/_ZN15dScMgSnowball_c8OnKickedEv.c _ZN15dScMgSnowball_c8OnKickedEv ✅ verified 1
src/_ZN15dScMgSnowball_c8OnPushedEv.c _ZN15dScMgSnowball_c8OnPushedEv ✅ verified 1
src/_ZN15dScMgSnowball_cD0Ev.cpp _ZN15dScMgSnowball_cD0Ev ✅ verified 1
src/_ZN15dScMgSnowball_cD1Ev.cpp _ZN15dScMgSnowball_cD1Ev ✅ verified 1
src/_ZN15daObjMarioCap_c13InitResourcesEv.cpp _ZN15daObjMarioCap_c13InitResourcesEv 🔶 blind (a reloc slot could not be resolved) 1
src/_ZN15daObjMarioCap_c16CleanupResourcesEv.cpp _ZN15daObjMarioCap_c16CleanupResourcesEv ✅ verified 1
src/_ZN16BowserShockwaves13InitResourcesEv.cpp _ZN16BowserShockwaves13InitResourcesEv ✅ verified 1
src/_ZN16BowserShockwaves8BehaviorEv.cpp _ZN16BowserShockwaves8BehaviorEv ✅ verified 1
src/_ZN16RotatingCogSmall13InitResourcesEv.cpp _ZN16RotatingCogSmall13InitResourcesEv ✅ verified 1
src/_ZN16RotatingCogSmall16CleanupResourcesEv.cpp _ZN16RotatingCogSmall16CleanupResourcesEv ✅ verified 1
src/_ZN16SwingingPlatform16CleanupResourcesEv.cpp _ZN16SwingingPlatform16CleanupResourcesEv ✅ verified 1
src/_ZN16dScMgPachinko2_c13InitResourcesEv.cpp _ZN16dScMgPachinko2_c13InitResourcesEv ✅ verified 1
src/_ZN16dScMgPachinko2_c13OnYoshiTryEatEi.c _ZN16dScMgPachinko2_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN16dScMgPachinko2_c6RenderEv.cpp _ZN16dScMgPachinko2_c6RenderEv ✅ verified 1
src/_ZN16dScMgPachinko2_c8BehaviorEv.cpp _ZN16dScMgPachinko2_c8BehaviorEv ✅ verified 1
src/_ZN16dScMgPachinko2_cD0Ev.cpp _ZN16dScMgPachinko2_cD0Ev ✅ verified 1
src/_ZN16dScMgPachinko2_cD1Ev.cpp _ZN16dScMgPachinko2_cD1Ev ✅ verified 1
src/_ZN16dScMgSmartball_c21AfterCleanupResourcesEj.cpp _ZN16dScMgSmartball_c21AfterCleanupResourcesEj ✅ verified 1
src/_ZN16dScMgSmartball_c6RenderEv.cpp _ZN16dScMgSmartball_c6RenderEv ✅ verified 1
src/_ZN16dScMgSmartball_c8BehaviorEv.cpp _ZN16dScMgSmartball_c8BehaviorEv ✅ verified 1
src/_ZN16dScMgSmartball_c8OnPushedEv.c _ZN16dScMgSmartball_c8OnPushedEv ✅ verified 1
src/_ZN16dScMgSmartball_cD0Ev.cpp _ZN16dScMgSmartball_cD0Ev ✅ verified 1
src/_ZN16dScMgSmartball_cD1Ev.cpp _ZN16dScMgSmartball_cD1Ev ✅ verified 1
src/_ZN16daObjCtMecha03_c13InitResourcesEv.cpp _ZN16daObjCtMecha03_c13InitResourcesEv ✅ verified 1
src/_ZN16daObjCtMecha03_c16CleanupResourcesEv.cpp _ZN16daObjCtMecha03_c16CleanupResourcesEv ✅ verified 1
src/_ZN16daObjCtMecha03_c8BehaviorEv.cpp _ZN16daObjCtMecha03_c8BehaviorEv ✅ verified 1
src/_ZN16daObjCtMecha04_c13InitResourcesEv.cpp _ZN16daObjCtMecha04_c13InitResourcesEv ✅ verified 1
src/_ZN16daObjCtMecha04_c16CleanupResourcesEv.cpp _ZN16daObjCtMecha04_c16CleanupResourcesEv ✅ verified 1
src/_ZN16daObjCtMecha04_c8BehaviorEv.cpp _ZN16daObjCtMecha04_c8BehaviorEv ✅ verified 1
src/_ZN17BowserPuzzlePiece13InitResourcesEv.cpp _ZN17BowserPuzzlePiece13InitResourcesEv ✅ verified 1
src/_ZN17BowserPuzzlePiece16CleanupResourcesEv.cpp _ZN17BowserPuzzlePiece16CleanupResourcesEv ✅ verified 1
src/_ZN17BowserSkyPlatform16CleanupResourcesEv.cpp _ZN17BowserSkyPlatform16CleanupResourcesEv ✅ verified 1
src/_ZN17SlidingPlatformWf16CleanupResourcesEv.cpp _ZN17SlidingPlatformWf16CleanupResourcesEv ✅ verified 1
src/_ZN17SlidingPlatformWf8BehaviorEv.cpp _ZN17SlidingPlatformWf8BehaviorEv ✅ verified 1
src/_ZN17dScMgTrampoline_c13InitResourcesEv.cpp _ZN17dScMgTrampoline_c13InitResourcesEv ✅ verified 1
src/_ZN17dScMgTrampoline_c13OnTurnIntoEggEi.c _ZN17dScMgTrampoline_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN17dScMgTrampoline_c13OnYoshiTryEatEi.c _ZN17dScMgTrampoline_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN17dScMgTrampoline_c16CleanupResourcesEv.cpp _ZN17dScMgTrampoline_c16CleanupResourcesEv ✅ verified 1
src/_ZN17dScMgTrampoline_c6RenderEv.cpp _ZN17dScMgTrampoline_c6RenderEv ✅ verified 1
src/_ZN17dScMgTrampoline_c8BehaviorEv.cpp _ZN17dScMgTrampoline_c8BehaviorEv ✅ verified 1
src/_ZN17dScMgTrampoline_c8OnPushedEv.c _ZN17dScMgTrampoline_c8OnPushedEv ✅ verified 1
src/_ZN17dScMgTrampoline_cD0Ev.cpp _ZN17dScMgTrampoline_cD0Ev ✅ verified 1
src/_ZN17dScMgTrampoline_cD1Ev.cpp _ZN17dScMgTrampoline_cD1Ev ✅ verified 1
src/_ZN18BowserFireSeaArena13InitResourcesEv.cpp _ZN18BowserFireSeaArena13InitResourcesEv ✅ verified 1
src/_ZN18BowserFireSeaArena16CleanupResourcesEv.cpp _ZN18BowserFireSeaArena16CleanupResourcesEv ✅ verified 1
src/_ZN18BowserFireSeaArena8BehaviorEv.cpp _ZN18BowserFireSeaArena8BehaviorEv ✅ verified 1
src/_ZN18dScMgTrampoline2_c13InitResourcesEv.cpp _ZN18dScMgTrampoline2_c13InitResourcesEv ✅ verified 1
src/_ZN18dScMgTrampoline2_c13OnTurnIntoEggEi.c _ZN18dScMgTrampoline2_c13OnTurnIntoEggEi ✅ verified 1
src/_ZN18dScMgTrampoline2_c13OnYoshiTryEatEi.cpp _ZN18dScMgTrampoline2_c13OnYoshiTryEatEi ✅ verified 1
src/_ZN18dScMgTrampoline2_c16CleanupResourcesEv.cpp _ZN18dScMgTrampoline2_c16CleanupResourcesEv ✅ verified 1
src/_ZN18dScMgTrampoline2_c6RenderEv.cpp _ZN18dScMgTrampoline2_c6RenderEv ✅ verified 1
src/_ZN18dScMgTrampoline2_c8BehaviorEv.cpp _ZN18dScMgTrampoline2_c8BehaviorEv ✅ verified 1
src/_ZN18dScMgTrampoline2_c8OnKickedEv.c _ZN18dScMgTrampoline2_c8OnKickedEv ✅ verified 1
src/_ZN18dScMgTrampoline2_c8OnPushedEv.c _ZN18dScMgTrampoline2_c8OnPushedEv ✅ verified 1
src/_ZN18dScMgTrampoline2_cD0Ev.cpp _ZN18dScMgTrampoline2_cD0Ev ✅ verified 1
src/_ZN18dScMgTrampoline2_cD1Ev.cpp _ZN18dScMgTrampoline2_cD1Ev ✅ verified 1
src/_ZN19FirePiranhaPlantBig16CleanupResourcesEv.cpp _ZN19FirePiranhaPlantBig16CleanupResourcesEv ✅ verified 1
src/_ZN19FirePiranhaPlantBig8BehaviorEv.cpp _ZN19FirePiranhaPlantBig8BehaviorEv ✅ verified 1
src/_ZN19FloatOnLavaPlatform13InitResourcesEv.cpp _ZN19FloatOnLavaPlatform13InitResourcesEv ✅ verified 1
src/_ZN19FloatOnLavaPlatform16CleanupResourcesEv.cpp _ZN19FloatOnLavaPlatform16CleanupResourcesEv ✅ verified 1
src/_ZN19FloatOnLavaPlatform8BehaviorEv.cpp _ZN19FloatOnLavaPlatform8BehaviorEv ✅ verified 1
src/_ZN20SwitchActivatedPlank13InitResourcesEv.cpp _ZN20SwitchActivatedPlank13InitResourcesEv ✅ verified 1
src/_ZN20SwitchActivatedPlank16CleanupResourcesEv.cpp _ZN20SwitchActivatedPlank16CleanupResourcesEv ✅ verified 1
src/_ZN22ClockPaintingHandShort13InitResourcesEv.cpp _ZN22ClockPaintingHandShort13InitResourcesEv ✅ verified 1
src/_ZN22ClockPaintingHandShort16CleanupResourcesEv.cpp _ZN22ClockPaintingHandShort16CleanupResourcesEv ✅ verified 1
src/_ZN22ClockPaintingHandShort8BehaviorEv.cpp _ZN22ClockPaintingHandShort8BehaviorEv ✅ verified 1
src/_ZN22RotatingUpDownPlatform13InitResourcesEv.cpp _ZN22RotatingUpDownPlatform13InitResourcesEv ✅ verified 1
src/_ZN22RotatingUpDownPlatform8BehaviorEv.cpp _ZN22RotatingUpDownPlatform8BehaviorEv ✅ verified 1
src/_ZN25RotatingUpDownPlatformUtm13InitResourcesEv.cpp _ZN25RotatingUpDownPlatformUtm13InitResourcesEv ✅ verified 1
src/_ZN25RotatingUpDownPlatformUtm16CleanupResourcesEv.cpp _ZN25RotatingUpDownPlatformUtm16CleanupResourcesEv ✅ verified 1
src/_ZN25RotatingUpDownPlatformUtm8BehaviorEv.cpp _ZN25RotatingUpDownPlatformUtm8BehaviorEv ✅ verified 1
src/_ZN3HUD15RenderTimeTimerEv.cpp _ZN3HUD15RenderTimeTimerEv ✅ verified 1
src/_ZN3HUD17RenderHealthMeterEv.cpp _ZN3HUD17RenderHealthMeterEv ✅ verified 1
`src/_ZN3HUD17UpdateHealt

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

Copy link
Copy Markdown
Collaborator Author

Self-review (one shared account here, so this is a signed-off review in a comment rather than an Approve).

What I checked, and what I'd push back on if someone else had written it.

  1. The census arithmetic reconciles exactly, and that is the strongest single check. slot_census.py 29 reports 32 tables / 26 inheriting / 6 overriding at 2 distinct addresses. romdata_check moved 128 bytes (124 partial + 4 verified) = 32 × 4. If a table had been missed, or one had been widened twice, that product would not close. The two declarations plus zero pre-reconciled equals the 2 distinct addresses, and 32 − 4 inherited-from-D3DBase equals those 2 — both asserted in the apply script rather than eyeballed.

  2. No occupied-slot trap here, and I verified that rather than assuming it. Slots 27 and 28 each had a descendant that declared the member early as a new virtual, landing on the right index by arithmetic; declaring the base slot without reconciling it in the same commit regresses that vtable to DIFFERS with rombuild green throughout. Nothing in the family declares slot 29 early, so PRE_RECONCILED = 0. That is the assertion above closing, not an absence of evidence.

  3. The return type is the weakest claim in this PR and it is labelled as such. int is a hint. It is the second consecutive slot no body pins, and I could not find a caller that consumes it either. What is new is that the absence of a consumer is now measured: the whole-image pair-scan finds one in-family site and the result is dead one instruction later. void compiles to the same bytes. I would not defend int beyond "it is dActor_c.h's, and its return types have held up where its parameter lists have not."

    Worth flagging that this scan methodology is a correction of my own earlier mistake — slot 28's landed evidence block originally asserted "nothing anywhere in ov004 or ov006 loads vtable+0x70", reasoning from an absence I had not scanned for. There are three such loads. That is fixed on Declare dScMgBase_c slot 28 (OnHitFromUnderneath) across the minigame family #2099 (ed243e83c) and the pair-scan is now the campaign standard: a bare ldr at an offset is not a dispatch, since it also matches any ordinary field read at that offset. The naive scan at +0x70 returns 126 hits; three are calls.

  4. The name is the thing to argue with, and it is deliberately not settled in this PR. OnAimedAtWithEgg is what the body's own comment says and what dActor_c.h says at the same index — but those are not two sources. The cartridge carries class names only; the recovered name: comments are index transplants of the same table. Slot 29 is where the ROM contradicts the label outright: the body saves the framebuffer state and draws a menu over it, on a rising edge of mMenuOpen. I kept the name because coining a replacement would put an unverifiable identifier on a byte-exact symbol, which blocks data verification and can strand a TU promotion later. The header now records the contradiction next to the name. If the repo owner wants slots 18–30 renamed to menu/interaction semantics, that is a separate, deliberate change and I'd rather it be theirs.

  5. The slot-30 Vector3 refutation is banked here on purpose. It costs nothing to record now and would be an expensive surprise in the next PR. dActor_c.h:151 returns one by value; ov004:0x020ae168 dispatches slot 30 with this still in r0, which an sret return would not do.

  6. Two stale prose references caught by the rename, both retargeted: notes/minigame-provenance.md's field table and mSavedMainBgBits's own comment in dScMgBase_c.h. check_dead_references went from 1 failure to clean. audit/enrollment_report.md:329 still names the old path — that is a generated snapshot, pre-existing on main, outside the gate's prose scan, and I left it alone rather than hand-editing a generated file.

  7. premerge_check --base origin/main 2100: merge tree fa80d3f60662, all eight gates pass → pass, nothing goes green → red. Its base-name WARNING is expected — this PR targets cpp/minigame-slot28 because it is stacked on Declare dScMgBase_c slot 28 (OnHitFromUnderneath) across the minigame family #2099; the run merges into origin/main, which is the tree that will actually exist once Declare dScMgBase_c slot 28 (OnHitFromUnderneath) across the minigame family #2099 lands.

What this does not prove. No ROM was built by the static gates, and a local rombuild cannot clear module fidelity the way the PR validator does — that verdict is the validator's. Six vtables in the family still score DIFFERS and will until slot 35 closes _ZTV12dScMgAmida_c.

Ready as far as I can take it; landing is the repo owner's call, and #2099 goes first.

@andrewboudreau andrewboudreau left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CHANGES REQUESTED — one ask, and it is the same one still open on #2099 rather than a new class of problem. Reviewed at 50604acdb.

First, the part I went looking to disprove and could not: your return-type framing is right, and I can now upgrade it from a disassembly reading to a build measurement.

The header says slot 29's int is "A HINT, the second consecutive slot that no body pins." I tried to pin it. Built in a wired worktree detached at 50604acdb, 2004/b56, against ov004:0x020af094 size 0x1e8:

CONTROL  shipped void                          MATCH
         void + local (restructure control)    MATCH
         int, early exit `return r26;`         MATCH          <- int is spellable
         int, early exit `return 2;`           size 0x1ec  (+1 word)
         int, early exit `return 0;`           size 0x1ec  (+1 word)
         int, both exits valued `return 0;`    size 0x1f0  (+2 words)
d3dbase  int, tail call    ov006:0x020e6d24    MATCH
slot3    int, tail call    ov006:0x0210aa3c    MATCH

where r26 is the slot-26 result hoisted into a local:

int r26 = self->OnHitByCannonBlastedChar();
if (r26 == 2)
    return r26;

That is the spelling your own disassembly note describes — "returning the 2 it has just compared against slot 26's result" — and it costs nothing, because r0 already holds it at the bxeq. The constant spellings cost a word precisely because they force a mov. So the ROM is neutral on slot 29, in both directions, by build. int is not refuted and neither is void.

I am recording the negative rows too, because they are the trap: had I stopped at return 0; I would have posted "the ROM refutes int" with a real-looking measurement behind it. A return-type refutation has to test the free spelling — the one that returns the value already in r0 — not just the one that is easy to write. That generalizes past this slot and past this PR.

The ask

The ROM being neutral is exactly why this has to be resolved by consistency, and right now four places disagree with one:

where spelling
include/dScMgBase_c.h:503 virtual int OnAimedAtWithEgg();
include/dScMgD3DBase_c.h:98 virtual int
include/dScMgSlot3_c.h:59 virtual int
include/decl_common.h:2322 extern void _ZN11dScMgBase_c16OnAimedAtWithEggEv(void*);
src/_ZN11dScMgBase_c16OnAimedAtWithEggEv.cpp:47 extern "C" void
src/_ZN14dScMgD3DBase_c16OnAimedAtWithEggEv.cpp void
src/_ZN12dScMgSlot3_c16OnAimedAtWithEggEv.c void

decl_common.h:2322 is the one worth naming explicitly: _ZN11dScMgBase_c16OnAimedAtWithEggEv is the mangled name of the member the class declares virtual int. The compiler never sees the collision — one is a class member, the other an extern "C" free function — but the linker resolves them to a single symbol carrying two declared return types. That is also why a naive flip of just the definition does not build (illegal function overloading); it cost me a run to find out, so: the decl has to move with it.

Either resolution merges, same as I said on #2099:

  • Honor the headers. All three definitions plus decl_common.h:2322 become int, the base gets the r26 hoist above, and the two forwarders return their tail call. All four are byte-verified MATCH in the table above — this is a known-good edit, not a suggestion to go find one.
  • Or make the headers void, matching what the four definitions already say and what decl_common.h already declares.

I have no preference between them. What I will not wave through is the slot shipping with the vtable's own declaration contradicting the symbol it points at, when the ROM has declined to break the tie.

Carried from #2099

src/_ZN12dScMgSlot1_c19OnHitFromUnderneathEv.cpp still carries the third copy of the "nothing loads vtable+0x70" claim that the ov004/ov006 scan refuted. I confirmed this PR does not touch it. It is #2099's debt, not yours, and I am noting it here only so it does not fall through the gap between two stacked PRs.

Sequencing

This is stacked on #2099 (cpp/minigame-slot28), which is blocked on the two asks above, so #2100 cannot merge ahead of it regardless of what happens in this thread. Resolve #2099 and this one collapses to a small edit.

Credit where it is due

The caller measurement is the best work in this stack. Scanning for the dispatch pairldr rN,[rM,#0x74] immediately followed by blx rN, not any load at +0x74 — is the difference between a measurement and a coincidence, and finding 35 sites of which exactly one is in this class's two modules, then reading that one and showing its result is dead before anything can consume it, is what turned "no caller settles it" from an assumption into a fact. It is also what let me trust that the neutral result above is the real answer rather than an untested caller waiting to contradict it.

The SEMANTIC CAUTION block is the right call and I want it to stay. Every name on this class is an index transplant from dActor_c.h, there was never a second witness, and this is the slot where the body — save POWCNT1's swap bit, blank both DISPCNTs, stash the BG palette and 0x2000 bytes of sub-OBJ VRAM, decompress a per-language image over it — visibly is not a Yoshi egg. Keeping the name as a label rather than coining a replacement is right: a coined name on a byte-exact symbol would block TU promotion later and would read as evidence it is not.

Banking the slot-30 warning forward is the cheapest thing in this PR and possibly the most valuable. dActor_c.h:151 declaring a by-value Vector3 cannot survive a dispatch site that has this in r0 and the loaded pointer in r1; under AAPCS a 12-byte return needs the hidden result pointer in r0. Whoever writes slot 30 will save a day because you wrote that down here.

And the sixth name correction on dScMgD3DBase_c is handled correctly — five tables referencing 0x020e6d24 makes it D3DBase's, and noting that this one is a real 0x68-byte body rather than the twelve-byte veneers of slots 26–28 is the detail that justifies the include and cast changes riding along with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

attribution-override Maintainer accepts this PR's contributor-credit changes; validation reports them as warnings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant