Website: copperline.dev | Online demo: copperline.dev/try | Chat: Discord | Support: Patreon
Copperline is a cycle-driven Commodore Amiga emulator (OCS, ECS, and AGA) written in Rust. It models the Amiga custom chipset, 680x0 CPU, memory subsystems, and common expansion hardware on a unified clock timeline.
It boots out of the box with the bundled open-source AROS Kickstart replacement, and supports official Kickstart ROMs (1.3 through 3.1), DiagROM, and standard disk, hardfile, and CD media.
- Chipset and machine models: OCS, ECS, and AGA support with profiles from the A500 through the A4000, plus CDTV and CD32.
- Configurable CPU and memory: Motorola 68000 through 68060, optional FPU and MMU support, and configurable Chip, Fast, and Slow RAM.
- Storage and media: Floppy disk images (ADF, ADZ, DMS, IPF, SCP), physical floppy drives via Greaseweazle (FluxBridge), IDE (Gayle/A4000), SCSI (A2091, A3000, A4091), CD-ROM, and host directory filesystem mounting.
- Audio and video: 4-channel Paula audio, RTG graphics cards (Picasso II/II+, Z3660), host MIDI in/out bridging, and built-in Roland MT-32 and General MIDI synthesis.
- Expansion and networking: Zorro II/III autoconfig, A2065 Ethernet, host-backed bsdsocket.library, and sandboxed WebAssembly expansion plugins.
- Debugging and automation: In-window interactive debugger with reverse stepping, signal waveform export (VCD), GDB remote stub, deterministic save states, headless scripting, and a JSON-RPC control protocol (
copperline-ctl). - Direct launching: Boot directly into WHDLoad game packages (
--whdload) or host-built Amiga executables (--run). - WebAssembly build: Run directly in modern web browsers at copperline.dev/try.
brew tap copperlinehq/copperline https://github.com/CopperlineHQ/Copperline
brew install copperlineTo build from the latest development commit instead:
brew install --HEAD copperlinePre-built disk images (.dmg) are also available on the releases page.
flatpak install flathub dev.copperline.Copperline
flatpak run dev.copperline.CopperlineStandalone AppImage binaries are also available on the releases page.
Note: On Linux, presentation requires a Vulkan driver. Most modern GPUs support Vulkan natively. For virtual machines or older hardware, install the Mesa software Vulkan driver (mesa-vulkan-drivers on Debian/Ubuntu/Fedora, or vulkan-swrast on Arch). The Flatpak package bundles software Vulkan automatically.
cargo build --releaseAlways run Copperline with --release, as unoptimized debug builds are too slow for real-time emulation.
Dependencies:
- Rust 1.95+ (tested on stable)
- Fedora build dependencies:
sudo dnf install alsa-lib-devel systemd-devel gcc - Debian/Ubuntu build dependencies:
sudo apt install libasound2-dev libsystemd-dev gcc
Run Copperline from the terminal:
./target/release/copperlineRunning with no arguments and no ./copperline.toml opens the interactive configuration launcher (defaulting to an A500 profile with the bundled AROS ROM).
To boot directly into a Kickstart ROM, configuration file, or floppy image:
./target/release/copperline path/to/kickstart.rom
./target/release/copperline --config path/to/copperline.toml
./target/release/copperline --model A1200 --fast 8M KICK31.ROM --insert-disk-after 0 df0 game.adf- Quit:
Cmd+Q(macOS) /Alt+Q(Linux/Windows) - Debugger:
Cmd+B(macOS) /Alt+B(Linux/Windows) - Screenshot:
Cmd+S(macOS) /Alt+S(Linux/Windows) - Mouse capture:
Cmd+G(macOS) /Alt+G(Linux/Windows) - Joystick toggle:
Cmd+J(macOS) /Alt+J(Linux/Windows) switches between physical gamepad and keyboard arrows.
See the UI guide for full interface details.
Copperline uses TOML configuration files. You can copy copperline.example.toml to copperline.toml to customize machine settings:
rom = "kickstart31.rom"
[cpu]
model = "68020"
[memory]
chip = "2M"
fast = "8M"
[chipset]
revision = "AGA"
video = "PAL"
[floppy.df0]
path = "game.adf"See the configuration guide for the complete reference of all configuration options, machine profiles, and storage settings.
Comprehensive documentation is published at copperline.dev and available under docs/:
- Getting Started - Installation and setup
- Configuration - Configuration file reference and CLI options
- User Interface - Windows, menus, and controls
- WHDLoad Support - Direct WHDLoad package loading
- Direct Executable Launching - Running cross-compiled Amiga binaries
- Floppy Hardware Bridge - Real floppy drives via Greaseweazle
- Headless Mode - Scripted runs and screenshot/frame dumps
- Debugging - In-window, headless, and GDB debugging
- Control Protocol - JSON-RPC control interface (
copperline-ctl) - Internals - Architecture, chipset, and timing models
To build the documentation locally:
npm install -g mystmd
cd docs && myst build --htmlRun the unit test suite:
cargo testIntegration tests requiring local ROM and disk assets can be run with:
cargo test --release -- --ignoredSee tests/README.md for details on asset paths and test configuration.
- Chat with developers and users on Discord.
- Report bugs and request features via GitHub Issues.
- Contributing guidelines are detailed in CONTRIBUTING.md.
- Support ongoing development on Patreon (see FUNDING.md).
See CREDITS.md for contributor and third-party software credits.
- AROS Research Operating System (bundled boot ROM)
- DiagROM by John "Chucky" Hertell
- m68k CPU core
Copperline is free software released under the GNU General Public License version 3 or later. See LICENSE for details.
Amiga and Commodore are trademarks of their respective owners. Copperline is an independent, unofficial project and is not affiliated with or endorsed by any trademark holder.
