Skip to content

Prepare is static, Whomp's address was double-mangled, and the reference ratchet is unstuck - #1397

Merged
andrewboudreau merged 5 commits into
mainfrom
prepare-static-v3
Aug 11, 2026
Merged

Prepare is static, Whomp's address was double-mangled, and the reference ratchet is unstuck#1397
andrewboudreau merged 5 commits into
mainfrom
prepare-static-v3

Conversation

@andrewboudreau

Copy link
Copy Markdown
Collaborator

Replaces #1390, rebuilt on current main. Same finding, better evidence, and two
things #1390 got wrong.

Prepare is static

TextureSequence::Prepare and MaterialChanger::Prepare take no this. Four
independent lines say so, and the ROM body is a 0xc long-call veneer
(ldr ip,[pc]; bx ip) that shuffles no arguments — so the real body's register use
is the call surface:

  • func_02046d50 reads only r0 and r1. r2 is never touched, which rules
    out three arguments.
  • The offsets r1 is read at — +2, +4, +8, +0xc, +0x1c, +0x20 — are
    exactly BTP_File's fields.
  • Both matched implementations already take two parameters.
  • All 22 call sites pass two.

TextureTransformer.h had already documented this for both siblings; the follow-up
never happened. A static member mangles identically to a non-static one, so the
symbol does not change — only the honesty of the declaration does.

Whomp: an address that was double-mangled

_ZN5Whomp13InitResourcesEv took the address of an already-mangled name declared
with a bare extern outside the file's extern "C" block, so C++ mangled it a
second time into _Z88_ZN16MeshColliderBase16UpdatePosAndAngs...v — which exists
nowhere. The byte gate cannot see this: match.py wildcards every relocated word and
never looks at what a call targets. Only check_references.py does.

The reference ratchet was stuck on main

--update refuses whenever bad is non-empty, and main's own drift lands there — so
no PR could bank progress past it. Reproduced byte-identically on a clean
origin/main checkout with nothing applied.

Commit 1 re-pins the baseline from clean main, as its own commit before any content,
so the rest of the PR reads as a diff against an honest starting point. Ten lines
change and each is main's state, not mine — the eligible count, func_02057410's
real missing names, a symbol #1382 renamed, Whomp (genuinely unresolvable and simply
absent), and func_ov091_021339fc, which a merged PR converted to a hand-written asm
hatch. That last one is what jammed the ratchet: a deliberate reclassification is
indistinguishable from a regression to the reason-switching guard.

Commit 4 then banks downward-only what this PR resolves — two double-mangled names,
one per content commit, nothing added.

What #1390 got wrong

It spelled the call surface inline at all 11 raw call sites:

struct TextureSequence { static void Prepare(BMD_File &, BTP_File &); };

That byte-matches, but it is a shadow declaration, and the langmode ratchet counts
them: shadow_decls.local_body_no_include 1507 → 1510, with nothing falling to
offset it. There is an escape hatch for a deliberate rise; using it here would have
banked debt in the exact direction the plan is draining, in a PR whose point is
making a call surface more honest. The headers cost nothing, so:

shadow_decls.local_body_no_include 1507 → 1503 (−4)
would have been 1510 (+3, ratchet FAIL)

A 7-point swing, and the ROM does not move — the call is a direct bl either way.

Two files needed a typedef int Fix12; shadow removed first. It is invisible while a
file includes nothing, but the real Fix12 is a template, so a real header turns
every use into template argument list expected rather than a plain redefinition.
That trap is why the local-declaration route was taken, and it is not specific to
those two files — anything taking the header route will hit it.

Verified

gate result
rombuild -j16 106/106 exact, 10,814 source-built, 0 mismatching, 87.96%
check_references OK: no new unresolvable references (241/241, 10,814/10,814)
pre-push hook unresolved references OK — ran the check, did not skip it
langmode ratchet PASS, −4
check_header_offsets 0 mismatched, both headers span 0x14
prepush_attribution 11,288 tracked, 0 changed, 0 lost
check_data_definitions 10,973 objects, none define a ROM data symbol
check_duplicate_sources 11,282 stems, none doubled
port_refcheck 393 references, all resolve

🤖 Generated with Claude Code

https://claude.ai/code/session_01XxDmkQ47fWa3GB6mj8xEQe

andrewboudreau and others added 5 commits August 11, 2026 09:43
The reference ratchet is stuck on main, and has been since the merges that moved it.
`--update` refuses whenever `bad` is non-empty, and main's own drift lands there, so
no PR can bank progress past it. The failure reproduces byte-identically on a clean
`origin/main` checkout with nothing applied.

Regenerated from a clean main. Ten lines change, and each is main's own state:

  eligible 10805 -> 10814   #1382, #1391 and #1393 all added functions.

  func_02057410             recorded as missing `_ll_mod`; it actually misses
                            `_ll_udiv` and `_ull_mod`. Those are mwccarm runtime
                            helper names -- the ROM implements them as
                            __aeabi_uldiv / __aeabi_ulmod in ITCM at 0x01ffa9dc and
                            0x01ffa9e8 -- and there is no alias mechanism, so the
                            entry is permanent rather than a to-do.

  _Z13func_020072c0v        gone: #1382 renamed that symbol to _ZN7Vector3D1Ev.

  ov079 Whomp::InitResources
                            ADDED. It is unresolvable on main today and was simply
                            missing from the baseline. The next commit fixes half of
                            it; the other half, func_021135d4, resolves to 15 overlays
                            sharing base 0x021111a0, so no single name is correct.

  ov091 func_ov091_021339fc gone: a merged PR converted it to a hand-written asm
                            hatch, which removes it from the candidate set. That
                            reclassification is indistinguishable from a regression to
                            the reason-switching guard -- which is exactly what jammed
                            the ratchet.

Its own commit, before any content, so the next commits' effect on the backlog reads
as a diff against an honest starting point instead of being buried in a rewrite.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxDmkQ47fWa3GB6mj8xEQe
Both were declared as ordinary members and defined as forwarding
(this, &model, &file). They take two arguments and no this. Four
independent lines of evidence agree:

  - func_02046d50 and func_020470e8, the real bodies behind the two 0xc
    veneers, read only r0 and r1. r2 is never touched, which rules out a
    third argument.
  - the offsets r1 is read at are exactly the animation file's fields
    (BTP_File: 0x2, 0x4, 0x8, 0xc, 0x1c, 0x20), so r1 is the SECOND
    argument, not the third.
  - both matched implementations, src/func_02046d50.c and
    src/func_020470e8.c, already take two parameters.
  - every call site in the tree passes two.

The veneer bodies are pure tail jumps (ldr ip,[pc]; bx ip), so they
reproduce under either signature. That is how the wrong reading survived:
the definition files never constrained it, and the callee and callers --
which do -- were not consulted. A static member mangles identically, so no
symbol changes and no config moves.

