Copperline 0.10.0
Copperline 0.10.0 is the largest release so far: 68060 support, expanded 68030/68040 MMU and cache behaviour, a much richer debugger, A4091 SCSI board emulation, host MIDI/TCP serial bridges, selectable audio output, zipped floppy images, and another broad pass over CPU, Copper, Agnus, Denise, Paula, CIA, blitter, floppy, and display timing. It remains a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
Required config changes
None for existing valid config files. New CPU, cache, display, audio, MIDI, TCP serial, and debugger-facing options are optional, and omitted configs continue to parse.
CPU cache defaults are now closer to shipped 68020+ systems: Copperline enables the on-chip instruction/data caches by default on CPU models that have them. If you need the older cache-off behaviour for a local setup, set the relevant [cpu] icache = false and/or dcache = false override.
Save states are versioned, and 0.10.0 uses a new state format for CPU/MMU/cache state, A4091 state, serial host resources, debugger-visible machine shape, and other expanded hardware snapshots. Older state files are refused with the usual version error instead of being loaded across incompatible layouts.
Known issues
This release has known visual regressions in some display paths. These will be addressed in the next release.
Highlights
- 68060 CPU model. Copperline now exposes a 68060 CPU profile with control registers, supervisor-stack behaviour, scalar timing, branch-cache modelling, LPSTOP, 68060 MMU specifics, the reduced 060 FPU surface, unimplemented-instruction traps, 060 exception frames, superscalar pairing, and launcher/config/docs support.
- Deeper 68030/68040 MMU and cache coverage. The m68k core now models 030/040 translation, TTRs, access-error frames, ATC behaviour, write-protect and permission faults, MOVE16 alignment behaviour, and 68040 instruction/data caches, backed by expanded CPU fixture tests.
- Debugger console and frame-analysis workflow. The debugger gained a command console with clipboard paste, memory/register inspection and mutation, HUNT, TRACE START/STOP, AmigaOS task/segment introspection, catchpoints, recent-PC history, heuristic call-stack walking, reverse-run targets, richer watchpoint attribution, IO Map, Video, Break, Memory, Frame Analyzer, a Paula audio debugger tab with per-channel mutes and scopes, Copper stepping, and beam-scrubbing improvements.
- A4091 Zorro III SCSI board. A new board model covers nibble-wide autoboot ROM exposure, DMA and SCSI FIFOs, NCR/Symbios SCRIPTS register moves, memory moves, interrupts, looped SCSI pins, bus reset, drive scan/mount, and diagnostics under
COPPERLINE_DIAG_A4091. - Host I/O improvements. Paula serial can bridge to host MIDI or a bidirectional TCP sink, live audio can select output devices and mono/stereo shaping,
Cmd/Alt+Shift+Acycles audio output, and ZIP-wrapped floppy images are supported.
Hardware accuracy fixes
- CPU timing and interrupt delivery. 68000/68010 IPL poll placement, interrupt-dispatch idle clocks, STOP wake timing, 68010 prefetch/refill behaviour, MOVES timing, MOVE-from-CCR timing, and Class 2 MOVE-to-absolute-long prefetch order were tightened against microcode and cputest coverage.
- Copper pipeline and write landing. WAIT/SKIP/COPJMP execution now follows the fetch pipeline more closely, dormant COPxLC writes retarget the Copper PC, skipped MOVEs still pass illegal-register decode, vertical-blank COP1LC restart happens at the hardware position, and CPU/Copper custom-register write effects are referenced from their carrying chip-bus slot.
- Agnus/Denise fetch, display, and sprite timing. The DDF sequencer now models start/stop flip-flops, raw below-hard-start fetch origins, FMODE=0 placement, DIW comparator anchoring, BPLCON0 propagation, overprogrammed BPU suppression, sprite DMA slots/register state, HAM/dual-playfield invalid priority cases, and collision over enabled planes.
- Blitter micro-cycles. Normal and line-mode blits now follow a per-slot micro-cycle protocol, including BLTPRI/CPU starvation interactions, fixed DMA slot contention, line micro-programs, startup cycles, and completion/IRQ prediction with active Copper DMA.
- Paula, CIA, and floppy behaviour. Paula audio moved to the HRM channel state machine, AUDxEN disable is deferred to the word boundary, POTxDAT counters tick at H-sync, CIA accesses synchronize to the E clock, CIA IRQ pins and TOD alarm/TOD bug behaviour were refined, floppy step pulses observe a mechanism floor, and empty drives stay in no-media state.
External contributions
- Bernie Innocenti (@codewiz) contributed the A4091 board work, bidirectional TCP serial sink, side-effect-free debugger board peeks, debugger address masking, MOVEC disassembly, MMU reset/control-register fixes, and Zorro warm-reset behaviour.
- Lee Hobson (@hobbo91) contributed host audio-device selection, mono/stereo audio controls, the live audio-output shortcut, and the Paula serial-to-MIDI bridge.
- jbl007 (@sonnenscheinchen) contributed ZIP-wrapped floppy image support.
Other improvements
- The project now has a
copperlinelibrary crate, split bus/video/window submodules, reusable render-frame buffers,--version, and clearer unknown-option/config-validation errors. - Regression coverage grew with WinUAE cputest runner infrastructure, TomHarte SingleStepTests in CI, 68000-68060 CPU fixtures, vAmigaTS comparator tooling, image-regression hooks, and additional hardware-behaviour unit tests.
- Documentation covers the expanded CPU/MMU/cache model, debugger console/workflows, MIDI/audio configuration, headless test workflows, A4091 and Zorro behaviour, timing details, and the reorganized source layout.
Installation
macOS (Homebrew):
brew tap LinuxJedi/copperline https://github.com/LinuxJedi/Copperline
brew install copperlinemacOS (DMG): download Copperline-0.10.0-macos-universal.dmg below, open it, and drag Copperline.app to Applications. The app is ad-hoc signed but not notarized, so first launch may require right-clicking the app and choosing Open.
Linux (AppImage): download Copperline-0.10.0-x86_64.AppImage below, then:
chmod +x Copperline-0.10.0-*.AppImage
./Copperline-0.10.0-*.AppImageWindows: download and extract the portable Copperline-0.10.0-win-x64.zip below.
From source:
cargo build --release
./target/release/copperlineThe bundled AROS boot ROM lets Copperline run out of the box. A real Kickstart ROM and disk, hard-disk, or CD images are still required to run commercial Amiga software; these are not included.
Full changelog: v0.9.0...v0.10.0