docs(accuracysnes): correct the C7.05/C7.06 verdict — no eval-line gap - #284
Conversation
The assessment landed in #283 said RustySNES sets range_over a line late against MesenCE. Re-measured on main with scripts/probes/eval-line-213e: it first reads set at scanline 100, which is MesenCE's value. The one-line lag belonged to the BATCH compositor, and per-dot is now the only one -- the probe's own README already recorded both figures, so this was a misreading rather than a measurement that changed. What actually remains for those rows is sampling resolution, not correctness. A polling loop is several dots per iteration and would pass whatever the true position is (the F1.09 vacuity shape). The probe demonstrates the technique that works -- an H-IRQ at a chosen HTIME, latching $2137/$213F and reading $213E -- so the rows should be written as a bracket: one sample below the expected H = OAM.INDEX*2 expecting clear, one above expecting set, the same shape D2.01 uses. Both of the probe's recorded traps are carried into the note: HTIME=300 pushes IRQ latency into the V-counter increment and skews every reading by a line, and the $213F read is required to reset the OPHCT/OPVCT second-read flip-flop. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 14 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Comment |
Raised in review: the C7.05/C7.06 cell had grown past 1,000 characters, which is unreadable in a plain-text editor and makes every future diff noisy. The A5.18 cell had the same problem at 744. Both now carry a one-line verdict and point at a subsection below the table, where the probe invocation, the two sampling traps, and the wrap-detection tell have room to be stated properly. Also records that probe.sfc is gitignored, so run.sh must build it first. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Review adjudicationNo blocking issues. Both suggestions applied; the nitpick found something real and is also applied. The table cell is over 1,000 characters. Applied, and the same treatment given to the Check the edited CHANGELOG line is in an unreleased section. Verified — Verify The sources and the runner are tracked; the built ROM is gitignored. So "re-measure with the bash scripts/probes/eval-line-213e/run.sh # builds probe.sfc (needs cc65)
cargo run -p rustysnes-test-harness --bin probe_213e -- scripts/probes/eval-line-213e/probe.sfcDocs only; no generator or ROM change, so the committed cart is untouched. |
Antigravity review (Gemini via Ultra)This PR updates Blocking issuesNone found. Suggestions
Nitpicks
Automated first-pass review by |
Corrects a claim I landed in #283.
What was wrong
#283's assessment table said
C7.05/C7.06were blocked because "RustySNES setsrange_overoneline late per-dot (two batched) against MesenCE". That is false.
Re-measured on
mainwith the committed probe:100 is MesenCE's value. The one-line lag belonged to the batch compositor, and per-dot is now
the only one.
scripts/probes/eval-line-213e/README.mdhad both figures written down all along:So this was a misreading of a stale note, not a measurement that moved. The check cost one command;
I should have run it before writing the row.
What actually blocks those rows
Sampling resolution, not correctness. A polling loop is several dots per iteration and would pass
whatever the true position is — the
F1.09vacuity shape.The probe itself demonstrates the technique that works: an H-IRQ at a chosen
HTIME, latching$2137/$213Fand reading$213E. So the rows should be written as a bracket — one sample justbelow the expected
H = OAM.INDEX*2expecting clear, one just above expecting set. That is the sameshape
D2.01already uses, and it is a two-point assertion rather than a dot-exact one, which iswhat the instrument can actually support.
Two traps from the probe's own README are carried into the note, since both cost a debugging pass
there:
HTIME=300pushes the IRQ-service latency into the V-counter increment and skews everyreading by a line, and the
$213Fread is required to reset the OPHCT/OPVCT second-read flip-flop orodd scanlines are corrupted.
time_overreadingNonein that output is correct, incidentally: range evaluation caps at 32sprites, so the probe's 40 8×8 sprites yield 32 tiles, under the 34-tile limit. The probe does not
exercise
time_overat all.Docs and CHANGELOG only.
🤖 Generated with Claude Code