method lines withdrawn Q5, measured off two boots: up/down move one item and WRAP at both ends on the 5-item main menu and the 3-item EXTRAS alike; left/right do nothing; B goes up one level and restores focus to the item you came from (4/4); B on the main menu returns to the title; B on the title does nothing. The menu opens on TUTORIAL -- the middle item -- 2/2, though a third recorded run implies NEW GAME, so that one is reproducible rather than invariant and says so. Q4 by driving: LOAD GAME opens the save-slot list, TUTORIAL the lesson list, OPTIONS the settings menu, EXTRAS build 6, MISSION SELECT the stage list. NEW GAME is not tested -- A on it hangs the emulator and this iteration needed the session. The GamePart ID behind each is NOT measured: it is the entry of the decoded id table whose name matches the screen I saw, and the page says so rather than wearing the badge. And the withdrawal. Last iteration I wrote that these menus drop d-pad presses shorter than ~0.3s. They do not. Once wrap is measured, every press count I had is exactly right -- four presses moved four steps THROUGH the bottom, which lands one above where a non-wrapping menu would. I invented hardware flakiness instead of testing the ends of the list. METHOD keeps the withdrawal rather than deleting the line. Also: label brightness is not a cursor oracle here -- the background art outshines the highlight on some rows. menu_focus.py reads the focus ring instead, 254 vs <82, no tuning.
10 KiB
10 KiB
Refuted — claims that were tested and died
Read this before proposing a hypothesis. Every line below was believed at some point, measured, and found false. Reviving one costs a whole iteration and produces nothing.
This file exists because the list had been living in the autonomous agent's loop prompt — the only copy, lost the moment the container was. A refuted result is a real result; it belongs in the corpus like any other.
Format: each entry is the claim as it was believed. Where the true answer is
known it follows after →. Grouped by subject so a grep for your noun finds the
neighbourhood, not just the line.
Offsets, structs and the progress singleton
position = instance − 0x12c→ refuted.+0x29d0→ refuted.- "an offset intersection can find a struct's consumer" → only for LARGE or
unusual offsets. Small ones have no power (
+184: 301/351/115 hits). - "a
+1956store means a progress write" → writes go through the COPY, not direct stores. 9 direct stores, none of them a progress write. - "the singleton-global filter can find progress writers" → it fails its own control.
- "the progress copy destination is an
r1-relative stack local" → it is a frame register. Ther1assumption returned 0 for all 21 candidates including the known-good — the filter was killed by its own control. - "word B's writer also stores the Time/Points record" → it does not.
- "the debriefing records the metric with the clear bit" → 44 calls, exactly two
strings (
DEBRIEFING,BASE_INFO), noTime, noPoints. - "
0x820AF030holds live state" → all 384 words constant; it is a spawned-entity record, not live state.
Screens, classes and RTTI
- "the title menus drop d-pad presses shorter than ~0.3 s" → refuted by my
own data. The menu wraps at both ends; every press registered, and the
"missing" step was the wrap. See
menu-navigation-semantics.md. - "the main menu opens with
NEW GAMEfocused" → it opens onTUTORIAL, 2/2 boots (🟡 a third recorded run impliesNEW GAME, so this is reproducible, not invariant). - "
GP_TITLEbuilds 6/8/9 are three submenus" → 8 is the JAPANESE main menu, and 6/9 are the English and JapaneseEXTRASsubmenu.GP_TITLEholds eight screens shipped twice (EN/JP), and exactly one submenu. Seeui-title-build-map.md. - "the
PRESS Ⓐ BUTTONplate is a state of the title build" → it is its own build (2/3), composited over build 4 and faded in a beat later. - "the RTTI route can name the anonymous classes" → 1 150 vtables: 1 150
ANON_, 0rtti_present, 0 base classes. - "the sibling vtable methods name the class" → they cannot.
- "
xrefscan name the callers of a vtable method" → no. - "the
ind_callrefutation voids existing corpus claims" → damage bounded, 4/4 caller claims verify. Butxrefs.ind_callis a CROSS PRODUCT — always filterkind='call'. - "
BASE_INFOmarks the 5-slot screen family" → it discriminates screen-config from table-read, 9/9 vs 10/10. - "a high key count means a rich screen" →
sub_82297550/sub_822A2F00's 27 "keys" are coordinate pairs, i.e. a layout table. - "
EX_= the CHALLENGE-mission debriefing" →EX_is EXTRA, mission-kind 3. - "the
EX_selection has not been shown" → it has:[[obj+4]+184] == 3.
Stages, missions and the challenge set
- "the disc's stages are numbered 1..28" → S01–S16 story, S17 cut, S18–S23 tutorials, S24–S29 challenge.
- "S24–S29 are story missions" → they are the challenge missions.
- "the challenge missions have their own maps" → they reuse
GP_MAIN_GAME_E.pak's stage records. - "the challenge
REQUIREMENTvalues are 16,25,26,27,29" → the chain is 16→24→25→26→27→28. - "the
Extra0nfamily shares one leaderboard metric" →RECORD_TYPEis per-stage: 3 Time / 3 Points. - "stage = filled SHAB count + 1" → refuted.
- "the first TRIGGER is always the point of no return" → refuted.
- "
EnumUnit_S14.tblmight be missing" / "S14's 13 are a manifest omission" / "asteroids are exempt from the manifest" → S14's 13 are dangling deployments. NEEDS-HUMAN: fly S14. - "
StageMessageSet_S02.tblis not in the pak" → it is. - "
S28_p1has an asteroid volume with no definition" → refuted. - "
test_s8p1_asteroid.tblis test-only" → refuted. - "the settings family has 28 or 29 objects" → 24.
ISL / mission scripting
- "the bytecode is in the
.embsec_sections" → refuted. - "only 31 built-ins take a unit" → refuted.
- "
sub_8230C398is the message pump" → refuted. - "
bus+8216is the subscriber registry" → refuted. - "the ScriptPhase vtable is ≥200 slots" → 113.
IDXD, paks and naming
- "IDXD record keys are
name_hash" → record keys aretag_hash(case-SENSITIVE);name_hashis case-INSENSITIVE and used for pak keys. - "pak TOC order is stage order" / "TOC order is semantic order" → it is not.
- "the executable holds the asset names" → the image names no data value at all; that route is powerless.
- "the image might name a data VALUE" → powerless.
- "the XPR2 manifest names hash to the DefTables tables" → refuted.
- "the
DefTablesmodel names are unreachable" → reachable via theEnumeratedeclaration tables (1 413/1 425, 99.2 %). - "the
GP_MAIN_GAME_*unnamed block is undiscovered data" → refuted. - "each
GP_MAIN_GAME_*Enumerateobject declares something" → refuted. - "
GP_HANGAR_ARSENALis missing data tables" → refuted. - "the
Enumerationself-index can name objects" → a self-index names records, not files. - "a per-pak prefix might close the 2D blocker" → no.
- "the
+paths might name the 2D orGP_READY_ROOMkeys" → the+-dictionary route is exhausted, 0 of 1 817. - "the
game:\paths are unresolved" → refuted. - "a set-difference over file names can see reuse" → it cannot; join per USER. Per-pak copies are ×6.
Units, weapons, effects and assets
- "
Generic(394) is the unit datasheet" → refuted. - "a loadout's
Arm1names an item" → it names a hardpoint slot (Turret_NNN), 59/59. - "
EnumUnitand the unit datasheet share a vocabulary" → they do not. - "the roster is the
Generic.Modelset" → roster 40,Generic.Model46,GameResourceID480 — three vocabularies. - "every unit ID is
UN_<l>###_<FACTION>_<name>" → the grammar isUN_<letter>###_[<subkind>_]<FACTION>_<name>. - "
_EXnis theExtra0nindex" → three differentEXvocabularies exist. - "the only two
_EX5names on the disc are the AA gun and the DeltaSaber" → refuted. - "running the tutorial will instantiate the
_Ttrlweapons" → refuted. - "the disc has exactly three
EnumWeapontables" → four. - "the
wep_NNpackage gaps are unshipped weapons" / "wep_85is the tip of a family" →wep_85is the only declared-but-unshipped asset (59/0/1/26). - "nothing is deployed without being declared" → refuted.
- "effects are one namespace" → refuted.
- "the 58 undeclared effect names are missing assets" → refuted.
- "all five orphan effects are unshipped" → refuted.
- "
eff_f0002ships inBase.xpr" → refuted. - "
Base.xprholds more bound effects thanptc_pack" → refuted. - "the 34 unlocated are a scatter" → refuted.
- "the 9 unlocated might be under another prefix" → refuted.
- "
ptc_packhas 532 names" → 727. - "the
_e/_flaw is effect-FIELD-specific" → it is the faction law, 564/564. - "a disc-wide
.xprbyte search can show an effect is ABSENT" → it cannot. - "
rot_n001is on the disc" → refuted. - "
rou_f004's mesh is inStage_S28.xpr" → it is inDeltaSaber_A.xpr. - "
parent+_all+_childis the composite-model convention" → refuted._hangaris real (59 of 166, 59/59 with a bare twin);_all/_childis not. - "
Motion_guard_starthas no damage variants" → refuted. - "
CoverAreabits 2 and 3 are mutually exclusive" → refuted. - "the 27 unresolved
NamePlatevalues are missing objects" → refuted.
LOD, background and misc tables
- "
EnumLODSet_*is a per-stage family" →EnumLODSet_test.tblserves 17 stages; 17+5+1 = 23. - "there are 8 orphan LOD tables" → 6.
- "the orphans are stale copies of
_test" → refuted. - "S25 is absent from the
DefTablesLOD families" → refuted. - "
BackGroundIDhas no referent anywhere" → it is an identity. - "
BackGroundPackage == BG_<id>.xpr" → refuted. - "
<X>ID+<X>Packageis a convention" → refuted. - "
Placement_*/RouteTest_*are unattached" → refuted. - "the
AsteroidDefinitionjoin does not reproduce by hash" → it does. - "the 8-value frame is a new finding" → it was already in the corpus.
Loaders, config and tuning
- "the config reader is XML" → INI.
- "
sub_822F9498is the unit-definition loader" → it isPlayerParams's. - "
sub_822AE628reads the main-gameTweak" → refuted. - "
sub_8230D1F8is a rank table" → it is the stage-settings loader. - "
sub_82286BC8's key list is new" → refuted. - "
sub_825F2CF0/sub_825F2F88read a post-processing table" → refuted. - "
Boosteris a new schema" / "Boosteris the player craft's flight envelope" → refuted; nothing selectsBooster. - "the
AnalogRevice/Tweakblock is unreachable" → reachable (sub_821A6CF0, base0x820A1630). - "a 0-xref string block has no reader" → refuted.
- "the AI table was NEEDS-HUMAN" → refuted.
- "the
PG*HUD names are undocumented" → they are documented. - "a base-solver row identifies a FUNCTION" → it does not.
- "a 64K-boundary base is low confidence" → inverted; it is high confidence.
- "the 0x820B0000 cluster is a false positive" → refuted.
- "a pointer to a function in the image implies a registry" → refuted.
.pdatais not a registry. - "the 13 player-facing chatter tables are the WINGMAN tables" → refuted.
- "the 8 undeclared chatter tables are tutorial chatter" → refuted.
- "other datasheets ship a schema too" → refuted.
Encoding and text
- "every IDXD string value is ASCII" → 6 non-ASCII values of 99 328.
- "
文字列is a dev placeholder" → they are Shift-JIS type words.