Skip to content

Complete waited MC68000 BTST prefetch for Nitro compatibility - #24

Merged
ilehtoranta merged 3 commits into
mainfrom
codex/nitro-prefetch-20261017
Oct 18, 2026
Merged

ilehtoranta merged 3 commits into
mainfrom
codex/nitro-prefetch-20261017

Conversation

@ilehtoranta

@ilehtoranta ilehtoranta commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Nitro polls VBlank while its interrupt handler also clears the request. A waited MC68000 memory BTST could retire without completing its required final instruction fetch, because the generic queue refill stopped at the nominal cycle floor. Commit that final fetch explicitly after the operand result/flags for static and dynamic memory BTST in scalar, kind-table and packed execution. Register-direct forms and 020+ paths retain their existing path.

Twelve delayed-read regressions fail against the preceding core; all 24 delayed/ordinary cases pass with the final fix. They verify final fetch order/address, exact waited duration, IR/IRC state, IPL sampling, Z before the fetch and absence of writes. An additional negative control caught the first draft's flag-publication order and is retained in local evidence. The independent Moira CPU clears Nitro's wait on the same Lightweight chipset, supporting the narrowed diagnosis.

Native Kickstart and the fresh source-built CopperStart ROM now reach racing, with player movement/camera scrolling and all 355 captures matching between batch/scalar modes for each ROM. A neutral control matches all 280 files through field 11,000 and separates at 11,200. Lotus 2 reaches racing with all 355 batch/scalar files matching. These are final-package repeats. Source CI passes 5,417 CPU tests with 109 optional/deferred skips, validates 86,663,530 deterministic logical cases, and passes all 18 AHX shared-dependency tests. The consumer Release build has zero warnings/errors; engine tests pass 1,247 with seven optional native skips, host tests pass 195 with six skips, and both exact-ROM CIA clock probes pass. Skips remain unavailable coverage. The duplicate local full CPU run was cancelled after the same full suite and report gate completed in CI; its partial local results are retained as incomplete.

The companion CopperScreen adapter fix samples low/masked IPL instead of retaining an earlier request and is merged in CopperScreen PR #4. The frozen development package is distributed through the owner-approved full GitHub release, with no NuGet.org publication. CopperScreen PR #5 pins those exact bytes and records the qualification. ROMs, media and build output are excluded.

@ilehtoranta
ilehtoranta marked this pull request as ready for review October 16, 2026 23:54
@ilehtoranta
ilehtoranta merged commit ca49fe8 into main Oct 18, 2026
3 checks passed
@ilehtoranta
ilehtoranta deleted the codex/nitro-prefetch-20261017 branch October 18, 2026 13: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.

1 participant