# iterate-2D Deferred Structural Fixes — Outcome Branch `iterate-2D/subsystem-fixes`. After verification + the user's go-ahead: ## Issue 1 — 32-bit word-form ALU truncation (PPCBUG-020) — ✅ FIXED & LANDED Commit **341196a**. Confirmed load-bearing via runtime ours-vs-canary capture: Sylpheed's ms→LARGE_INTEGER converter `sub_824ACA88` (`clrldi; mulli r11,r11,-10000; std`) produced `0x00000000_FFFD8F00` in ours vs canary's correct `0xFFFFFFFF_FFFD8F00` for a 16 ms wait — a positive (absolute) timeout → ~26000× over-wait that froze the main frame loop. Fixed the 17 data-losing word-form ops (full 64-bit result, CA/OV/CR0 preserved byte-identical), updated 7 bug-asserting tests, re-baselined `sylpheed_n50m` (imports 40454→1790936), `sylpheed_n2m` unchanged. 660/660 + ignored oracle green; lockstep determinism preserved. Boot unwedged (parallel NtWaitForMultipleObjectsEx 94→30428; frozen worker/critical-section loops now run). VdSwap still 1 — rendering progression needs the out-of-scope acd1656 fixes (nt_create_event polarity + 2.AF), not in this branch. ## Issue 2 — Memory page-size per-region collapse — DEFERRED (verified NOT load-bearing) Sylpheed requests `MmAllocatePhysicalMemoryEx` with flags=0, alignment(r8)=0 (default); ours returns self-consistent 4K-aligned addresses and boots. ours has no 0xA0/0xC0/0xE0 physical-region model at all, so a faithful fix is a region-model rewrite that shifts every physical guest VA (golden-breaking, invalidates the audit-059 VA map) with no demonstrated boot benefit. A partial page-size-only change would shift VAs for zero correctness gain — do NOT do it piecemeal. Pursue only if a render-path struct is proven to depend on physical region/alignment. ## Issue 3 — Timing — LEFT (not load-bearing / determinism-coupled) - 3d DPC/APC: INERT — the only timer (NtSetTimerEx) passes a NULL APC routine; no NtQueueApcThread/KeInsertQueueDpc imported. - 3b timeout sign: was a SYMPTOM of Issue 1 (the "positive absolute" timeouts were mulli-corruption artifacts) — resolved by the Issue 1 fix. - 3a/3c timebase/skew: timebase = instruction-count IS the deterministic lockstep clock; must not become wallclock. 2.AF deadline-drain already present. Not load-bearing for Sylpheed. ## Issue 4 — VFS synthesized-success-on-miss — LEFT (risky / coupled to Issue 1 trajectory) The synthesis fallback handles a MIX (writable-partition probes partition0/Cache0 + a genuine disc miss dat/files.tbl, verified absent from the ISO). Canary doesn't fire XamShowDirtyDiscErrorUI during boot (the one "DirtyDisc" log hit is the import-table declaration). Not cleanly separable without heuristic disc-vs-partition routing. Re-verify on the corrected post-Issue-1 (and post-acd1656) trajectory before changing. ## Issue 5 — Mutant object — SKIPPED (verified unused) Sylpheed's XEX import table contains NO mutant symbols (NtCreateMutant/NtReleaseMutant/KeReleaseMutant/ KeInitializeMutant/NtQueryMutant) — the game cannot call them; unimplemented=0 across boot. A correct implementation needs mutant hand-off semantics + an owner-type redesign (the existing `Mutex { owner: Option }` tracks a HW slot, not a thread) in the determinism-critical wait path, for code that never executes. Per the mandate's skip-if-unused criterion, left unimplemented. Can be added on request as a pure canary-parity / future-title feature (determinism-safe since no Sylpheed mutant ever exists at runtime).