gameboy-rust/docs/research
0xrsydn 16286e0cbd feat(timing): break CPU sequential access after DMA
Retain one pending non-sequential resume after successful DMA. Apply it to the next nominal non-refill code access and consume it only on successful CPU or IRQ progress. Preserve failed-step atomicity, host and idle isolation, existing refill costs, and WAITCNT ordering.

Add 13 original regressions for ARM/Thumb widths, ROM wait settings, sources, preemption, retries, mixed APIs, idle states, and interrupt timing. Record pinned hardware-test source and emulator evidence without claiming physical-hardware or full-pipeline conformance.

Validated on Darwin arm64: 952 workspace and 883 core/demo tests per debug/release profile, 39 Python tests, native ROM windows, ten window smoke modes, fmt, clippy, and rustdoc. Public ARM/Thumb/memory/BIOS reports remain unchanged.
2026-10-06 03:16:52 +07:00
..
bios-readback.md feat(memory): retain aligned Thumb BIOS prefetch words 2026-10-06 01:02:31 +07:00
dma-data-latches.md feat(memory): retain IWRAM lane effects across DMA 2026-10-06 02:39:17 +07:00
dma-resume-timing.md feat(timing): break CPU sequential access after DMA 2026-10-06 03:16:52 +07:00
iwram-bus-history.md feat(memory): retain IWRAM lane effects across DMA 2026-10-06 02:39:17 +07:00
thumb-bios-prefetch.md feat(memory): retain sequential Thumb IWRAM bus lanes 2026-10-06 01:44:21 +07:00