Skip to content

docs(accuracysnes): C11.12 is unauthorable — verified, not assumed - #328

Merged
doublegate merged 1 commit into
mainfrom
docs/c11-12-unauthorable
Aug 2, 2026
Merged

docs(accuracysnes): C11.12 is unauthorable — verified, not assumed#328
doublegate merged 1 commit into
mainfrom
docs/c11-12-unauthorable

Conversation

@doublegate

Copy link
Copy Markdown
Owner

C11.12 has been sitting in the roadmap as "oracle-thin". That was my assessment; this checks it, and the answer is firmer: there is nothing to assert.

Verified two ways

The corpus gives a game name and nothing else. The row's subject — "Mode 7 scroll offset latch timing" — appears exactly twice in ref-docs/, both times as a row in a game-compatibility table naming NHL '94. No behavioural statement anywhere: no value, no timing, no mechanism.

No reference models a distinct timing either. ares reads the register live in sfc/ppu/mode7.cpp:

s32 hoffset = (i13)self.io.hoffsetMode7;

No per-scanline latch, no deferred copy — nothing a test could catch a core getting wrong.

Writing a row would mean inventing an expectation and then checking that our own arithmetic agrees with itself, which is exactly the E9.11 failure mode this project already withdrew a row for.

The testable part is already covered

fullsnes documents that $210D updates M7HOFS (via M7_old) and BG1HOFS (via BG_old), with different formulas. That is real, and it is already evidence: C4.01 (the BG formula keeps the low three bits) and C4.04/C4.05 ($210D drives Mode 7 scroll) are all blessed scenes.

C11.12 adds only the word timing — the part nothing defines.

Where it belongs

With C13.* and F1.22: enumerated, uncoverable, and scored as such rather than chased. Authoring it would need a source saying what NHL '94 actually depends on — a disassembly note, a hardware measurement, or a reference that special-cases it.

This removes an item from the remaining-work list rather than deferring it again.

Docs only.

🤖 Generated with Claude Code

Checked two ways and recorded so it is not re-attempted.

THE CORPUS GIVES A GAME NAME AND NOTHING ELSE. C11.12 ("Mode 7 scroll
offset latch timing") appears exactly twice in ref-docs/, both times as a
row in a game-compatibility table naming NHL '94. No behavioural
statement anywhere -- no value, no timing, no mechanism.

NO REFERENCE MODELS A DISTINCT TIMING EITHER. ares reads the register
live in sfc/ppu/mode7.cpp:

    s32 hoffset = (i13)self.io.hoffsetMode7;

No per-scanline latch, no deferred copy, nothing a test could catch a
core getting wrong. Writing a row would mean inventing an expectation and
then checking that our own arithmetic agrees with itself -- the E9.11
failure mode.

The genuinely testable part of $210D's dual-latch behaviour -- it updates
M7HOFS via M7_old AND BG1HOFS via BG_old, with different formulas -- is
ALREADY covered by C4.01 and C4.04/C4.05, all blessed scenes. C11.12 adds
only the word "timing", which is the part nothing defines.

It belongs with C13.* and F1.22: enumerated, uncoverable, and scored as
such rather than chased. To ever author it would need a source saying
what NHL '94 depends on -- a disassembly note, a hardware measurement, or
a reference that special-cases it.

Docs only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 2, 2026 08:10
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@doublegate, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 18 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: a5abc48e-4cd4-4fd0-8627-57445429a8b8

📥 Commits

Reviewing files that changed from the base of the PR and between 97dba58 and ec66965.

📒 Files selected for processing (2)
  • CHANGELOG.md
  • docs/accuracysnes-plan.md

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown

Antigravity review (Gemini via Ultra)

This pull request documents why test case C11.12 ("Mode 7 scroll offset latch timing") is currently unauthorable due to missing behavioral specifications in reference documentation and live-read implementation in reference emulators.

Blocking issues

None found.

Suggestions

  • CHANGELOG.md:14: Categorizing an unauthorable test matrix note under ### Fixed mischaracterizes internal research/documentation as an emulator bug fix. Consider moving this rationale under a ### Documentation section or omitting it from user-facing release notes entirely to keep CHANGELOG.md focused on core changes.

Nitpicks

  • docs/accuracysnes-plan.md:778: Pin the snippet from ares (sfc/ppu/mode7.cpp) to a specific commit hash or release tag so the reference remains verifiable if upstream code changes.

Automated first-pass review by agy on a self-hosted runner -- not a human review.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Documents that AccuracySNES roadmap item C11.12 (“Mode 7 scroll offset latch timing”) cannot be responsibly authored because no source material defines an assertable behavior and reference implementations don’t model a distinct latch timing.

Changes:

  • Added a dedicated C11.12 “unauthorable” note to docs/accuracysnes-plan.md, including the two verification paths (corpus evidence + reference model behavior).
  • Added a matching Unreleased changelog entry capturing the same conclusion and rationale.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
docs/accuracysnes-plan.md Records the investigation and conclusion that C11.12 has no assertable spec and should be treated as uncoverable until new evidence exists.
CHANGELOG.md Adds an Unreleased entry summarizing the verified “unauthorable” status of C11.12 and why it shouldn’t be pursued as a scored row.

@doublegate
doublegate merged commit b167fe9 into main Aug 2, 2026
14 checks passed
@doublegate
doublegate deleted the docs/c11-12-unauthorable branch August 2, 2026 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants