- CpalAudioSink writes to SPSC ring buffer, cpal callback reads - Graceful fallback to silent operation on audio device errors - Volume slider (0-100%) in header bar with speaker icon - Ring buffer cleared on ROM load and reset
AtomicU32-based storage avoids unsafe while maintaining SPSC guarantees. Capacity: 4096 samples (~85ms at 48kHz). Exported from crate root.
Full NES emulation: CPU, PPU, APU, 47 mappers, iNES/NES 2.0 parsing. GTK4 desktop client with HeaderBar, pixel-perfect Cairo rendering, drag-and-drop ROM loading, and keyboard shortcuts. 187 tests covering core emulation, mappers, and runtime.