gameboy-rust/docs/references.md
0xrsydn e72c643640 feat(dma): retain per-channel transfer data
Retain independent known data across DMA blocks. Duplicate mapped halfword sources and select the destination lane for blocked sources below work RAM. Keep cold history diagnostic, commit only successful units, and preserve separate CPU/BIOS history rules.

Add 13 original regressions and pinned source research. CPU resume ownership, general DMA open bus, and IWRAM DMA lane effects remain explicit limits.

Validated on Darwin arm64: 930 workspace and 861 core/demo tests in debug and release, 39 Python tests, native ROM windows, ten window smoke modes, fmt, clippy, and rustdoc. Public ARM/Thumb/memory/BIOS reports match the previous results exactly.
2026-10-06 02:18:24 +07:00

18 KiB

References

External sources consulted while implementing the emulator. Add new sources here, or in a "References" section of the matching docs/hardware/ file when a link explains one specific behavior.

Hardware references used for the core:

BIOS protected-read root-cause research:

  • Smolka Progress Report #6, for firmware-dependent protected reads and the Ruby/Sapphire null-pointer case; the report distinguishes Emerald.
  • mGBA: Cracking the GBA BIOS, for BIOS access protection and replacement-versus-external firmware approaches.
  • Cult-of-GBA BIOS, reviewed for original boot, SWI, and IRQ exit layout and its MIT license. No source or binary was copied.
  • mGBA BIOS implementation, for the explicit post-SWI biosPrefetch compatibility value.
  • no$gba BIOS FAQ, for the distinction between simulated firmware services and using a firmware image.

See the root-cause analysis and implementation decision.

Thumb BIOS fetch research:

See Thumb BIOS prefetch snapshots for the inference, implementation limits, and original regressions.

IWRAM lane-history research:

See IWRAM Thumb bus history. These were source reviews, not local hardware or external-emulator test runs.

IWRAM refill research:

These sources support bounded refill sampling, not a claim of cycle-accurate pipeline or DMA behavior.

DMA data-latch research:

See DMA data-latch findings. Source review is not a local hardware-test pass.

Use GBATEK and ARM7TDMI documentation for further hardware work. Only use game ROMs that you may lawfully use. Do not commit game ROMs, BIOS files, or game assets. The ignore file excludes roms/, common game ROM extensions, and save files.