apogee-rs 0.3.0

Apogee BK-01 emulator with MIDI support via PPI
Documentation

Apogee BK-01 emulator with MIDI support via PPI

CI CodeQL License: GPL-3.0 Ko-fi

Install

To download the source code, build the Apogee binary, and install it in $HOME/.cargo/bin in one go run:

cargo install --locked --git https://github.com/coignard/apogee

Or install via Homebrew:

brew install coignard/tap/apogee

Alternatively, you can manually download the source code and build the Apogee binary with:

git clone https://github.com/coignard/apogee
cd apogee
cargo build --release
sudo cp target/release/apogee /usr/local/bin/

Install as library

Add the following to your Cargo.toml:

[dependencies]
apogee-rs = { git = "https://github.com/coignard/apogee" }

Or to pin a specific version:

[dependencies]
apogee-rs = { git = "https://github.com/coignard/apogee", tag = "0.3.0" }

Test

cargo test

Tests use a replay-based snapshot system. Each file in tests/replays/ is a JSON recording of a session: input events, timing, and metadata (ROM name, sample rate, display settings, SHA-256 of the ROM).

The emulator replays the events and at each checkpoint compares machine state and screenshot against the expected dumps in tests/dumps/.

To update snapshots after an intentional change:

UPDATE_SNAPSHOTS=1 cargo test

Please note that changes to iz80 that affect instruction timing or CPU state require manually reviewing and rerecording the affected replays, not just regenerating snapshots.

Credits

Thanks to Kakos Nonos for sharing his Apogee BK-01 programs used in the test suite, Victor A. Pykhonin for helping debug checksums and KR580VI53 and for emu80 which was the main reference for this emulator, and Olga Podivilova for the Apogee BK-01 illustration.

Sponsors

License

The Apogee source code is © 2026 René Coignard and licensed under the GNU General Public License v3.0 or later.

The Apogee SDK source code is © 2026 René Coignard and licensed under the zlib License.

The flat assembler g source code is © 2015-2025 Tomasz Grysztar and licensed under the BSD 3-Clause License.

The .rka files in tests/assets/ are Apogee BK-01 programs written by and © Kakos Nonos, included with his kind permission. Some programs may contain third-party assets whose rights belong to their respective owners. proverka.rka is included for testing purposes; its authorship and copyright status are unknown. If you are the copyright holder and object to its inclusion, please open an issue.