The most complete YM2149/AY-3-8910 ecosystem in Rust. What is the YM2149? The Yamaha YM2149 (and its compatible sibling, the General Instrument AY-3-8910) is a Programmable Sound Generator (PSG) — a dedicated audio chip that defined the sound of an entire computing era. Three square-wave channels. One noise generator. Hardware envelopes. Pure 8-bit/16-bit retro soul. If you've ever heard music from an Atari ST, Amstrad CPC, ZX Spectrum 128, MSX, or countless arcade machines from the 1980s/90s, you've heard this chip. It powered everything from game soundtracks to the legendary European demoscene, where programmers pushed (and still push) these simple waveforms to create surprisingly complex and powerful music. The YM2149 doesn't do wavetables or samples (mostly). It doesn't do FM synthesis. What it does is generate raw, characterful square waves with programmable frequencies, a shared noise source, and distinctive hardware envelopes — all mixed through a logarithmic DAC that gives it that unmistakable warm, buzzy, chiptune sound. This crate brings that sound to Rust — cycle-accurate, format-complete, and ready for your emulator, game, or nostalgia project. Why YM2149-RS? For Demoscene Enthusiasts & Chiptune Artists: Play back your entire collection of YM, SNDH, AY, and Arkos Tracker files with authentic sound reproduction — in the terminal, browser, or your next retro-inspired game. For Game Developers: Drop authentic PSG audio into Bevy games with a single plugin. Playlists, crossfades, visualizations, and audio-reactive gameplay hooks included. For Emulator Authors: A clean, well-tested YM2149 core with configurable backends. Integrate the chip into your Atari ST, CPC, or custom system emulator. For the Curious: Explore how classic sound chips work. The codebase is documented, tested, and designed to be readable. What Makes This Special Feature Description Cycle-Accurate Core Precise emulation of all PSG features — envelopes, noise, mixer, SID voice, Sync Buzzer, ...
First seen: 2025-12-19 19:18
Last seen: 2025-12-19 20:18