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 engine for games; currently in early development. | README |
chipstream-cli |
bin |
VGM/VGZ, MDX, and MML player using chipstream. | README |
mmlx |
lib |
MML parser and compiler; currently supports MXDRV MML input and MDX output. | README |
soundlog |
lib |
Builds and parses VGM data and supports sound-chip log processing. | 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 chipstream-cli --bin csplay -- example.vgmLinux builds require ALSA development headers; see the chipstream-cli 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-guisoundlog --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.