TextureTransformer, the third sibling, was already corrected. Its header
names these two veneers as "called the same way" and notes that the old
reading "cost the PC port a wrong-register hunt"; the follow-up never
happened. This is it.

Twenty-two call sites drop the mangled extern for the member spelling.
Several of those externs were a bare `extern` on a mangled name inside a
//cpp file, which mangles a second time, so removing them retires that
latent defect as well. Eyerok's linkcheck improves BLIND-39 -> BLIND-35 as
four call destinations become resolvable. SnowmanHead and InvisibleSecret
declare the class locally rather than including TextureSequence.h: both
carry `typedef int Fix12;`, which collides with the real math/Fix12.h
template.

The six .c callers keep the mangled extern -- C has no ::.

Gates: rombuild 106/106 exact, 10,813 reproducing, 0 mismatching; eligible
name list byte-identical to main at 10813; linkcheck 23 checked, 21
verified, 0 blocking; attribution 0 changed / 0 lost; port_refcheck 393
resolve; header offsets, data definitions and duplicate sources clean.

Goomba::InitResources and MrI::InitResources do not reproduce -- before or
after. Both fail identically on origin/main (999 and 7 words), and their
compiled bytes are unchanged by this commit: 916 -> 916 and 664 -> 664,
identical in both cases.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxDmkQ47fWa3GB6mj8xEQe
_ZN5Whomp13InitResourcesEv.cpp declares
_ZN16MeshColliderBase16UpdatePosAndAngs... with a bare `extern`, and that
declaration sits OUTSIDE the extern "C" block above it. In a //cpp file
that mangles the already-mangled name a second time, so the address taken
at the func_020393d4 call points at a _Z88_ZN16... that does not exist.

The byte gate cannot see this -- match.py compares relocated words as
wildcards, so the function reproduces either way. check_references and
prepush_linkcheck are the only gates that look at what a reference
targets, and both flagged it: linkcheck goes BLIND-1 -> VERIFIED with the
fix, and the function still reproduces.

Found while running the gates for the Prepare change, in a file that
change already touches. The other entry in the same check_references
report, func_02057410's _ll_udiv/_ull_mod, is unrelated to this branch
and reproduces identically on origin/main.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxDmkQ47fWa3GB6mj8xEQe
Downward only, and both deletions are attributable to a commit above:

  _Z49_ZN15TextureSequence7PrepareER8BMD_FileR8BTP_Fileii
      resolved by making Prepare static -- the two trailing 'ii' were a
      shadow declaration disagreeing with the real two-argument signature.

  _Z88_ZN16MeshColliderBase16UpdatePosAndAngsERS_P5ActorR10ClsnResultR7Vector3P10Vector3_16S8_v
      resolved by spelling Whomp's extern the way decl_common.h does, so the
      already-mangled name is not mangled a second time.

Nothing is added. Whomp keeps its entry for func_021135d4, which resolves to 15
overlays sharing base 0x021111a0 -- no single name is correct, so it stays.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxDmkQ47fWa3GB6mj8xEQe
The Prepare change first spelled the call surface inline at each of the 11 call
sites:

    struct TextureSequence { static void Prepare(BMD_File &, BTP_File &); };

That compiles and byte-matches, but it is a shadow declaration, and the langmode
ratchet counts those: shadow_decls.local_body_no_include 1507 -> 1510, with nothing
falling to offset it. The workflow has an escape hatch for a deliberate rise, but
using it here would mean adding debt in exactly the direction the plan is draining.
The headers cost nothing, so they win:

    shadow_decls.local_body_no_include   1507 -> 1503  (-4)

A 7-point swing, and the ROM does not move -- the call is a direct bl either way.

Two files needed the Fix12 shadow removed first. `typedef int Fix12;` is harmless
while a file includes nothing, but the real Fix12 is a TEMPLATE, so pulling in a
real header turns every use into "template argument list expected" rather than a
plain redefinition. SnowmanHead and InvisibleSecret now take those extern
parameters as plain int, which is what BowserFire, BowserTail, KoopaShell,
LavaBubble and BabyPenguin already do. That trap is why the local-declaration route
was taken in the first place; it is not specific to those two files.

VERIFIED  rombuild -j16: 106/106 exact, 10,814 source-built, 0 mismatching, 87.96%
          langmode ratchet PASS

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XxDmkQ47fWa3GB6mj8xEQe
@tangos-validator

tangos-validator Bot commented Aug 11, 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
Matched functions 11,178 / 11,347 (98.5%, +0)
Matched code bytes 2,078,800 / 2,211,124 (94.0%, +0)
Tracked source enrollment 10,786 functions, 1,938,036 bytes (87.65%, +0)
Perfect source moves 0 R100
Contributor credit 0 added, 0 changed, 0 lost
Relocation check 310 checked; 3 BLIND, 2 NO-SYM, 305 VERIFIED
Port reference check 393 checked; 0 stale
Module fidelity 106/106 exact; 100.000000% compared bytes
Code linked from verified source 10,814 functions, 1,944,924 bytes (87.96%)

Warnings: 3 linkcheck result(s) have unresolved relocations; 2 affected source file(s) could not be fully link-checked.

Per-file link-check detail

2 of 310 changed file(s) do not match the ROM (NO-SYM).

