chipstream is a toolkit suite for running and working with retro sound chips.
This repository is organized as a monorepo containing multiple crates and provides
utilities for building and parsing register-write logs such as the VGM
(Video Game Music) format.
| Crate | Type | Description | Documentation |
|---|---|---|---|
chipstream |
lib |
Sound-chip emulation and device-independent VGM/MDX playback. | README |
chipstream-gstreamer |
plugin |
GStreamer source for VGM/MDX playback through chipstream. | README |
cstools |
bin |
VGM/VGZ, MDX, and MML player using chipstream. | README |
nddrv |
bin |
Desktop VGM/VGZ and MDX library and player using GPUI Kit. | README |
mmlx |
lib |
MML parser and compiler; currently supports MXDRV MML input and MDX output. | README |
ndsif |
lib |
I/O-independent, allocation-free NDSIF protocol codec. | README |
ndsif-transport |
lib |
Serial NDSIF transport and chipstream backend integration. | README |
soundlog |
lib |
Parses and builds sound logs and converts MDX playback to VGM commands. | README |
soundlog-cli |
bin |
Command-line tools for working with soundlog-supported formats. | README |
soundlog-gui |
bin |
soundlog-inspector GUI for inspecting soundlog-supported audio files. |
README |
Install the soundlog binary from this repository with Cargo:
Rust 1.97.1 or later is required.
To build the VGM player and play a file:
cargo run --release -p cstools --bin csplay -- example.vgmLinux builds require ALSA development headers; see the cstools README.
cargo install --git https://github.com/h1romas4/chipstream --bin soundlog --locked --force soundlog-cliOptionally install the GUI inspector:
cargo install --git https://github.com/h1romas4/chipstream --bin soundlog-inspector --locked --force soundlog-guiInstall the NDDRV desktop player:
cargo install --git https://github.com/h1romas4/chipstream --bin nddrv --locked --force nddrvFor platform prerequisites, including ALSA development libraries on Linux, see the NDDRV README.
soundlog --help
Command-line tools for soundlog.
Usage: soundlog <COMMAND>
Commands:
test Test a VGM or VGZ file with a parse/build round trip and display its header
redump Re-dump a VGM or VGZ file, expanding DAC streams to chip writes
parse Parse a VGM or VGZ file and display its commands, offsets, and lengths
completions Generate shell completion scripts
stream Stream a VGM or VGZ file and display its register writes and detected events
mdx MDX file operations
pdx PDX file operations
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print versionFor detailed usage instructions, please refer to crates/soundlog-cli.
For GUI usage instructions, please refer to crates/soundlog-gui.
Each crate in this repository follows its own LICENSE file or the license
field declared in its Cargo.toml.