A SidecarTridge Multi-device microfirmware that emulates the Steinberg Cubase copy-protection dongle on real Atari hardware, so you can run Cubase without the original (and often failing, 30-year-old) hardware key.
The MultiDevice plugs into the cartridge port and answers ROM3 accesses exactly like the original dongle. Select the dongle from the boot menu and it launches straight into GEM.
Learn how to install and use it: https://docs.sidecartridge.com/sidecartridge-multidevice/microfirmwares/cubase-dongles/
This release emulates two Steinberg Cubase dongles: the Cubase 3 "red dongle" (Intel 5C060 / EP600 PLD, a 16-bit registered state machine) and the Cubase 2 "black dongle" (an 8-bit registered state machine clocked on every bus cycle). Neither is a stored key; both are reproduced exactly from cross-checked hardware descriptions. Pick the family from the boot menu.
| Dongle family | Cubase versions | Status |
|---|---|---|
| Cubase V3 (red, Intel 5C060) | Cubase 3.0, 3.01, 3.10, Cubase Score 2.x | ✅ shipping |
| Cubase V2 (black) | Cubase 2.0, 2.01, 2.2x | ✅ shipping |
| Cubase V1 | Cubase 1.0 / 1.50 / 1.51 | planned |
| Cubase Audio Falcon | CAF 2.01 / 2.02 / 2.06 / 3.01 | planned |
Verified on hardware: Cubase 3.10 and Cubase Score 2.0 (red) and Cubase 2.01 (black) all accept the emulated dongle and run.
Devices: Atari ST, STE, MegaST, MegaSTE, TT, Falcon.
On power-on the boot menu appears:
Cubase Dongle Emulator - v1.0.0
Emulated dongle: Cubase V3
- Cubase 3.0
- Cubase 3.01
- Cubase 3.10
- Cubase Score 2.x
For research and study only.
Use only with Cubase software you own.
[D] Change dongle
[E] Enter GEM [X] Back to Booster
Select an option:
Booting GEM in 20 seconds...
[E]: commit to the selected dongle and boot GEM. Launch Cubase and it finds the dongle.[X]: return to the Booster app.[D]: change the dongle family (appears once more than one family is available).- A countdown auto-boots GEM with the selected dongle; any key stops it.
- The physical SELECT button returns to this menu (short press) or the Booster (long press), and works while Cubase is running.
- Red dongle (V3): the response path is zero-CPU. A PIO program keeps the
state machine's state in a scratch register, and two chained DMA channels do the
lookup and next-state feedback. No CPU is on the per-access path, which removes
the cartridge-bus timing race under Cubase's fast read bursts. The state machine
compresses to a ~24 KB lookup table (
rp/src/include/cubase_lut.h), generated bytools/generate_lut.pyand regression-tested bytools/test_lut.py. - Black dongle (V2): an 8-bit state machine that advances on every bus cycle,
clocked on
/UDS. One PIO plus a core continuously track the machine (its 2 KB table is inrp/src/include/cubase2_lut.h, verified over all 65 536 transitions), while a second PIO drives the response on each ROM3 read via the same DMA fetch trick. - The firmware is deliberately slim: no Wi-Fi, microSD, USB or status LED.
Build with the repo-root build.sh (see CLAUDE.md for the full toolchain
requirements):
# ./build.sh <board_type> <build_type> <app_uuid>
./build.sh pico_w release <app-uuid>The build produces dist/<uuid>-<version>.uf2 (the firmware you flash) and
dist/<uuid>.json (the app descriptor from desc/app.json).
The dongles are reproduced from reverse-engineered hardware descriptions. Those
raw sources are not committed to this public repository; only the derived,
verified lookup tables (cubase_lut.h, cubase2_lut.h), the golden test
vectors, and a SHA-256 provenance manifest (tools/reference/PROVENANCE.md) are.
This project exists for research and to study how these copy-protection dongles worked. It is an interoperability and preservation tool, not a way to obtain Cubase. You must own a legitimate copy of the Cubase software the dongle was made for, and should use this only with software you own.
programming.md: the shared 64 KB region layout and budget rules.CLAUDE.md/AGENTS.md: build, architecture, and contributor playbook.
Licensed under the GNU General Public License v3.0. See LICENSE.