You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8cf0972
Browse filesBrowse the repository at this point in the historyBrowse files
chore(v2.0.1): remove dead mc-r1-dmc-abort-probe flag + measure-first perf pass (#237)
Closes the v2.0.1 "housekeeping" workstream #225 deferred: removes the dead
`mc-r1-dmc-abort-probe` diagnostic feature flag in full, runs a measure-first
performance pass (adopting nothing — discipline), and reconciles the affected
docs. Behavior-neutral: the default build is byte-identical and AccuracyCoin
holds 139/141 (nestest 0-diff).
Removed — `mc-r1-dmc-abort-probe`
- Deleted the 3 `[features]` decls (`rustynes-apu`, `rustynes-core`,
`rustynes-test-harness` Cargo.toml) + the two forwarding chains.
- `rustynes-apu/src/apu.rs`: removed the ~210-line gated `abort_probe` module
(atomic counters, `pack_dmc`, snapshot/log helpers) and all 13 `#[cfg]`
increment/dump sites, preserving the real behavior each was interleaved with
(`cannot_run_dmc_dma = 2`, `dmc_edge_arm_suppress`, `pending_dmc_abort`,
`dmc_abort_delay`, the `$4015` handler, the explicit-abort scheduler).
- `rustynes-apu/src/lib.rs`: removed the gated `pub use apu::abort_probe`.
- `rustynes-core/src/bus.rs`: removed the 3 gated log hooks.
- `scan_dma_abort.rs` retained (only its probe-only reporting block removed; the
no-features RAM-scan fast-path has standalone value).
- No `#[cfg(not)]` counterparts existed, so the default build is byte-identical.
Kept — `mmc3-m2-phase-irq` (conservative)
Unlike the pure-diagnostic DMC probe, it gates real alternate MMC3-IRQ-timing
behavior (with `#[cfg(not)]` shipped-path counterparts) and is still referenced
by the open R1/R2 residual (ADR 0002, by-design-deferred, not closed).
Perf — measure-first, nothing adopted
`cargo bench -p rustynes-core` `full_frame` medians: `nes_run_frame_nestest`
3.77 ms (4.42x NTSC realtime), `flowing_palette` 2.26 ms (7.37x) — within noise
of the documented R1 baseline. No micro-opt cleared the >3%-Criterion +
byte-identical bar (v1.7.0 H7 discipline), so none adopted. Recorded in
`docs/performance.md`.
Docs — STATUS (probe removal + remaining default-off flags), ADR 0030 (dated
update: both bounded octal-latch attempts reach only 139/141 flag-on),
CHANGELOG `[Unreleased]`, `docs/performance.md`, and the stale
`docs/release-notes/v2.0.1.md` kept-flags list.
Review: adopted both gemini brace-cleanups (apu.rs, bus.rs) + the copilot
release-notes-consistency fix; all 3 threads resolved.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments