☀️ 70% – adopt sixty-four exact owners on 175a3bdc6: eleven main-image functions and fifty-three scene sequences - #6
Conversation
78d0247 to
d8ed831
Compare
5229f7d to
2cca9dc
Compare
|
Independent re-check of every overlay owner this branch adopts (152, listed from |
32d8660 to
bf8560b
Compare
bf8560b to
0050352
Compare
0050352 to
4aaa363
Compare
4aaa363 to
c8fa0be
Compare
352c3d4 to
af75605
Compare
af75605 to
35df2ec
Compare
…e main-image functions and one hundred fifty-six scene sequences Replays PR PascalPixel#6 onto 620ea96 after the unidentified-tree retirement: the same one hundred sixty-eight exact owners (12 main-image functions, 156 overlay scene sequences) that main does not have, carried over as a single squashed cherry-pick of the five commits that sat on 3a7184a. Every source, assembly retirement, recon draft removal, overlay-assembly region split and assets/code change merged without conflict; only the four registries needed rebuilding by hand: - source-paths.json = upstream register, minus the three name-only RunEventScript02 registrations with no overlay assembly evidence (resource_371:02001064, resource_37b:02000554, resource_3c5:0200186c) that sit wholly inside adopted owners, plus our 168 entries (89 new keys, 79 name-only keys given a source). - dossiers.json = upstream records minus the 86 drafts these adoptions retire. - README.md and the two readme SVGs regenerated by make coverage. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
375b443 to
1866aaf
Compare
95fe4b3 to
d407626
Compare
…functions and sixty-four scene sequences PR PascalPixel#6 reduced to what main still lacks after your own harvest: every owner main reached itself is dropped (your versions stay), leaving 64 overlay scene sequences and 7 main-image functions that on this tip are still retained assembly or name-only registrations. Each overlay owner was re-adopted on this tip through thumb2c adopt at its registered span with its registered or next free sequence name. The main-image functions are spelled Func_<address> in source with no alias line, register under their semantic names, and retire their games/gs1/asm and recon drafts. Retained overlay-assembly regions around adopted owners were shortened, cloned, or retired with an evidence line on each; name-only RunEventScript registrations wholly inside adopted owners had no assembly evidence left and were dropped. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
d407626 to
de90e8c
Compare
…e functions and sixty-five scene sequences PR PascalPixel#6 reduced to what main still lacks after your own harvest: every owner main reached itself is dropped (your versions stay), leaving 65 overlay scene sequences and 8 main-image functions that on this tip are still retained assembly or name-only registrations. Each overlay owner was re-adopted on this tip through thumb2c adopt at its registered span with its registered or next free sequence name. The main-image functions are spelled Func_<address> in source with no alias line, register under their semantic names, and retire their games/gs1/asm and recon drafts. Retained overlay-assembly regions around adopted owners were shortened, cloned, or retired with an evidence line on each; name-only RunEventScript registrations wholly inside adopted owners had no assembly evidence left and were dropped. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
b88b2a7 to
4a640d6
Compare
…e functions and sixty-five scene sequences PR PascalPixel#6 reduced to what main still lacks after your own harvest: every owner main reached itself is dropped (your versions stay), leaving 65 overlay scene sequences and 8 main-image functions that on this tip are still retained assembly or name-only registrations. Each overlay owner was re-adopted on this tip through thumb2c adopt at its registered span with its registered or next free sequence name; resource_3ba:02002aec is adopted at its 190-byte extent inside its 192-byte region, the alignment halfword after its return staying retained, the same shape as resource_378:0200290c. The main-image functions are spelled Func_<address> in source with no alias line, register under their semantic names, and retire their games/gs1/asm and recon drafts. main:080b8db8 was recorded as a proven-retained compiler_entry_scheduling_module (classification.json group: the entry schedule needs forbidden register constraints); an ordinary C89 spelling — the context parameter reassigned from the local context block, which keeps GCC from folding the known zero into the compared pointer — links byte-exact, so that record retires with its assembly (expected_files 2 -> 1, expected_bytes 976 -> 708). Retained overlay-assembly regions around adopted owners were shortened, cloned, or retired (42 region edits, evidence line on each); name-only RunEventScript registrations wholly inside adopted owners had no assembly evidence left and were dropped. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… functions and sixty-six scene sequences PR PascalPixel#6 reduced to what main still lacks after your own harvest: every owner main reached itself is dropped (your versions stay), leaving 66 overlay scene sequences and 8 main-image functions that on this tip are still retained assembly or name-only registrations. Each overlay owner was re-adopted on this tip through thumb2c adopt at its registered span with its registered or next free sequence name. The main-image functions are spelled Func_<address> in source with no alias line, register under their semantic names, and retire their games/gs1/asm and recon drafts. Retained overlay-assembly regions around adopted owners were shortened, cloned, or retired with an evidence line on each; name-only RunEventScript registrations wholly inside adopted owners had no assembly evidence left and were dropped. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
4a640d6 to
054a79e
Compare
… functions and sixty-six scene sequences PR PascalPixel#6 reduced to what main still lacks after your own harvest: every owner main reached itself is dropped (your versions stay), leaving 66 overlay scene sequences and 8 main-image functions that on this tip are still retained assembly or name-only registrations. Each overlay owner was re-adopted on this tip through thumb2c adopt at its registered span with its registered or next free sequence name. The main-image functions are spelled Func_<address> in source with no alias line, register under their semantic names, and retire their games/gs1/asm and recon drafts; main:080b8db8 was recorded as a proven-retained compiler_entry_scheduling_module and an ordinary C89 spelling links byte-exact, so that classification record retires with its assembly. resource_3ba:02002aec is adopted at its 190-byte extent inside its 192-byte region (alignment halfword retained). Retained overlay-assembly regions around adopted owners were shortened, cloned, or retired with an evidence line on each; name-only RunEventScript registrations wholly inside adopted owners had no assembly evidence left and were dropped. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
054a79e to
7803811
Compare
…nctions and sixty-six scene sequences PR PascalPixel#6 reduced to what main still lacks after your own harvest: every owner main reached itself is dropped (your versions stay), leaving 66 overlay scene sequences and 10 main-image functions that on this tip are still retained assembly or name-only registrations. Each overlay owner was re-adopted on this tip through thumb2c adopt at its registered span with its registered or next free sequence name. The main-image functions are spelled Func_<address> in source with no alias line, register under their semantic names, and retire their games/gs1/asm and recon drafts; main:080b8db8 was recorded as a proven-retained compiler_entry_scheduling_module and an ordinary C89 spelling links byte-exact, so that classification record retires with its assembly. resource_3ba:02002aec is adopted at its 190-byte extent inside its 192-byte region (alignment halfword retained). Retained overlay-assembly regions around adopted owners were shortened, cloned, or retired with an evidence line on each; name-only RunEventScript registrations wholly inside adopted owners had no assembly evidence left and were dropped. No compiler, flag, routing, or tool changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
7803811 to
f9db466
Compare
…s and forty scene sequences PR PascalPixel#6 re-landed on main 90687df under the re-pinned agscc/agbcc toolchain and the new overlay call-binding contract. Every owner was re-scored on this tip: 53 still link byte-exact with no source edit; 50 land here (40 overlay scene sequences, 10 main-image functions); the remaining 19 overlay owners from the previous PR changed bytes under the post-reload constant-mode cselib correction (identical constant arguments now share a register) and are withheld until they are exact. Three further exact owners (resource_374:02000bbc, resource_39e:02000658, resource_39e:0200071c) lie inside proven generated_call_script_module retained regions and are withheld rather than editing that evidence; their byte-exact C is available as a refutation of those records. Overlay owners: legacy call names that bind to two runtime targets in the audited extent are separated into distinct declarations (`_a` suffix, per the field-scene-selector precedent) and declared as absolute_symbols on each owner's translation unit; only colliding names are declared. Sources install at their registered paths, the overlay assembly regions become AlchemyC_ placeholders with referenced local labels kept, and retained-region, dossier, unmatchable and recon draft records retire with the assembly. Owners main no longer registers were re-registered under their previous names. Main-image functions went through `alchemy check integrate --apply` (10 accepted, 0 rejected). The compiler_zero_rematerialization_mismatch classification group (080b6d30, 080b9dc4) is fully refuted by ordinary C89 spellings and is removed; 080b8db8 leaves compiler_entry_scheduling_module for the same reason. Gates: make verify (full gs1-en ROM byte-exact) green on this tree with the compiler bundle built from the pinned agscc/agbcc sources and GNU binutils 2.10 GAS on linux-x64.
|
Re-landed on 90687df (one commit, d2c17eb): 54 owners at 1. linux-x64 admission of the restored bundle. Built from the pinned One host quirk: Ubuntu 24.04 binutils 2.42 flags 2. Evidence on the post-reload constant-mode correction. 19 overlay owners that were exact under the previous pin changed bytes under this one, all the same way: identical constant arguments now share one register where the ROM materialises each separately. Smallest cases (both were exact before):
3. 4. Refuted records. |
|
Findings from today's lanes on 90687df, for your judgement (nothing here is in the PR beyond the exact owners): 1. Register alias families. Where 2. A floor class blocks most of the near-exact tail. 26 owners (11.9 KB) sit at
3. Fresh drafts. Owners at ≤ 5 (dh, bytes): main:080b6d30 1/—, main:0801faa8 1/160, resource_39b:02001730 1/572, main:080fa264 2/28, resource_387:02000d68 2/64, main:080b6a60 2/128, resource_373:020032b0 2/208, main:08098848 2/268, main:08095dd0 2/460, resource_3a5:020004e4 2/936, resource_383:02001348 2/1608, resource_3a0:02000324 3/52, main:080a8578 3/140, resource_382:02001090 3/172, resource_385:02000c1c 3/172, main:080cd260 3/248, main:08021d88 4/114, main:080b0958 4/164, main:08020198 4/172, resource_3af:02001db0 4/480, main:080e0c84 4/956, resource_378:0200088c 4/4080, resource_3b1:02001978 5/144, resource_39c:020016c4 5/204. |
|
Findings from running the full 1. 2. Twelve corpus owners cannot carry a unit under both checks. 3. 4. 5. Environment notes for |
… functions and forty-six scene sequences PR PascalPixel#6 re-landed on main b873d4e (agscc 5ec3e2e unchanged). Five owners of the previous landing are now main's own recovered modules (resource_3a2:02000924, :02000ac0, :02000b2c, :02000c30 in scene-actor-events and resource_3ad:02001760 in scene-party-departure) and drop out; every remaining owner was re-scored on this tip with a linux-x64 source build of the pinned compilers and links byte-exact with no source edit. 57 land here (46 overlay scene sequences, 11 main-image functions). Four further exact owners (resource_374:02000bbc, resource_399:02000f90, resource_39e:02000658, resource_39e:0200071c) lie inside proven generated_call_script_module retained regions and are withheld rather than editing that evidence. Overlay owners: legacy call names that bind to two runtime targets in the audited extent are separated into distinct declarations (`_a` suffix, per the field-scene-selector precedent) and declared as absolute_symbols on each owner's translation unit; only colliding names are declared. Sources install at their registered paths, the overlay assembly regions become AlchemyC_ placeholders with referenced local labels kept, and retained-region, dossier, unmatchable and recon draft records retire with the assembly. Owners main no longer registers were re-registered under their previous names. Main-image functions went through `alchemy check integrate --apply` (11 accepted, 0 rejected). The compiler_zero_rematerialization_mismatch classification group (080b6d30, 080b9dc4) is fully refuted by ordinary C89 spellings and is removed; 080b8db8 leaves compiler_entry_scheduling_module and 080b6e7c leaves compiler_commutative_address_mismatch for the same reason. Gates: make verify (full gs1-en ROM byte-exact) green on this tree with the compiler bundle built from the pinned agscc 5ec3e2e / agbcc da598c1 sources and GNU binutils 2.10 GAS on linux-x64.
…didate drafts `make candidate-corpus-check` on b873d4e aborts at the first candidate draft whose legacy call name binds to two runtime targets in its audited extent (Func_02008bd8 in resource_380:02004260), and behind it at every further draft with the same defect. Per the call-binding contract each colliding name is separated into distinct C declarations (`_a`, `_b`, … in reference call-site order) and its runtime symbols are declared on a retained candidate unit, following the existing retained-overlay-380 / retained-overlay-383 precedent; the intra-extent callees of resource_3b7:02000e5c and resource_3bd:0200109c, which the reference never reaches by `bl`, are declared at the loader runtime base. Twenty-two drafts change and twenty-two `retained-overlay-<overlay>-<entry>-call-identity` units are declared, each with the reviewed span from games/gs1/semantic/regions.json as its owner extent, which also equals its overlay-assembly evidence. Drafts that already carry a partial separation on an existing unit are untouched, and so are the owners whose reviewed span and overlay evidence disagree or whose evidence is absent (no unit can satisfy both `check integrate` and `build-full` there; listed in the PR). resource_38f:020008ec had no registered owner and is registered name-only under the adopt route's derived name so its unit can be declared. Where a draft spells fewer calls than the reference has sites for a name, the spelled calls bind to the leading sites and every site's symbol is still declared; those drafts stay non-exact candidates, as before. No production C, owner source paths, coverage, or ROM bytes change.
Recover the two unregistered executable owners of resource_37b as exact C under the approved route and flatten the wholly exact overlay into one module. resource_37b:02001b44 (164 bytes, SceneActor_PlaceActorPairAtCells) clears an actor flag and places an actor and a second cell pair through the shared scene runtime; its two constant-argument calls pass their operands through an inline call wrapper so the constants reach the argument registers unshared. resource_37b:02000c8c (548 bytes, FieldScene_RunPanAndBurstSequence) saves the camera pointer cell at 0x03001e70, pans the copied camera record by 0x10000 per step in the direction selected by the record's third word against 0xb30000, runs three timed burst loops, and pans back; its loops compare against the bound with `!=` so the counters stay counting up as the reference does, and Func_020031a8 / Func_020031bc / Func_02003214 bind to two runtime targets each and are separated into `_a`/`_b` declarations with explicit runtime symbols. The register entry resource_37b:0200101a named two bytes of alignment padding (overlay-assembly evidence alignment_padding) and is retired. `alchemy unit flatten gs1 resource_37b` consolidates the forty-six exact owners; the approved GCC 2.96 route cannot compile that single module (its scheduler loops or faults once about thirty of these wrapper-heavy scene functions share one file, while every function and each half compiles), so the overlay stays three compilation units by role: overlays/scene_script/ scene_37b.c (overlay-37b-unit, the scene sequences), scene_37b_steps.c (overlay-37b-steps, the guarded and five-value steps) and scene_37b_actor_steps.c (overlay-37b-actor-steps, actor and table helpers), and the existing scene-event-runtime unit keeps its five accessor owners and file since the tooling's regression fixture names it. Conflicting per-file declarations are resolved once at file scope, call words that bind to two runtime targets across owners keep the bare name for one owner and a `_a` alias for the other with both runtime symbols declared on the unit, and two owners of the earlier landing that reused existing register names (FieldScene_RunScene37b SequenceA / SequenceC) are renamed FieldScene_RunExtendedCameraSequence and FieldScene_CueActorTwoWhenCell13_7. Every owner links byte-exact from its shared object. Checks run: alchemy diff (both recovered owners differing_halfwords=0), alchemy adopt (02001b44), owner registers ok, alchemy unit flatten --apply, alchemy diff --unit on all three units (46/46 exact), make build-full, make verify.
Two overlay scene owners still carried address-derived register names and address filenames from an earlier landing. Neither is a name the evidence supports, and CONTRIBUTING keeps addresses in the owner register and the ABI alias, not in names or paths. resource_3af:02000c28 selects a cue record from the scene selector word and runs it, so it becomes FieldScene_RunCueBySceneSelector at overlays/scene_primary_script/run_cue_by_scene_selector.c. resource_3a8:02001ed8 scales an actor pair and then raises the prompt, so it becomes FieldScene_ScaleActorPairAndPrompt at overlays/scene_primary_script/scale_actor_pair_and_prompt.c. Each owner's register entry, translation-unit source path and the definition in its source moved together; the `#define <Name> Func_<address>` line stays as the ABI alias it is. Checks: make coverage, make verify.
resource_39e:02000e94 (236 bytes, FieldScene_RunPrimarySequence) is the last non-exact registered owner of the Xian school-and-rooftops overlay. It takes scene record 19, steps the shared runtime four times with a decreasing step count while lifting the record's 0x10 word by 0x10000 and pinning its 0x40 word, clears the display halfword at 0x1e of the record referenced from 0x50, lifts the same word by 0x180000, raises cue 227 and spawns four effects through the overlay's four SpawnEffect veneers at 0x02001040, 0x02001058, 0x0200107a and 0x02001096. The reference reloads the lift word after the halfword store instead of reusing the value the loop left in a register, and it materialises the lift constant only after that reload; a plain read is common-subexpression eliminated with the loop's last store and reorders that constant, so the cleared display halfword and the lift that follows it are `volatile` and nothing else is. The four spawn calls pass their record reads directly, which is what leaves the second argument loaded last at every site. The halfword is stored from an `s32` zero so it shares the zero the stack arguments use instead of taking a pool word. `alchemy diff --owner resource_39e:02000e94 --align` reports differing_halfwords=0 over the reviewed 236-byte extent and `alchemy adopt` installs it, retiring the region's `structured_scene_module` entry, its dossier and the recon draft. The overlay is not yet closed: 2716 executable bytes of resource_39e remain unresolved, so `alchemy unit flatten gs1 resource_39e` still refuses the module. `alchemy adopt` also rewrote games/gs1/recon/en/dossiers.json in its canonical one-line form, which is the form on main; an earlier commit on this branch had expanded it. Checks: alchemy build full (byte-identical), make coverage, make verify, make test. make candidate-corpus-check still stops at the pre-existing resource_39c:02001c9c gap (Func_0200778c ambiguous overlay call identity).
resource_3b0:02000564 (588 bytes, FieldScene_RunFourActorStagingSequence) was the overlay's only owner still outside ordinary C. It reads the scene record through the pointer cell at 0x03001e70, opens the scene at state 0x203, publishes the record's first two words to the shared cells 0x02009938 and 0x0200993c, stages actor 9 and then actors 10, 11 and 12 at 0x500000 by 0xd20000, gives each of the three the same 0x8000 scale words at 0x18 and 0x1c and the same per-frame updater at 0x6c, sets their facings, targets and timings, and leaves the scene at state 0x202. The word stored at 0x6c is the Thumb pointer to this overlay's own OverlayObject_Add160ToFields18And1c at 0x020080a5, not an opaque constant. Spelling it as that function's address through its `Func_020000a4` ABI alias is also what reproduces the reference schedule: a bare pool constant is created after the 0x8000 scale constant and the scheduler then hoists its load ahead of it, while the symbol reference is created before it, as the reference has it. Three legacy call names reach more than one runtime target from this owner (Func_0200178a two, Func_0200190c three, Func_02001914 two), so they are declared separately as `_a`, `_b` and `_c` with explicit runtime symbols, as the overlay's sibling owners already do. `alchemy diff --owner resource_3b0:02000564 --align` and `alchemy diff --unit` both report differing_halfwords=0 over the reviewed 588-byte extent, and `alchemy build full` stays byte-identical. `alchemy adopt` registered the owner and retired the region's `structured_scene_module` entry, its dossier and the recon draft, but stopped before rewriting the overlay assembly because the owner's retained call-identity translation unit still named the draft it had just removed; that unit is now the production unit for this source (exact-c, its call-identity symbols kept and the ABI alias binding added) and the assembly region carries the `AlchemyC_02000564` placeholder the tool emits. The overlay is still not closed: 502 executable bytes remain unresolved and four reviewed owners are unadopted, at 0x02000030 (76 bytes), 0x020000c0 (192), 0x02000240 (452) and 0x020010a0 (144), so `alchemy unit flatten gs1 resource_3b0` still refuses the module. Checks: alchemy build full (byte-identical), alchemy check owners, make coverage, make verify, make test. make candidate-corpus-check still stops at the pre-existing resource_39c:02001c9c gap (Func_0200778c ambiguous overlay call identity).
resource_39e:02000104 (54 bytes, IntegrateEffectMotion) is the per-frame
integrator of the overlay's scene effects: it adds the three velocity words
at 0x44-0x4c into the position words at 0x08-0x10, the two rate words at
0x30 and 0x34 into the accumulators at 0x18 and 0x1c, and the step at 0x64
into the sprite angle at 0x1e of the object the record points to at 0x50.
resource_3b2:02000da4 is the longer sibling with the velocity decay; its
effect and sprite layout is reused here rather than rederived. The sprite
pointer load must stay below the 0x1c store, and the approved GCC only keeps
it there when both references are volatile: its scheduler drops a
store-to-load dependence unless the pending write and the read are both
volatile, so exactly that pair carries the qualifier and nothing else does.
resource_39e:02000388 (140 bytes, SceneData_SelectRecordByScene3cAndFlag895)
is a scene-record selector of the same family as
SceneData_SelectRecordByScene21: the published word at Data_02000240 + 448
selects the record at 0x0200c8f0, the word at + 450 selects 0x0200cae8, and
the fall-through arm primes the record at 0x0200c998 with cue 0x895 at 0x7a,
0xaa, 0x10a and 0x122 and the two fixed words at 0xc8 and 0xd0 when story
flag 0x895 is already set, then announces it with Func_020047dc. The record
is reached through a pointer, not through the symbol with constant offsets:
the reference keeps the plain base in a register and walks it with `adds`,
while symbol-plus-offset spellings fold each field into its own pool word.
The flag id reaches the test through an inline call wrapper, which is what
leaves it out of the block's shared constants and reloads it for the stores.
resource_39e:02001160 (384 bytes, FieldScene_RunFiveActorBeatAndSetFlag301)
attaches actors 13, 14, 15, 16 and 18 to scene 19, plays dialogue 0x187a
over their moves, faces and camera cues, settles the record's fields at 0x0c,
0x3c and 0x18, shows the sprite halfword at 0x1e, and closes by setting story
flag 0x301. Four legacy call names reach two runtime targets each from this
owner (Func_020055f0, Func_02005674, Func_02005680 and Func_02005696), so
each is declared twice with an `_a` alias and both runtime symbols are
declared in its translation unit, as the overlay's sibling owners already do.
`alchemy adopt` scores, registers, installs and retires through that unit but
cannot rewrite the overlay assembly for a colliding-name owner: the unit it
needs is invalid while the assembly still owns the bytes. The unit is the
production unit for this source (exact-c, its call-identity symbols kept) and
the assembly region carries the `AlchemyC_02001160` placeholder in the shape
the tool emits, checked by `alchemy overlay audit resource_39e`.
The overlay is not closed. Six reviewed owners remain outside ordinary C and
none of them can be adopted through the current records:
- 0x02000518 (320), 0x02000658 (196) and 0x0200071c (928) are covered by
the retained region resource_39e:0200064c (1090 bytes,
structured_scene_module, strong). It starts twelve bytes inside
0x02000518's reviewed span and ends inside 0x0200071c's, so it lies
wholly inside no owner and adoption refuses all three pending a boundary
audit. Byte-exact C already exists for 0x02000658 and 0x0200071c.
- 0x02000cd4 (198), 0x02000f80 (156) and 0x0200102c (282) have reviewed
spans that their own evidence records as excluding their literal pools
(0x02000d9c-0x02000db3, 0x0200101c-0x0200102b and
0x02001148-0x0200115f). Compiled C emits its pool inside the function,
so no candidate can be as short as the recorded extent: the decompiled
draft of 0x02000cd4 is 224 bytes against a reviewed 198. A `--span` may
not grow to fit a candidate, so these three are blocked pending the same
boundary audit.
2140 executable bytes of resource_39e remain unresolved, so `alchemy unit
flatten gs1 resource_39e` still refuses the module.
Checks: alchemy build full (byte-identical), alchemy overlay audit
resource_39e, alchemy check owners, make coverage, make verify, make test.
make candidate-corpus-check still stops at the pre-existing
resource_39c:02001c9c gap (Func_0200778c ambiguous overlay call identity).
|
Rebased onto 175a3bd and re-verified there; the PR is mergeable again and the body is updated with the new numbers. Nothing in the branch touches On 175a3bd: 64 exact owners, README 67.32% → 69.94%, full-C bytes 562,036 → 598,688. Two audit gates still fail, both identically on untouched 175a3bd:
The new CONTRIBUTING asks for related owners grouped in maintained modules instead of one-function files. Overlay 37b is already in that shape here. Say the word and I will reshape the remaining overlays the same way rather than re-landing the per-owner form. |
Summary
Seven commits on
main(175a3bd), rebased today from b873d4e. Together they install 64 exact ownersmaindoes not have — 53 overlay scene sequences and 11 main-image functions, all atdiffering_halfwords=0. README 67.32% → 69.94%;check progressfull-C bytes 562,036 → 598,688 (41.68% → 44.40% of executable), main-image 124,932 → 127,466, overlays 437,104 → 471,222. One register entry retires (resource_37b:0200101anamed two bytes of alignment padding). No owner loses its source.Overlay owners follow the call-binding contract: legacy
Func_02xxxxxxnames that bind to two runtime targets in the audited extent are separated into distinct declarations (_asuffix, per thefield-scene-selectorprecedent) and declared asabsolute_symbolson each owner's translation unit. Sources install at their registered paths, the overlay assembly regions becomeAlchemyC_placeholders with referenced local labels kept, and retained-region, dossier, unmatchable and recon draft records retire with the assembly.Main-image functions went through
alchemy check integrate --apply(11 accepted, 0 rejected). Thecompiler_zero_rematerialization_mismatchgroup (080b6d30, 080b9dc4) is fully refuted by ordinary C89 spellings and is removed; 080b8db8 leavescompiler_entry_scheduling_moduleand 080b6e7c leavescompiler_commutative_address_mismatchfor the same reason.Second commit:
make candidate-corpus-checkaborts at the first candidate draft whose legacy call name binds to two runtime targets; twenty-two such drafts get_a/_bdeclarations with runtime symbols on retained candidate units (your retained-overlay-380/-383 shape, reviewed span = overlay evidence). No production C or bytes change. Owners whose reviewed span and overlay evidence disagree, or lack evidence, are left for you (findings comment).Third commit closes overlay 37b. Its two unregistered executable owners are recovered as exact C through
alchemy decompile/diff/adopt(resource_37b:02001b44, 164 bytes; resource_37b:02000c8c, 548 bytes), andalchemy unit flattenconsolidates the forty-six exact owners. The approved GCC 2.96 route cannot compile that as one file (its scheduler loops or faults once about thirty of these wrapper-heavy scene functions share a module, while every function and each half compiles, and your 61-owner scene_382.c is fine), so the overlay stays three units by role — scene_37b.c, scene_37b_steps.c, scene_37b_actor_steps.c, plus your existing scene-event-runtime unit untouched — with conflicting declarations resolved at file scope and cross-owner call-word collisions bound bare/_awith runtime symbols, your 382 style.alchemy diff --unitreports 46/46 owners exact from the shared objects. Two owners of the earlier landing had reused your existing register names (SequenceA / SequenceC) and are renamed.Commits four to six, same method: two address-named owners renamed by evidenced role; resource_39e:02000e94 (236 bytes) and resource_3b0:02000564 (588 bytes) recovered as exact C through
decompile/diff/adopt(the 3b0 owner carries_a/_b/_ccall aliases with runtime symbols;adoptwrites the register and retires evidence but stops at its own source check when a retained call-identity unit exists, so the unit and placeholder were finished in the tool's own output shape). Neither overlay can be flattened yet: 39e has six and 3b0 four reviewed owners still retained (listed in the commit bodies).Commit seven: three more resource_39e owners recovered as exact C (02000104 IntegrateEffectMotion, 02000388 SceneData_SelectRecordByScene3cAndFlag895, 02001160 FieldScene_RunFiveActorBeatAndSetFlag301).
Rebase onto 175a3bd
Nothing in the branch touches
tools/, so the workspace consolidation, the data-described asset build and the retired wave/family/dashboard surface apply unchanged. Conflicts were confined to the keyed registries and the generated figures:source-paths.json,translation-units.jsonanddossiers.jsonmerged entry-by-entry, each surviving entry kept verbatim, andmake coverageregenerated the SVGs and the README status line at each commit. The only entries that leave are the ones your own tools retire: 29 dossiers thatadoptdrops as their owners become exact, five 37b translation units thatunit flattenabsorbs (their three owners land inoverlay-37b-steps), and the one padding register entry. Your overlay 376 and 385 recoveries and the seven dossiers you added are untouched; this branch works on 372, 373, 375, 377, 37b, 37f, 381, 383, 38e, 395, 396, 39a, 39e, 3a8, 3ab, 3af, 3b0, 3b1, 3b9, 3ba, 3bb, 3bc and 3bf.git diff --checkis clean on every commit.Gates (on 175a3bd)
make verify,test,targets,classification-check,progress-report,coverage-check: green on every commit.full ROM contract ok: gs1-en,identical=True,unowned_bytes=0.alchemy check owners: owner registers ok after every adoption — 0 unmatchable, 0 sealed, 0 drafts.candidate-corpus-check: fails on untouched 175a3bd atFunc_02008bd8: ambiguous overlay call identity ({200c954, 200c95c}). With the second commit it runs past that group and stops atFunc_0200778c ({200daac, 200dad4})in resource_39c — same class, your code, not separated here because its reviewed span has nooverlay-assembly.jsonevidence.correspondence-check: fails identically on untouched 175a3bd atresource_385:02000cc8: ja overlay owner differs at +0x58 (c4 != b8), in the actor-presentation overlay landed today. Overlay locality otherwise reaches 3095/3139 matched here against 3042/3086 onmain.Review notes
agscc5ec3e2e +agbccda598c1 with GNU binutils 2.10 GAS asas;make verifyreproduces the ROM byte-exact with it, so the digests admitted locally for linux-x64 arexgcc 8d820fc3…,cpp0 067cb31d…,tradcpp0 faeae3eb…,cc1 fc3c3172…,as 8eb4386c…,agbcc/old_agbcc 6f02c717…(Ubuntu binutils 2.42 quirk:-mfpu=softfpaobjects are flagged VFP, soasis wrapped to-mfpu=fpa). Nothing in the branch changes the pinned digests.generated_call_script_moduleretained regions marked proven (resource_374:02000bbc,resource_399:02000f90,resource_39e:02000658,resource_39e:0200071c); their byte-exact C is available as a refutation of those records if you want it.