Files
xenia-rs/audit-runs/phase-c13-game-dat-files-tbl/broad-impact.md
MechaCat02 ef93a4fa14 handoff: VSync/event-wedge fixes + iterate 2.A–2.BC research notes
Source changes (dormant parity infra, retained from iterate 2.AI/2.AO):
- xenia-kernel/exports.rs: nt_create_event manual_reset polarity +
  related event wiring
- xenia-gpu/mmio_region.rs: D1MODE_VBLANK_VLINE_STATUS hardcode parity

Also lands the audit-runs/ analysis notes (.md/.txt/.json digests) for the
iterate 2.x VSync/0x10e8/0x1004 wedge investigation. Raw trace dumps
(.jsonl/.gz/.csv/.stdout) and agent worktrees (.claude/) are gitignored as
regenerable local artifacts — see memory + HANDOFF for the running findings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 07:19:08 +02:00

2.8 KiB
Raw Blame History

Phase C+13 broad-impact assessment

Resolved

event before after
Main idx 103862 NtCreateFile(game:\\dat\\files.tbl) ours=0x00000000 (synth-success) / canary=0xc0000034 ours=0xc0000034 matches canary bit-for-bit

Advanced

metric before after delta
Main cold-vs-cold matched prefix (canary tid=6 → ours tid=1) 103,862 104,574 +712 events
Stable digest imports 40,447 40,390 -57
Stable digest instructions 50,000,002 50,000,007 +5

imports -57 is the population of previously-masked missing-disc-file probes: each one used to emit a synth-success kernel.call/return pair plus an import.call, ours now emits just a NOT_FOUND kernel.return. Net 57 import-call slots freed = ~28 distinct missing-file paths that the boot validator now sees as NOT_FOUND.

Persisted (sister chains, all unchanged)

canary_tid ours_tid matched notes
4 11 9 no divergence in compared events
7 2 29 no divergence in compared events
12 7 2 pre-existing KeWaitForSingleObject TIMEOUT/SUCCESS
14 9 39 pre-existing XAudio init divergence
15 10 15 no divergence in compared events

No sister-chain regression. The fix is scoped to open_vfs_file's disc-path arm; sister tids don't touch this code path during their captured windows.

NEW (surfaced by the fix)

location observation
Main idx 104574 Ordinal-of-call mismatch: canary does two sequential RtlEnterCriticalSection (104571, 104574); ours does one Enter then Leave. Likely an error-handling path in Sylpheed's boot validator that takes a nested lock on disc-file NOT_FOUND.

This is the expected pattern: scoping the synth-empty surfaces the code branch that handles missing disc files honestly. The new divergence is at the next layer of the boot validator's error-path logic and becomes the Phase C+14 target.

Risk: did anything regress in non-cold scenarios?

  • Kernel unit tests: 177 → 181 pass; no failures. The new nt_create_file_non_disc_prefix_missing_still_synthesizes test proves the legacy synth-empty path is preserved for non-disc prefixes (i.e. writable system partitions).
  • Phase B image hash: unchanged. The fix doesn't touch image loading.
  • Lockstep goldens: --stable-digest 3× determinism PASS; no jitter introduced. The C+12 baseline digest was already a stable-mode reference, so the new digest just becomes the C+13 baseline.

Summary

One divergence Resolved (idx 103862). +712 events Advanced on the main chain. Zero sister regressions. One NEW divergence at idx 104574 — a higher-quality target (error-handling path divergence) than a synth-empty masked divergence.