docs(mister): rung 5's console, and the release where the ladder caught the oracle - #470
Conversation
…ht the oracle
Records the sibling repository's rung-5 progress and the finding that came out
of it. Documentation only; no crate changes.
## What landed in the DUT
The NROM cartridge, the work RAM, the console's CPU bus, the controller ports
and DMC DMA -- 50 gates green. The DUT's CPU is driven by the RTL bus, and a DMC
fetch is a real bus cycle by a SECOND REQUESTER rather than a private path into
a flat testbench array.
Assembling `nes_top` is the one remaining piece, and it is named as its own step
rather than as the tail of this one: the core's top level must divide the master
clock, which is the apparatus rung 3's phase calibration was built on, so it is
a change to the timing substrate rather than a rewiring.
## The ladder caught the ORACLE
`docs/mister.md` gains a section under "The oracle can be wrong", because that
heading stopped describing a risk and started describing an event.
A `cpu_bus` module written from the wiki agreed with this emulator on $4016,
$4017, $5000 and $5C34 -- including the open-bus value, which the DUT DERIVES
from a latch where the testbench had hardcoded $40 -- and disagreed only in
$6000-$7FFF, where an NROM board decodes nothing and this emulator provides
8 KiB of PRG-RAM.
Three things that establishes, in the order they matter:
1. The ladder can catch the oracle. That was asserted when the programme was
planned; it is now demonstrated, which is a different kind of claim.
2. The correct response was to RECORD, not to fix. The change alters shipped
behaviour on every iNES-header NROM cartridge.
3. The gate ROM was narrowed rather than the DUT bent. A gate that fails for
the oracle's limitation rather than the DUT's teaches the wrong lesson and
eventually gets switched off.
## Files
* `README.md` -- the rung-status paragraph now reads "rungs 0-4 closed, rung 5
current" with the pieces named, and carries the oracle finding as the
concrete instance of the caveat one paragraph above it.
* `docs/mister.md` -- the new subsection.
* `to-dos/mister/TASKS.md` -- the rung-5 items, including a PREDICTION MADE IN
WRITING AND RECORDED AS WRONG: two inert open-bus mutations were expected to
flip to CAUGHT once DMA drove the bus. They did not, and a third joined
them. The cause is stimulus -- no ROM in the corpus both runs DMC fetches
and reads open bus.
* `CHANGELOG.md` -- the `[Unreleased]` entry.
|
@coderabbitai review |
|
Warning Review limit reachedNext included review available in 26 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Antigravity review (Gemini via Ultra)This PR updates project documentation and changelogs to record the completion of MiSTer co-simulation rung 5 components and documents a specific case where the RTL implementation was found to be more accurate than the reference emulator. Blocking issuesNone found. Suggestions
Nitpicks
Automated first-pass review by |
Replying to the Antigravity reviewNo blocking issues — agreed. Both suggestions are declined, and it is worth saying why rather than just leaving them. README verbosity. The eight lines are not a digression from the progress section; they are the instance of the caveat in the paragraph immediately above them, which says a rung verified only against this emulator "inherits whatever this emulator has wrong". That claim had been abstract since the programme was planned. The first time it actually happens is the sentence that makes the caveat mean something, and moving it to a subsidiary document leaves the general warning standing alone — which is the version a reader skims past. This README is detailed by design throughout (the "Current release" block alone runs far longer), so brevity here would be locally tidier and inconsistent with the document. "The ladder caught the oracle for the first time". The entry states the concrete fact plainly too — which window, which file, which games break — so the reader who wants only that has it. |
Records the sibling repository's rung-5 progress and the finding that came out of
it. Documentation only — no crate changes, so AccuracyCoin and nestest are
untouched by construction.
What landed in the DUT
The NROM cartridge, the work RAM, the console's CPU bus, the controller ports
and DMC DMA — 50 gates green, 0 failed. The DUT's CPU is driven by the RTL
bus, and a DMC fetch is a real bus cycle by a second requester rather than a
private path into a flat testbench array.
Assembling
nes_topis the one remaining piece, and it is named as its ownstep rather than the tail of this one: the core's top level must divide the
master clock, which is the apparatus rung 3's phase calibration was built on. A
change to the timing substrate, not a rewiring.
The ladder caught the oracle
docs/mister.mdgains a subsection under "The oracle can be wrong", becausethat heading stopped describing a risk and started describing an event.
A
cpu_busmodule written from the wiki agreed with this emulator on$4016,$4017,$5000and$5C34— including the open-bus value, which the DUTderives from a latch where the testbench had hardcoded
$40— and disagreedonly in
$6000-$7FFF, where an NROM board decodes nothing and this emulatorprovides 8 KiB of PRG-RAM.
Three things that establishes, in the order they matter:
now demonstrated, which is a different kind of claim.
behaviour on every iNES-header NROM cartridge.
the oracle's limitation rather than the DUT's teaches the wrong lesson and
eventually gets switched off.
A prediction, recorded as wrong
to-dos/mister/TASKS.mdcarries it explicitly: the previous step predicted inwriting that two inert open-bus mutations would flip to CAUGHT once DMA drove
the bus. They did not, and a third joined them. The cause is stimulus — no ROM
in the corpus both runs DMC fetches and reads open bus. That is a precise,
checkable statement of what is missing, and a better outcome than the prediction
being quietly right.
Files
README.md(rung-status paragraph + the oracle finding as the concrete instanceof the caveat one paragraph above it) ·
docs/mister.md·to-dos/mister/TASKS.md·
CHANGELOG.md.The
docs/accuracy-ledger.mdentry itself merged separately in #468.