Copperline v0.11.0 is released. An Amiga emulator written in Rust, built around a vendored copy of the pure-Rust m68k CPU core, with a pixels + winit window for video and stdout for serial. It started life with the modest goal of booting DiagROM far enough to show a menu; it now boots Kickstart and runs timing-sensitive OCS and AGA software from the regression set at real speed.
Features:
Cycle-driven timing core. The chip bus is arbitrated per colour clock between refresh, display/sprite/disk/audio DMA, the Copper, the blitter, and CPU accesses; the Copper and blitter are scheduled per DMA slot with the hardware per-word bus sequences, and 68000 interrupt-recognition latency is modelled. Real-hardware reference numbers come from the cross-emulator disk in timing-test/.
OCS, ECS, and AGA, with independent Agnus/Denise revisions and machine profiles from the A500 to the A1200, plus CDTV and CD32. Boots the bundled AROS ROM out of the box, as well as Kickstart 1.3 / 2.05 / 3.1 and DiagROM v2.0, and runs the current timing-sensitive OCS and AGA regression set at real speed.
Configurable CPU (68000 / 68EC020 / 68020 / 68030 / 68040) and clock, with an optional 68881/68882 FPU (default-on for the 68040).
Peripherals: a bit-timed keyboard (6500/1 MCU), mouse, USB gamepad (via the pure-Rust gilrs, no SDL2), 4-channel Paula audio, floppy (ADF / ADZ / DMS, read-only SCP), Gayle IDE, A2091 SCSI, and CDTV/CD32 CD.
Tooling: an in-window debugger, an interactive chip-bus frame analyzer, remote GDB support, deterministic save states, input recording/replay, and headless screenshot/frame-dump capture -- the deterministic core makes every replay byte-identical.
Copperline changelog:
Copperline 0.11.0 focuses on hardware fidelity and performance: host directories can now be mounted (and booted) as native AmigaDOS volumes, the blitter's BLTPRI bus fence and the 68000's microcode write ordering are modelled much more closely, sprite serialization and several display paths were fixed against cross-emulator and real-hardware references, frame-time spikes on slower hosts were eliminated, and a golden-render timing-probe suite now guards chipset timing in CI. As always it is a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
The display regressions noted as known issues in 0.10.0 are fixed in this release.
Required config changes
The experimental [a4091] section from 0.10.0 is gone: both SCSI boards now live under [scsi] with a controller key ("a2091", the default, or "a4091"). An existing [scsi] A2091 setup keeps working unchanged; an [a4091] section must be renamed to [scsi] with controller = "a4091".
All other new options ([[filesys]] mounts, [serial] mode = "pty") are optional additions, and omitted configs continue to parse.
Save states are compatible in both directions with 0.10.0: the state format version is unchanged.
Highlights
Host directories as AmigaDOS volumes. New [[filesys]] config mounts host directories as HOSTFS volumes through an autoconfig services board and a resident guest handler: full file I/O with FFS path semantics, file attributes from host permissions and .uaem sidecars, optional write protection, host path-escape hardening, warm-reboot survival, and bootable volumes via bootpri — a Workbench directory on the host can now boot the machine directly.
Blitter BLTPRI bus fence. BLTPRI now asserts BLS against the CPU the way Agnus does: the CPU is fenced off the chip bus during a blit's warm-up window, BLS pressure follows the blitter's per-slot micro-cycle, a blit with no channels enabled asserts no fence, and line-blit startup was shortened. This class fixes MFM-decoding trackloaders that rely on exact CPU/blitter interleaving (a Jim Power boot crash was the regression example).
68000/68010 microcode write-ordering pass. A long series ordering register writes, ALU and address-calculation tails, and internal clocks against prefetch and bus sync the way the microcode does: EOR/EXG/BCD/Scc/MOVEM/ADDX/SUBX/MOVE USP/MOVEA/MOVE from SR, delayed SR writes, 68010 SR read ordering and long shift timing, CHK trap timing, multiply and division internal clocks, quick and bit ops, and 68020 Bcc long-displacement gating. The external RESET instruction is now modelled as a true warm reset.
Sprite serialization fixes. Denise emits a sprite's first pixel one lo-res pixel after the horizontal comparator match (measured against FS-UAE and vAmiga with new ruler probes), and a DATA-armed sprite keeps serializing on every line — across frames — until SPRxCTL disarms it. Together these improve 180 of 186 vAmigaTS sprite cases and fix long-standing demo sprite placement bugs.
Frame-spike elimination. Profiling on an i5-class machine (issue #99) removed per-colour-clock table copies in the bus hot path, per-pixel palette copies and a quadratic sprite-multiplexer scan in the renderer, and added p50/p90/p99/max frame-time reporting to --benchmark-until. Worst-case core frame time on the profiled workload dropped from 100.8 ms to 16.1 ms and audio underruns disappeared.
Golden-render CI suite. Every cargo test --release run now boots the committed timing-test/ probe binaries on the bundled AROS ROM and compares their rendered output pixel-for-pixel against blessed references: CPU/chip-bus timing rows plus DDF/DIW, sprite-position, blitter-pace, collision, and audio-enable probes. Intentional timing-model changes must re-bless the renders, so every chipset timing diff is reviewed as an image diff.
Hardware accuracy fixes
Copper. A post-WAIT wake-up must land on a colour clock free of fixed DMA; copper-sourced sprite repositions carry the WAIT-comparator lookahead; the closed-DIW border repaint follows per-pixel COLOR00 writes (fixes raced copper-chunky effects).
Agnus DMA and blitter. Fixed DMA slots are aligned with the hardware DAS table, BLS pressure is gated by the blitter micro-cycle, line blitter startup timing was shortened, and VHPOSR readback lead was tuned against the probe rows.
Denise display path. Bitplane scroll-in starts from empty line state; a BPLCON1 scroll covering an off-grid DDFSTRT catches the floor reload slot; hi-res bitplane content flushes at the 2H-196 window edge; AGA border sprites are suppressed during border blank; sprite DMA owns same-line reuse data.
Renderer and presentation. The renderer no longer synthesizes a picture for a line whose fetch never ran (phantom-line artifacts in overscan scrollers), and the TV aperture is black-padded past the framebuffer edge instead of repeating the last column.
Floppy. DSKLEN arming no longer waits for drive-ready: a spinning-up drive arms disk DMA normally, as on real hardware (fixes trackloader disk swaps that double-write DSKLEN right after motor-on, e.g. Shadow of the Beast disk 2). Step-click sound is gated on the /TRK0 sensor and the stepper mechanism floor.
Save states. Mid-blit state serializes deterministically (two saves of the same machine are byte-identical), backed by a new regression test that resumes a mid-blit save under live Copper and interrupt load and compares the continued timeline byte-for-byte.
External contributions
Bernie Innocenti (@codewiz) contributed the host-directory HOSTFS filesystem (services board, guest handler, DOS ABI layer, and boot support), the serial PTY sink (mode = "pty"), the unified [scsi] controller selection with its launcher picker, A4091 CTEST8.CLF FIFO clearing, and 68040 write-fault reporting in writeback slot 3.
Other improvements
timing-test/ gained the ddfprobe suite, manual/DMA sprite position probes, blitter-pace and audio-enable probes, and a 96-sector boot loader; tools/rowphase.py performs content-anchored per-beam-row comparison across Copperline, vAmiga, and FS-UAE output.
The debugger gained headless exception catchpoints, address filtering for CPU read traces, and low-memory blit crash diagnostics.
CI now runs the golden-render suite in parallel, boots DiagROM as a smoke test, and keeps the Windows/macOS/Linux packaging workflows as release build checks.
Documentation covers the [[filesys]] mounts, the unified SCSI configuration, and the expanded timing-probe workflow.
Installation
Download: Copperline v0.11.0 x64
Source: Here
2026-07-13
Tags:
Copperline,
Official_Build,
Others

NewsLetter
Bookmark
Submit News
Email Us

Random Related Topic
0 Comments
Post a Comment
Can't post a comment? Try This!