Files
xenia-rs/audit-runs/phase-c-first-divergence/first-diff-report.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

1.9 KiB

Phase C — first byte-diff report

  • canary image.bin: snap-001/canary/image.bin (9568256 bytes)
  • ours image.bin: snap-001/ours/image.bin (9568256 bytes)
  • pe reference: /home/fabi/RE - Project Sylpheed/Project Sylpheed - Arc of Deception (USA, Europe) (En,Ja).pe (9568256 bytes)
  • image_base: 0x82000000
  • import-slot ranges (merged): 3, bytes=3920

Raw byte hashes

  • canary sha256: a70993b77ca9e29218d033fad7c0b45c874676c4e0edd966545d39b266486a9c
  • ours sha256: ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18
  • pe sha256: 9be5f5621c517c78a451245eca25d54388af741ed20e669b2f78438aaa429e72

Pass 1 — raw byte-diff (uncanonicalized)

  • first byte-diff at off=0x00000600 VA=0x82000600
  • classification: .rdata (off=+0x0 into section)
  • canary byte: 0xde
  • ours byte: 0x00
  • pe ref byte: 0x00

context canary: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 de ad c0 de de ad c0 de de ad c0 de de ad c0 de de context ours : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 context pe : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 8c 00 00 02 bc 00 00 02 c1 00 00 02 d5 00

Pass 2 — canonicalized (import slots masked to 0xCD)

  • canary canonical sha256: 62c51908e2df705583fe81a084f39bd399196f9000cfa7bffd56127b41a4ab96

  • ours canonical sha256: 62c51908e2df705583fe81a084f39bd399196f9000cfa7bffd56127b41a4ab96

  • pe canonical sha256: 62c51908e2df705583fe81a084f39bd399196f9000cfa7bffd56127b41a4ab96

  • canary == ours canonical match

  • the image_loaded_sha256 mismatch is fully explained by legitimate engine-specific import-thunk patches.

  • NO real engine divergence at this layer.

Pass 3 — engine vs .pe ground truth (canonicalized)

  • canary canonical == pe canonical
  • ours canonical == pe canonical

Summary

  • bytes differing raw: 3704
  • bytes differing canonical: 0
  • import-slot mask bytes: 3920