Skip to content

Latest commit

 

History

2,076 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copperline

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.

Features

  • 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.

Installation

macOS (Homebrew)

brew tap copperlinehq/copperline https://github.com/CopperlineHQ/Copperline
brew install copperline

To build from the latest development commit instead:

brew install --HEAD copperline

Pre-built disk images (.dmg) are also available on the releases page.

Linux (Flatpak or AppImage)

flatpak install flathub dev.copperline.Copperline
flatpak run dev.copperline.Copperline

Standalone 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.

Building from source

cargo build --release

Always 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

Quick Start

Run Copperline from the terminal:

./target/release/copperline

Running 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

Essential keyboard shortcuts

  • 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.

Configuration

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.

Documentation

Comprehensive documentation is published at copperline.dev and available under docs/:

To build the documentation locally:

npm install -g mystmd
cd docs && myst build --html

Testing

Run the unit test suite:

cargo test

Integration tests requiring local ROM and disk assets can be run with:

cargo test --release -- --ignored

See tests/README.md for details on asset paths and test configuration.

Community and Support

Credits

See CREDITS.md for contributor and third-party software credits.

License

Copperline is free software released under the GNU General Public License version 3 or later. See LICENSE for details.

Trademarks

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.

About

An Amiga emulator written in Rust

Resources

Contributing

Security policy

Stars

105 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages