gameboy-rust/tests
0xrsydn 2dfab137a6 feat(bios): implement SoftReset restart service
Execute SWI 0x00 through original ARM code. Read the restart flag before clearing 512 bytes of BIOS work RAM, reset System/SVC/IRQ stacks and specified registers, then branch to ROM or EWRAM in ARM System mode.

Keep device state and clocks active, preserve unrelated CPU banks, and document the deterministic IRQ-masked restart status. Add eleven tests for every flag byte, ARM/Thumb and User/System callers, exact memory bounds, bank state, restart execution, DMA/timers, and unsupported exception callers.

Validated on Darwin arm64: 705 default and 694 core-only tests in debug and release; formatting, Clippy, rustdoc, ten native window smoke tests, and CPU/timer demos pass.
2026-10-05 15:36:07 +07:00
..
bios feat(bios): implement SoftReset restart service 2026-10-05 15:36:07 +07:00
effects feat(video): track windows and compose color effects 2026-10-05 12:58:38 +07:00
mosaic feat(video): track background and sprite mosaic state 2026-10-05 12:58:38 +07:00
scanlines feat(video): capture scanlines and prepare sprites one row ahead 2026-10-05 12:58:38 +07:00
sprites feat(video): render regular and affine sprites 2026-10-05 12:58:38 +07:00
window_tracking feat(video): track windows and compose color effects 2026-10-05 12:58:38 +07:00
affine_backgrounds.rs feat(video): render tiled affine and bitmap backgrounds 2026-10-05 12:58:38 +07:00
affine_tracking.rs feat(video): capture scanlines and prepare sprites one row ahead 2026-10-05 12:58:38 +07:00
bios.rs feat(bios): implement SoftReset restart service 2026-10-05 15:36:07 +07:00
bitmap_modes.rs feat(video): render tiled affine and bitmap backgrounds 2026-10-05 12:58:38 +07:00
core.rs feat(cpu): implement ARM7TDMI ARM and Thumb execution 2026-10-05 12:58:38 +07:00
display.rs feat(machine): schedule display DMA IRQs and HALT 2026-10-05 12:58:38 +07:00
dma.rs feat(machine): schedule display DMA IRQs and HALT 2026-10-05 12:58:38 +07:00
effects.rs feat(video): track windows and compose color effects 2026-10-05 12:58:38 +07:00
exceptions.rs feat(cpu): implement ARM7TDMI ARM and Thumb execution 2026-10-05 12:58:38 +07:00
graphics.rs feat(demo): run CPU-driven bitmap tile and sprite scenes 2026-10-05 12:58:39 +07:00
halt.rs feat(machine): schedule display DMA IRQs and HALT 2026-10-05 12:58:38 +07:00
machine.rs feat(machine): schedule display DMA IRQs and HALT 2026-10-05 12:58:38 +07:00
memory.rs feat(memory): map GBA memory and device registers 2026-10-05 12:58:38 +07:00
mosaic.rs feat(video): track background and sprite mosaic state 2026-10-05 12:58:38 +07:00
mosaic_tracking.rs feat(video): track background and sprite mosaic state 2026-10-05 12:58:38 +07:00
scanlines.rs feat(video): capture scanlines and prepare sprites one row ahead 2026-10-05 12:58:38 +07:00
sprite_budget.rs feat(video): bound per-row sprite preparation work 2026-10-05 12:58:38 +07:00
sprite_pipeline.rs feat(video): capture scanlines and prepare sprites one row ahead 2026-10-05 12:58:38 +07:00
sprites.rs feat(video): render regular and affine sprites 2026-10-05 12:58:38 +07:00
tiles.rs feat(video): render tiled affine and bitmap backgrounds 2026-10-05 12:58:38 +07:00
timers.rs feat(memory): map GBA memory and device registers 2026-10-05 12:58:38 +07:00
timing.rs feat(machine): schedule display DMA IRQs and HALT 2026-10-05 12:58:38 +07:00
window_tracking.rs feat(video): track windows and compose color effects 2026-10-05 12:58:38 +07:00