gameboy-rust/crates/gba-core/tests
0xrsydn 597b02881b feat(input): implement KEYCNT keypad interrupt control
Add a dependency-free keypad state machine in gba-core, map KEYCNT, latch IF bit 12, and wake HALT through the existing interrupt gates. Sample complete CPU/DMA control writes once so transient byte values cannot create false requests.

Document the mGBA-style polling policy and its unverified hardware retrigger limits. Cover every button-state/selection pair, register masks, repeated requests, byte/word writes, failed-store isolation, DMA priority, ARM/Thumb IRQ return, BIOS IntrWait, and retained BIOS reset state.

Follow the restructured workspace and modular documentation. Validated on Darwin arm64: workspace and core/demo tests pass in debug and release, with Clippy, rustdoc, ten native window smoke tests, and terminal demos passing.
2026-10-05 18:05:26 +07:00
..
bios feat(input): implement KEYCNT keypad interrupt control 2026-10-05 18:05:26 +07:00
effects refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
mosaic refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
scanlines refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
sprites refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
window_tracking refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
affine_backgrounds.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
affine_tracking.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
bios.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
bitmap_modes.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
core.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
display.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
dma.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
effects.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
exceptions.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
graphics.rs feat(input): implement KEYCNT keypad interrupt control 2026-10-05 18:05:26 +07:00
halt.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
keypad.rs feat(input): implement KEYCNT keypad interrupt control 2026-10-05 18:05:26 +07:00
machine.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
memory.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
mosaic.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
mosaic_tracking.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
scanlines.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
sprite_budget.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
sprite_pipeline.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
sprites.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
tiles.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
timers.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
timing.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00
window_tracking.rs refactor: split into gameboy-rust workspace with core, demos, and desktop crates 2026-10-05 16:09:46 +07:00