File Symbol Result Slots checked
src/_ZN11SnowmanHead13InitResourcesEv.cpp _ZN11SnowmanHead13InitResourcesEv ✅ verified 1
src/_ZN13RacingPenguin13InitResourcesEv.cpp _ZN13RacingPenguin13InitResourcesEv 🔶 blind (a reloc slot could not be resolved) 1
src/_ZN13RacingPenguin6RenderEv.cpp _ZN13RacingPenguin6RenderEv ✅ verified 1
src/_ZN13RacingPenguin8BehaviorEv.cpp _ZN13RacingPenguin8BehaviorEv 🔶 blind (a reloc slot could not be resolved) 1
src/_ZN15InvisibleSecret13InitResourcesEv.cpp _ZN15InvisibleSecret13InitResourcesEv ✅ verified 1
src/_ZN15MaterialChanger6UpdateER15ModelComponents.cpp _ZN15MaterialChanger6UpdateER15ModelComponents ✅ verified 1
src/_ZN15MaterialChanger7PrepareER8BMD_FileR8BMA_File.cpp _ZN15MaterialChanger7PrepareER8BMD_FileR8BMA_File ✅ verified 1
src/_ZN15MaterialChangerD0Ev.cpp _ZN15MaterialChangerD0Ev ✅ verified 1
src/_ZN15MaterialChangerD1Ev.cpp _ZN15MaterialChangerD1Ev ✅ verified 1
src/_ZN15TextureSequence17UpdateFileOffsetsER8BTP_File.cpp _ZN15TextureSequence17UpdateFileOffsetsER8BTP_File ✅ verified 1
src/_ZN15TextureSequence6UpdateER15ModelComponents.cpp _ZN15TextureSequence6UpdateER15ModelComponents ✅ verified 1
src/_ZN15TextureSequence7PrepareER8BMD_FileR8BTP_File.cpp _ZN15TextureSequence7PrepareER8BMD_FileR8BTP_File ✅ verified 1
src/_ZN15TextureSequence8LoadFileER13SharedFilePtr.cpp _ZN15TextureSequence8LoadFileER13SharedFilePtr ✅ verified 1
src/_ZN15TextureSequenceD0Ev.cpp _ZN15TextureSequenceD0Ev ✅ verified 1
src/_ZN15TextureSequenceD1Ev.cpp _ZN15TextureSequenceD1Ev ✅ verified 1
src/_ZN16BowserShockwaves13InitResourcesEv.cpp _ZN16BowserShockwaves13InitResourcesEv ✅ verified 1
src/_ZN16BowserShockwaves16CleanupResourcesEv.cpp _ZN16BowserShockwaves16CleanupResourcesEv ✅ verified 1
src/_ZN16BowserShockwaves6RenderEv.cpp _ZN16BowserShockwaves6RenderEv ✅ verified 1
src/_ZN16BowserShockwaves8BehaviorEv.cpp _ZN16BowserShockwaves8BehaviorEv ✅ verified 1
src/_ZN16BowserShockwavesD0Ev.cpp _ZN16BowserShockwavesD0Ev ✅ verified 1
src/_ZN16BowserShockwavesD1Ev.cpp _ZN16BowserShockwavesD1Ev ✅ verified 1
src/_ZN3Amp13InitResourcesEv.cpp _ZN3Amp13InitResourcesEv ✅ verified 1
src/_ZN3Amp6RenderEv.cpp _ZN3Amp6RenderEv ✅ verified 1
src/_ZN3Amp8BehaviorEv.cpp _ZN3Amp8BehaviorEv ✅ verified 1
src/_ZN3MrI13InitResourcesEv.cpp _ZN3MrI13InitResourcesEv 🔶 no-sym 1
src/_ZN5Actor15GivePlayerCoinsER6Playerhj.cpp _ZN5Actor15GivePlayerCoinsER6Playerhj ✅ verified 1
src/_ZN5Actor15IsPlayerInRangeERK7Vector3i.cpp _ZN5Actor15IsPlayerInRangeERK7Vector3i ✅ verified 1
src/_ZN5Actor15IsPlayerInRangeEi.cpp _ZN5Actor15IsPlayerInRangeEi ✅ verified 1
src/_ZN5Actor16JumpedOnByPlayerER12CylinderClsnR6Player.cpp _ZN5Actor16JumpedOnByPlayerER12CylinderClsnR6Player ✅ verified 1
src/_ZN5Whomp13InitResourcesEv.cpp _ZN5Whomp13InitResourcesEv ✅ verified 1
src/_ZN5Whomp16CleanupResourcesEv.cpp _ZN5Whomp16CleanupResourcesEv ✅ verified 1
src/_ZN5Whomp6RenderEv.cpp _ZN5Whomp6RenderEv ✅ verified 1
src/_ZN5Whomp8BehaviorEv.cpp _ZN5Whomp8BehaviorEv ✅ verified 1
src/_ZN5WhompD0Ev.cpp _ZN5WhompD0Ev ✅ verified 1
src/_ZN5WhompD1Ev.cpp _ZN5WhompD1Ev ✅ verified 1
src/_ZN6Bowser13InitResourcesEv.cpp _ZN6Bowser13InitResourcesEv ✅ verified 1
src/_ZN6Bowser16CleanupResourcesEv.cpp _ZN6Bowser16CleanupResourcesEv ✅ verified 1
src/_ZN6Bowser16OnPendingDestroyEv.cpp _ZN6Bowser16OnPendingDestroyEv ✅ verified 1
src/_ZN6Bowser6RenderEv.cpp _ZN6Bowser6RenderEv ✅ verified 1
src/_ZN6Bowser8BehaviorEv.cpp _ZN6Bowser8BehaviorEv ✅ verified 1
src/_ZN6BowserD0Ev.cpp _ZN6BowserD0Ev ✅ verified 1
src/_ZN6BowserD1Ev.cpp _ZN6BowserD1Ev ✅ verified 1
src/_ZN6Eyerok13InitResourcesEv.cpp _ZN6Eyerok13InitResourcesEv 🔶 blind (a reloc slot could not be resolved) 1
src/_ZN6Goomba13InitResourcesEv.cpp _ZN6Goomba13InitResourcesEv 🔶 no-sym 1
src/_ZN6Lakitu13InitResourcesEv.cpp _ZN6Lakitu13InitResourcesEv ✅ verified 1
src/_ZN6Player10SpinBounceE5Fix12IiE.cpp _ZN6Player10SpinBounceE5Fix12IiE ✅ verified 1
src/_ZN6Player11ChangeStateERNS_5StateE.cpp _ZN6Player11ChangeStateERNS_5StateE ✅ verified 1
src/_ZN6Player11OpenBigDoorEv.cpp _ZN6Player11OpenBigDoorEv ✅ verified 1
src/_ZN6Player11ShowMessageER9ActorBasejPK7Vector3hh.cpp _ZN6Player11ShowMessageER9ActorBasejPK7Vector3hh ✅ verified 1
src/_ZN6Player11St_Fly_InitEv.cpp _ZN6Player11St_Fly_InitEv ✅ verified 1
src/_ZN6Player11St_Owl_InitEv.cpp _ZN6Player11St_Owl_InitEv ✅ verified 1
src/_ZN6Player11St_Owl_MainEv.cpp _ZN6Player11St_Owl_MainEv ✅ verified 1
src/_ZN6Player12CanEnterDoorEh.cpp _ZN6Player12CanEnterDoorEh ✅ verified 1
src/_ZN6Player12FinishedAnimEv.cpp _ZN6Player12FinishedAnimEv ✅ verified 1
src/_ZN6Player12GetHurtStateEv.cpp _ZN6Player12GetHurtStateEv ✅ verified 1
src/_ZN6Player12GetTalkStateEv.cpp _ZN6Player12GetTalkStateEv ✅ verified 1
src/_ZN6Player12ShowMessage2ER9ActorBasejPK7Vector3hh.cpp _ZN6Player12ShowMessage2ER9ActorBasejPK7Vector3hh ✅ verified 1
src/_ZN6Player12St_Bonk_InitEv.cpp _ZN6Player12St_Bonk_InitEv ✅ verified 1
src/_ZN6Player12St_Bonk_MainEv.cpp _ZN6Player12St_Bonk_MainEv ✅ verified 1
src/_ZN6Player12St_Dive_InitEv.cpp _ZN6Player12St_Dive_InitEv ✅ verified 1
src/_ZN6Player12St_Fall_InitEv.cpp _ZN6Player12St_Fall_InitEv ✅ verified 1
src/_ZN6Player12St_Fall_MainEv.cpp _ZN6Player12St_Fall_MainEv ✅ verified 1
src/_ZN6Player12St_Hurt_InitEv.cpp _ZN6Player12St_Hurt_InitEv ✅ verified 1
src/_ZN6Player12St_Hurt_MainEv.cpp _ZN6Player12St_Hurt_MainEv ✅ verified 1
src/_ZN6Player12St_Jump_InitEv.cpp _ZN6Player12St_Jump_InitEv ✅ verified 1
src/_ZN6Player12St_Jump_MainEv.cpp _ZN6Player12St_Jump_MainEv ✅ verified 1
src/_ZN6Player12St_Land_MainEv.cpp _ZN6Player12St_Land_MainEv ✅ verified 1
src/_ZN6Player12St_Null_InitEv.cpp _ZN6Player12St_Null_InitEv ✅ verified 1
src/_ZN6Player12St_Null_MainEv.cpp _ZN6Player12St_Null_MainEv ✅ verified 1
src/_ZN6Player12St_Spin_InitEv.cpp _ZN6Player12St_Spin_InitEv ✅ verified 1
src/_ZN6Player12St_Spin_MainEv.cpp _ZN6Player12St_Spin_MainEv ✅ verified 1
src/_ZN6Player12St_Swim_InitEv.cpp _ZN6Player12St_Swim_InitEv ✅ verified 1
src/_ZN6Player12St_Swim_MainEv.cpp _ZN6Player12St_Swim_MainEv ✅ verified 1
src/_ZN6Player12St_Talk_InitEv.cpp _ZN6Player12St_Talk_InitEv ✅ verified 1
src/_ZN6Player12St_Talk_MainEv.cpp _ZN6Player12St_Talk_MainEv ✅ verified 1
src/_ZN6Player12St_Wait_InitEv.cpp _ZN6Player12St_Wait_InitEv ✅ verified 1
src/_ZN6Player12St_Wait_MainEv.cpp _ZN6Player12St_Wait_MainEv ✅ verified 1
src/_ZN6Player12St_Walk_InitEv.cpp _ZN6Player12St_Walk_InitEv ✅ verified 1
src/_ZN6Player12St_Walk_MainEv.cpp _ZN6Player12St_Walk_MainEv ✅ verified 1
src/_ZN6Player12Unk_020c4f40Et.cpp _ZN6Player12Unk_020c4f40Et ✅ verified 1
src/_ZN6Player12Unk_020c6a10Ej.cpp _ZN6Player12Unk_020c6a10Ej ✅ verified 1
src/_ZN6Player12Unk_020c9e5cEh.cpp _ZN6Player12Unk_020c9e5cEh ✅ verified 1
src/_ZN6Player12Unk_020ca150Eh.cpp _ZN6Player12Unk_020ca150Eh ✅ verified 1
src/_ZN6Player12Unk_020ca488Ev.cpp _ZN6Player12Unk_020ca488Ev ✅ verified 1
src/_ZN6Player12Unk_020ca8f8Ev.cpp _ZN6Player12Unk_020ca8f8Ev ✅ verified 1
src/_ZN6Player13InitFireYoshiEv.cpp _ZN6Player13InitFireYoshiEv ✅ verified 1
src/_ZN6Player13InitResourcesEv.cpp _ZN6Player13InitResourcesEv ✅ verified 1
src/_ZN6Player13OnYoshiTryEatEv.cpp _ZN6Player13OnYoshiTryEatEv ✅ verified 1
src/_ZN6Player13St_Climb_MainEv.cpp _ZN6Player13St_Climb_MainEv ✅ verified 1
src/_ZN6Player13St_Crawl_InitEv.cpp _ZN6Player13St_Crawl_InitEv ✅ verified 1
src/_ZN6Player13St_Crawl_MainEv.cpp _ZN6Player13St_Crawl_MainEv ✅ verified 1
src/_ZN6Player13St_Shell_InitEv.cpp _ZN6Player13St_Shell_InitEv ✅ verified 1
src/_ZN6Player13St_Shell_MainEv.cpp _ZN6Player13St_Shell_MainEv ✅ verified 1
src/_ZN6Player13St_Throw_InitEv.cpp _ZN6Player13St_Throw_InitEv ✅ verified 1
src/_ZN6Player13St_Throw_MainEv.cpp _ZN6Player13St_Throw_MainEv ✅ verified 1
src/_ZN6Player13TryTalkToDoorEh.cpp _ZN6Player13TryTalkToDoorEh ✅ verified 1
src/_ZN6Player14EnterWhirlpoolEv.cpp _ZN6Player14EnterWhirlpoolEv ✅ verified 1
src/_ZN6Player14InitMetalWarioEv.cpp _ZN6Player14InitMetalWarioEv ✅ verified 1
src/_ZN6Player14IsFrontSlidingEv.cpp _ZN6Player14IsFrontSlidingEv ✅ verified 1
src/_ZN6Player14St_Cannon_InitEv.cpp _ZN6Player14St_Cannon_InitEv ✅ verified 1
src/_ZN6Player14St_Cannon_MainEv.cpp _ZN6Player14St_Cannon_MainEv ✅ verified 1
src/_ZN6Player14St_Crouch_InitEv.cpp _ZN6Player14St_Crouch_InitEv ✅ verified 1
src/_ZN6Player14St_Crouch_MainEv.cpp _ZN6Player14St_Crouch_MainEv ✅ verified 1
src/_ZN6Player14St_OnWall_InitEv.cpp _ZN6Player14St_OnWall_InitEv ✅ verified 1
src/_ZN6Player14St_OnWall_MainEv.cpp _ZN6Player14St_OnWall_MainEv ✅ verified 1
src/_ZN6Player14St_Owl_CleanupEv.cpp _ZN6Player14St_Owl_CleanupEv ✅ verified 1
src/_ZN6Player14St_Squish_InitEv.cpp _ZN6Player14St_Squish_InitEv ✅ verified 1
src/_ZN6Player14St_Squish_MainEv.cpp _ZN6Player14St_Squish_MainEv ✅ verified 1
src/_ZN6Player14St_Thrown_InitEv.cpp _ZN6Player14St_Thrown_InitEv ✅ verified 1
src/_ZN6Player14St_Thrown_MainEv.cpp _ZN6Player14St_Thrown_MainEv ✅ verified 1
src/_ZN6Player15InitVanishLuigiEv.cpp _ZN6Player15InitVanishLuigiEv ✅ verified 1
src/_ZN6Player15IsCollectingCapEv.cpp _ZN6Player15IsCollectingCapEv ✅ verified 1
src/_ZN6Player15IsEnteringLevelEv.cpp _ZN6Player15IsEnteringLevelEv ✅ verified 1
src/_ZN6Player15JumpIntoBooCageER7Vector3.cpp _ZN6Player15JumpIntoBooCageER7Vector3 ✅ verified 1
src/_ZN6Player15St_Balloon_InitEv.cpp _ZN6Player15St_Balloon_InitEv ✅ verified 1
src/_ZN6Player15St_Balloon_MainEv.cpp _ZN6Player15St_Balloon_MainEv ✅ verified 1
src/_ZN6Player15St_DeadHit_InitEv.cpp _ZN6Player15St_DeadHit_InitEv ✅ verified 1
src/_ZN6Player15St_DeadHit_MainEv.cpp _ZN6Player15St_DeadHit_MainEv ✅ verified 1
src/_ZN6Player15St_DeadPit_InitEv.cpp _ZN6Player15St_DeadPit_InitEv ✅ verified 1
src/_ZN6Player15St_DeadPit_MainEv.cpp _ZN6Player15St_DeadPit_MainEv ✅ verified 1
src/_ZN6Player15St_Grabbed_InitEv.cpp _ZN6Player15St_Grabbed_InitEv ✅ verified 1
src/_ZN6Player15St_Grabbed_MainEv.cpp _ZN6Player15St_Grabbed_MainEv ✅ verified 1
src/_ZN6Player15St_Hurt_CleanupEv.cpp _ZN6Player15St_Hurt_CleanupEv ✅ verified 1
src/_ZN6Player15St_Null_CleanupEv.cpp _ZN6Player15St_Null_CleanupEv ✅ verified 1
src/_ZN6Player15St_Respawn_InitEv.cpp _ZN6Player15St_Respawn_InitEv ✅ verified 1
src/_ZN6Player15St_Respawn_MainEv.cpp _ZN6Player15St_Respawn_MainEv ✅ verified 1
src/_ZN6Player15St_Spin_CleanupEv.cpp _ZN6Player15St_Spin_CleanupEv ✅ verified 1
src/_ZN6Player15St_Swallow_InitEv.cpp _ZN6Player15St_Swallow_InitEv ✅ verified 1
src/_ZN6Player15St_Swallow_MainEv.cpp _ZN6Player15St_Swallow_MainEv ✅ verified 1
src/_ZN6Player15St_Swim_CleanupEv.cpp _ZN6Player15St_Swim_CleanupEv ✅ verified 1
src/_ZN6Player15St_Talk_CleanupEv.cpp _ZN6Player15St_Talk_CleanupEv ✅ verified 1
src/_ZN6Player15St_Wait_CleanupEv.cpp _ZN6Player15St_Wait_CleanupEv ✅ verified 1
src/_ZN6Player16CleanupResourcesEv.cpp _ZN6Player16CleanupResourcesEv ✅ verified 1
src/_ZN6Player16IncMegaKillCountEv.cpp _ZN6Player16IncMegaKillCountEv ✅ verified 1
src/_ZN6Player16InitBalloonMarioEv.cpp _ZN6Player16InitBalloonMarioEv ✅ verified 1
src/_ZN6Player16InitWingFeathersEb.cpp _ZN6Player16InitWingFeathersEb ✅ verified 1
src/_ZN6Player16IsInsideOfCannonEv.cpp _ZN6Player16IsInsideOfCannonEv ✅ verified 1
src/_ZN6Player16OnPendingDestroyEv.cpp _ZN6Player16OnPendingDestroyEv ✅ verified 1
src/_ZN6Player16SetRealCharacterEj.cpp _ZN6Player16SetRealCharacterEj ✅ verified 1
src/_ZN6Player16St_BackFlip_InitEv.cpp _ZN6Player16St_BackFlip_InitEv ✅ verified 1
src/_ZN6Player16St_BurnFire_InitEv.cpp _ZN6Player16St_BurnFire_InitEv ✅ verified 1
src/_ZN6Player16St_BurnFire_MainEv.cpp _ZN6Player16St_BurnFire_MainEv ✅ verified 1
src/_ZN6Player16St_BurnLava_InitEv.cpp _ZN6Player16St_BurnLava_InitEv ✅ verified 1
src/_ZN6Player16St_BurnLava_MainEv.cpp _ZN6Player16St_BurnLava_MainEv ✅ verified 1
src/_ZN6Player16St_Climb_CleanupEv.cpp _ZN6Player16St_Climb_CleanupEv ✅ verified 1
src/_ZN6Player16St_DebugFly_InitEv.cpp _ZN6Player16St_DebugFly_InitEv ✅ verified 1
src/_ZN6Player16St_DebugFly_MainEv.cpp _ZN6Player16St_DebugFly_MainEv ✅ verified 1
src/_ZN6Player16St_LongJump_InitEv.cpp _ZN6Player16St_LongJump_InitEv ✅ verified 1
src/_ZN6Player16St_LongJump_MainEv.cpp _ZN6Player16St_LongJump_MainEv ✅ verified 1
src/_ZN6Player16St_Shell_CleanupEv.cpp _ZN6Player16St_Shell_CleanupEv ✅ verified 1
src/_ZN6Player16St_SideFlip_InitEv.cpp _ZN6Player16St_SideFlip_InitEv ✅ verified 1
src/_ZN6Player16St_SideFlip_MainEv.cpp _ZN6Player16St_SideFlip_MainEv ✅ verified 1
src/_ZN6Player16St_Teleport_InitEv.cpp _ZN6Player16St_Teleport_InitEv ✅ verified 1
src/_ZN6Player16St_Teleport_MainEv.cpp _ZN6Player16St_Teleport_MainEv ✅ verified 1
src/_ZN6Player16St_WallJump_InitEv.cpp _ZN6Player16St_WallJump_InitEv ✅ verified 1
src/_ZN6Player16St_WallJump_MainEv.cpp _ZN6Player16St_WallJump_MainEv ✅ verified 1
src/_ZN6Player16TryEnterStarDoorER7Vector3s.cpp _ZN6Player16TryEnterStarDoorER7Vector3s ✅ verified 1
src/_ZN6Player16TryTalkToKeyDoorEv.cpp _ZN6Player16TryTalkToKeyDoorEv ✅ verified 1
src/_ZN6Player17LostGrabbedObjectEv.cpp _ZN6Player17LostGrabbedObjectEv ✅ verified 1
src/_ZN6Player17PlayMammaMiaSoundEv.cpp _ZN6Player17PlayMammaMiaSoundEv ✅ verified 1
src/_ZN6Player17SetNoControlStateEhih.cpp _ZN6Player17SetNoControlStateEhih ✅ verified 1
src/_ZN6Player17St_ButtSlide_InitEv.cpp _ZN6Player17St_ButtSlide_InitEv ✅ verified 1
src/_ZN6Player17St_ButtSlide_MainEv.cpp _ZN6Player17St_ButtSlide_MainEv ✅ verified 1
src/_ZN6Player17St_Cannon_CleanupEv.cpp _ZN6Player17St_Cannon_CleanupEv ✅ verified 1
src/_ZN6Player17St_EndingFly_InitEv.cpp _ZN6Player17St_EndingFly_InitEv ✅ verified 1
src/_ZN6Player17St_EndingFly_MainEv.cpp _ZN6Player17St_EndingFly_MainEv ✅ verified 1
src/_ZN6Player17St_Headstand_InitEv.cpp _ZN6Player17St_Headstand_InitEv ✅ verified 1
src/_ZN6Player17St_Headstand_MainEv.cpp _ZN6Player17St_Headstand_MainEv ✅ verified 1
src/_ZN6Player17St_HoldHeavy_InitEv.cpp _ZN6Player17St_HoldHeavy_InitEv ✅ verified 1
src/_ZN6Player17St_HoldHeavy_MainEv.cpp _ZN6Player17St_HoldHeavy_MainEv ✅ verified 1
src/_ZN6Player17St_HoldLight_InitEv.cpp _ZN6Player17St_HoldLight_InitEv ✅ verified 1
src/_ZN6Player17St_HoldLight_MainEv.cpp _ZN6Player17St_HoldLight_MainEv ✅ verified 1
src/_ZN6Player17St_HurtWater_InitEv.cpp _ZN6Player17St_HurtWater_InitEv ✅ verified 1
src/_ZN6Player17St_HurtWater_MainEv.cpp _ZN6Player17St_HurtWater_MainEv ✅ verified 1
src/_ZN6Player17St_LedgeGrab_InitEv.cpp _ZN6Player17St_LedgeGrab_InitEv ✅ verified 1
src/_ZN6Player17St_LedgeGrab_MainEv.cpp _ZN6Player17St_LedgeGrab_MainEv ✅ verified 1
src/_ZN6Player17St_LedgeHang_InitEv.cpp _ZN6Player17St_LedgeHang_InitEv ✅ verified 1
src/_ZN6Player17St_LedgeHang_MainEv.cpp _ZN6Player17St_LedgeHang_MainEv ✅ verified 1
src/_ZN6Player17St_NoControl_InitEv.cpp _ZN6Player17St_NoControl_InitEv ✅ verified 1
src/_ZN6Player17St_NoControl_MainEv.cpp _ZN6Player17St_NoControl_MainEv ✅ verified 1
src/_ZN6Player17St_PunchKick_InitEv.cpp _ZN6Player17St_PunchKick_InitEv ✅ verified 1
src/_ZN6Player17St_PunchKick_MainEv.cpp _ZN6Player17St_PunchKick_MainEv ✅ verified 1
src/_ZN6Player17St_SlideKick_InitEv.cpp _ZN6Player17St_SlideKick_InitEv ✅ verified 1
src/_ZN6Player17St_SlideKick_MainEv.cpp _ZN6Player17St_SlideKick_MainEv ✅ verified 1
src/_ZN6Player17St_SlopeJump_InitEv.cpp _ZN6Player17St_SlopeJump_InitEv ✅ verified 1
src/_ZN6Player17St_SlopeJump_MainEv.cpp _ZN6Player17St_SlopeJump_MainEv ✅ verified 1
src/_ZN6Player17St_Squish_CleanupEv.cpp _ZN6Player17St_Squish_CleanupEv ✅ verified 1
src/_ZN6Player17St_SweepKick_InitEv.cpp _ZN6Player17St_SweepKick_InitEv ✅ verified 1
src/_ZN6Player17St_SweepKick_MainEv.cpp _ZN6Player17St_SweepKick_MainEv ✅ verified 1
src/_ZN6Player17St_Thrown_CleanupEv.cpp _ZN6Player17St_Thrown_CleanupEv ✅ verified 1
src/_ZN6Player17St_WallSlide_InitEv.cpp _ZN6Player17St_WallSlide_InitEv ✅ verified 1
src/_ZN6Player17St_WallSlide_MainEv.cpp _ZN6Player17St_WallSlide_MainEv ✅ verified 1
src/_ZN6Player17St_WaterJump_InitEv.cpp _ZN6Player17St_WaterJump_InitEv ✅ verified 1
src/_ZN6Player17St_WindCarry_InitEv.cpp _ZN6Player17St_WindCarry_InitEv ✅ verified 1
src/_ZN6Player18HasFinishedTalkingEv.cpp _ZN6Player18HasFinishedTalkingEv ✅ verified 1
src/_ZN6Player18SetNewHatCharacterEjjb.cpp _ZN6Player18SetNewHatCharacterEjjb ✅ verified 1
src/_ZN6Player18St_Balloon_CleanupEv.cpp _ZN6Player18St_Balloon_CleanupEv ✅ verified 1
src/_ZN6Player18St_CameraZoom_InitEv.cpp _ZN6Player18St_CameraZoom_InitEv ✅ verified 1
src/_ZN6Player18St_CameraZoom_MainEv.cpp _ZN6Player18St_CameraZoom_MainEv ✅ verified 1
src/_ZN6Player18St_DizzyStars_InitEv.cpp _ZN6Player18St_DizzyStars_InitEv ✅ verified 1
src/_ZN6Player18St_DizzyStars_MainEv.cpp _ZN6Player18St_DizzyStars_MainEv ✅ verified 1
src/_ZN6Player18St_Grabbed_CleanupEv.cpp _ZN6Player18St_Grabbed_CleanupEv ✅ verified 1
src/_ZN6Player18St_LevelEnter_InitEv.cpp _ZN6Player18St_LevelEnter_InitEv ✅ verified 1
src/_ZN6Player18St_LevelEnter_MainEv.cpp _ZN6Player18St_LevelEnter_MainEv ✅ verified 1
src/_ZN6Player18St_TurnAround_InitEv.cpp _ZN6Player18St_TurnAround_InitEv ✅ verified 1
src/_ZN6Player18St_TurnAround_MainEv.cpp _ZN6Player18St_TurnAround_MainEv ✅ verified 1
src/_ZN6Player18St_YoshiPower_InitEv.cpp _ZN6Player18St_YoshiPower_InitEv ✅ verified 1
src/_ZN6Player18St_YoshiPower_MainEv.cpp _ZN6Player18St_YoshiPower_MainEv ✅ verified 1
src/_ZN6Player18TurnOffToonShadingEj.cpp _ZN6Player18TurnOffToonShadingEj ✅ verified 1
src/_ZN6Player19St_CrazedCrate_InitEv.cpp _ZN6Player19St_CrazedCrate_InitEv ✅ verified 1
src/_ZN6Player19St_Electrocute_InitEv.cpp _ZN6Player19St_Electrocute_InitEv ✅ verified 1
src/_ZN6Player19St_Electrocute_MainEv.cpp _ZN6Player19St_Electrocute_MainEv ✅ verified 1
src/_ZN6Player19St_GroundPound_InitEv.cpp _ZN6Player19St_GroundPound_InitEv ✅ verified 1
src/_ZN6Player19St_GroundPound_MainEv.cpp _ZN6Player19St_GroundPound_MainEv ✅ verified 1
src/_ZN6Player19St_SwingPlayer_InitEv.cpp _ZN6Player19St_SwingPlayer_InitEv ✅ verified 1
src/_ZN6Player19St_TornadoSpin_InitEv.cpp _ZN6Player19St_TornadoSpin_InitEv ✅ verified 1
src/_ZN6Player19St_TornadoSpin_MainEv.cpp _ZN6Player19St_TornadoSpin_MainEv ✅ verified 1
src/_ZN6Player20IsStateEnteringLevelEv.cpp _ZN6Player20IsStateEnteringLevelEv ✅ verified 1
src/_ZN6Player20RegisterEggCoinCountEjbb.cpp _ZN6Player20RegisterEggCoinCountEjbb ✅ verified 1
src/_ZN6Player20St_CeilingGrate_InitEv.cpp _ZN6Player20St_CeilingGrate_InitEv ✅ verified 1
src/_ZN6Player20St_CeilingGrate_MainEv.cpp _ZN6Player20St_CeilingGrate_MainEv ✅ verified 1
src/_ZN6Player20St_HoldLight_CleanupEv.cpp _ZN6Player20St_HoldLight_CleanupEv ✅ verified 1
src/_ZN6Player20St_InYoshiMouth_InitEv.cpp _ZN6Player20St_InYoshiMouth_InitEv ✅ verified 1
src/_ZN6Player20St_InYoshiMouth_MainEv.cpp _ZN6Player20St_InYoshiMouth_MainEv ✅ verified 1
src/_ZN6Player20St_LedgeHang_CleanupEv.cpp _ZN6Player20St_LedgeHang_CleanupEv ✅ verified 1
src/_ZN6Player20St_NoControl_CleanupEv.cpp _ZN6Player20St_NoControl_CleanupEv ✅ verified 1
src/_ZN6Player20St_StomachSlide_InitEv.cpp _ZN6Player20St_StomachSlide_InitEv ✅ verified 1
src/_ZN6Player20St_StomachSlide_MainEv.cpp _ZN6Player20St_StomachSlide_MainEv ✅ verified 1
src/_ZN6Player21IsOpeningDoorWithStarEv.cpp _ZN6Player21IsOpeningDoorWithStarEv ✅ verified 1
src/_ZN6Player21St_CameraZoom_CleanupEv.cpp _ZN6Player21St_CameraZoom_CleanupEv ✅ verified 1
src/_ZN6Player21St_HeadstandJump_InitEv.cpp _ZN6Player21St_HeadstandJump_InitEv ✅ verified 1
src/_ZN6Player21St_JumpQuicksand_InitEv.cpp _ZN6Player21St_JumpQuicksand_InitEv ✅ verified 1
src/_ZN6Player21St_JumpQuicksand_MainEv.cpp _ZN6Player21St_JumpQuicksand_MainEv ✅ verified 1
src/_ZN6Player21St_LevelEnter_CleanupEv.cpp _ZN6Player21St_LevelEnter_CleanupEv ✅ verified 1
src/_ZN6Player21St_OpeningWakeUp_InitEv.cpp _ZN6Player21St_OpeningWakeUp_InitEv ✅ verified 1
src/_ZN6Player21St_OpeningWakeUp_MainEv.cpp _ZN6Player21St_OpeningWakeUp_MainEv ✅ verified 1
src/_ZN6Player21St_SmallLaunchUp_InitEv.cpp _ZN6Player21St_SmallLaunchUp_InitEv ✅ verified 1
src/_ZN6Player21St_SmallLaunchUp_MainEv.cpp _ZN6Player21St_SmallLaunchUp_MainEv ✅ verified 1
src/_ZN6Player21St_StuckInGround_InitEv.cpp _ZN6Player21St_StuckInGround_InitEv ✅ verified 1
src/_ZN6Player21St_StuckInGround_MainEv.cpp _ZN6Player21St_StuckInGround_MainEv ✅ verified 1
src/_ZN6Player21St_WaitQuicksand_InitEv.cpp _ZN6Player21St_WaitQuicksand_InitEv ✅ verified 1
src/_ZN6Player21St_WaitQuicksand_MainEv.cpp _ZN6Player21St_WaitQuicksand_MainEv ✅ verified 1
src/_ZN6Player21St_YoshiPower_CleanupEv.cpp _ZN6Player21St_YoshiPower_CleanupEv ✅ verified 1
src/_ZN6Player22IsBeingShotOutOfCannonEv.cpp _ZN6Player22IsBeingShotOutOfCannonEv ✅ verified 1
src/_ZN6Player22St_GrabBowserTail_InitEv.cpp _ZN6Player22St_GrabBowserTail_InitEv ✅ verified 1
src/_ZN6Player22St_GrabBowserTail_MainEv.cpp _ZN6Player22St_GrabBowserTail_MainEv ✅ verified 1
src/_ZN6Player22St_GroundPound_CleanupEv.cpp _ZN6Player22St_GroundPound_CleanupEv ✅ verified 1
src/_ZN6Player22St_SwingPlayer_CleanupEv.cpp _ZN6Player22St_SwingPlayer_CleanupEv ✅ verified 1
src/_ZN6Player23St_InYoshiMouth_CleanupEv.cpp _ZN6Player23St_InYoshiMouth_CleanupEv ✅ verified 1
src/_ZN6Player23St_MetalWaterWater_InitEv.cpp _ZN6Player23St_MetalWaterWater_InitEv ✅ verified 1
src/_ZN6Player23St_MetalWaterWater_MainEv.cpp _ZN6Player23St_MetalWaterWater_MainEv ✅ verified 1
src/_ZN6Player24St_BowserEarthquake_InitEv.cpp _ZN6Player24St_BowserEarthquake_InitEv ✅ verified 1
src/_ZN6Player24St_BowserEarthquake_MainEv.cpp _ZN6Player24St_BowserEarthquake_MainEv ✅ verified 1
src/_ZN6Player24St_MetalWaterGround_InitEv.cpp _ZN6Player24St_MetalWaterGround_InitEv ✅ verified 1
src/_ZN6Player24St_MetalWaterGround_MainEv.cpp _ZN6Player24St_MetalWaterGround_MainEv ✅ verified 1
src/_ZN6Player24St_SlideKickRecover_InitEv.cpp _ZN6Player24St_SlideKickRecover_InitEv ✅ verified 1
src/_ZN6Player24TryExitWhiteDoorWithStarEv.cpp _ZN6Player24TryExitWhiteDoorWithStarEv ✅ verified 1
src/_ZN6Player25St_GrabBowserTail_CleanupEv.cpp _ZN6Player25St_GrabBowserTail_CleanupEv ✅ verified 1
src/_ZN6Player4BurnEv.cpp _ZN6Player4BurnEv ✅ verified 1
src/_ZN6Player4HealEi.cpp _ZN6Player4HealEi ✅ verified 1
src/_ZN6Player4HurtERK7Vector3j5Fix12IiEjjj.cpp _ZN6Player4HurtERK7Vector3j5Fix12IiEjjj ✅ verified 1
src/_ZN6Player5ShockEj.cpp _ZN6Player5ShockEj ✅ verified 1
src/_ZN6Player6BounceE5Fix12IiE.cpp _ZN6Player6BounceE5Fix12IiE ✅ verified 1
src/_ZN6Player6IsAnimEj.cpp _ZN6Player6IsAnimEj ✅ verified 1
src/_ZN6Player6RenderEv.cpp _ZN6Player6RenderEv ✅ verified 1
src/_ZN6Player7CanWarpEv.cpp _ZN6Player7CanWarpEv ✅ verified 1
src/_ZN6Player7IsInAirEv.cpp _ZN6Player7IsInAirEv ✅ verified 1
src/_ZN6Player7IsStateERNS_5StateE.cpp _ZN6Player7IsStateERNS_5StateE ✅ verified 1
src/_ZN6Player7TryGrabER5Actor.cpp _ZN6Player7TryGrabER5Actor ✅ verified 1
src/_ZN6Player8BehaviorEv.cpp _ZN6Player8BehaviorEv ✅ verified 1
src/_ZN6Player8BlowAwayEs.cpp _ZN6Player8BlowAwayEs ✅ verified 1
src/_ZN6Player8CanPauseEv.cpp _ZN6Player8CanPauseEv ✅ verified 1
src/_ZN6Player8HasNoCapEv.cpp _ZN6Player8HasNoCapEv ✅ verified 1
src/_ZN6Player8IsDivingEv.cpp _ZN6Player8IsDivingEv ✅ verified 1
src/_ZN6Player9DropActorEv.cpp _ZN6Player9DropActorEv ✅ verified 1
src/_ZN6Player9GetHealthEv.cpp _ZN6Player9GetHealthEv ✅ verified 1
src/_ZN6Player9IsOnShellEv.cpp _ZN6Player9IsOnShellEv ✅ verified 1
src/_ZN6Player9StartTalkER9ActorBaseb.cpp _ZN6Player9StartTalkER9ActorBaseb ✅ verified 1
src/_ZN6PlayerC1Ev.cpp _ZN6PlayerC1Ev ✅ verified 1
src/_ZN6PlayerD0Ev.cpp _ZN6PlayerD0Ev ✅ verified 1
src/_ZN6PlayerD1Ev.cpp _ZN6PlayerD1Ev ✅ verified 1
src/_ZN7SkiLift13InitResourcesEv.cpp _ZN7SkiLift13InitResourcesEv ✅ verified 1
src/_ZN7SkiLift8BehaviorEv.cpp _ZN7SkiLift8BehaviorEv ✅ verified 1
src/_ZN7Wiggler13InitResourcesEv.cpp _ZN7Wiggler13InitResourcesEv ✅ verified 1
src/_ZN7Wiggler6RenderEv.cpp _ZN7Wiggler6RenderEv ✅ verified 1
src/_ZN7WigglerD0Ev.cpp _ZN7WigglerD0Ev ✅ verified 1
src/_ZN7WigglerD1Ev.cpp _ZN7WigglerD1Ev ✅ verified 1
src/_ZN8Goomboss13InitResourcesEv.cpp _ZN8Goomboss13InitResourcesEv ✅ verified 1
src/_ZN8Goomboss16CleanupResourcesEv.cpp _ZN8Goomboss16CleanupResourcesEv ✅ verified 1
src/_ZN8Goomboss6RenderEv.cpp _ZN8Goomboss6RenderEv ✅ verified 1
src/_ZN8Goomboss8BehaviorEv.cpp _ZN8Goomboss8BehaviorEv ✅ verified 1
src/_ZN8GoombossD0Ev.c _ZN8GoombossD0Ev ✅ verified 1
src/_ZN8GoombossD1Ev.cpp _ZN8GoombossD1Ev ✅ verified 1
src/_ZN9LakituBro13InitResourcesEv.cpp _ZN9LakituBro13InitResourcesEv ✅ verified 1
src/_ZN9LakituBro16CleanupResourcesEv.cpp _ZN9LakituBro16CleanupResourcesEv ✅ verified 1
src/_ZN9LakituBro16OnPendingDestroyEv.cpp _ZN9LakituBro16OnPendingDestroyEv ✅ verified 1
src/_ZN9LakituBro6RenderEv.cpp _ZN9LakituBro6RenderEv ✅ verified 1
src/_ZN9LakituBro8BehaviorEv.cpp _ZN9LakituBro8BehaviorEv ✅ verified 1
src/_ZN9LakituBroD0Ev.cpp _ZN9LakituBroD0Ev ✅ verified 1
src/_ZN9LakituBroD1Ev.cpp _ZN9LakituBroD1Ev ✅ verified 1
src/_ZN9OneUpLogo13InitResourcesEv.cpp _ZN9OneUpLogo13InitResourcesEv ✅ verified 1
src/_ZN9OneUpLogo6RenderEv.cpp _ZN9OneUpLogo6RenderEv ✅ verified 1
src/_ZNK6Player14GetBodyModelIDEjb.cpp _ZNK6Player14GetBodyModelIDEjb ✅ verified 1
src/func_ov002_020f6618.cpp func_ov002_020f6618 ✅ verified 1
src/func_ov006_020e7fe8.cpp func_ov006_020e7fe8 ✅ verified 1
src/func_ov027_02111eb4.cpp func_ov027_02111eb4 ✅ verified 1
src/func_ov060_02111cc0.cpp func_ov060_02111cc0 ✅ verified 1
src/func_ov075_021143e4.cpp func_ov075_021143e4 ✅ verified 1
src/func_ov075_02114ddc.cpp func_ov075_02114ddc ✅ verified 1
src/func_ov091_02133254.cpp func_ov091_02133254 ✅ 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 merged commit dccbfb9 into main Aug 11, 2026
3 checks passed
@andrewboudreau
andrewboudreau deleted the prepare-static-v3 branch August 11, 2026 17:08
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