Cycle-accurate YM2149 PSG emulator
3 days ago
- #rust
- #retro-computing
- #audio-emulation
- YM2149/AY-3-8910 is a Programmable Sound Generator (PSG) that defined the sound of 8-bit/16-bit retro computing.
- Features three square-wave channels, one noise generator, and hardware envelopes for authentic chiptune sound.
- Used in Atari ST, Amstrad CPC, ZX Spectrum 128, MSX, and arcade machines from the 1980s/90s.
- Cycle-accurate, format-complete Rust crate for emulators, games, or nostalgia projects.
- Supports multiple formats including YM, SNDH, AY, and Arkos Tracker files.
- Bevy integration for game developers with playlists, crossfades, and audio-reactive gameplay hooks.
- WebAssembly player available for browser-based playback with features like volume control and channel muting.
- Comprehensive testing with 165+ tests and real-world demoscene fixtures.
- Modular architecture with separate crates for core emulation, replayers, and Bevy plugins.
- MIT licensed with contributions welcome, provided they pass formatting, linting, and testing.