Skip to content

Copperline 0.4.0

Choose a tag to compare

@github-actions github-actions released this 19 Jun 11:51

Copperline 0.4.0 adds reverse debugging, keyboard joystick control, optional realtime-like scheduling for latency-sensitive threads, and a broad hardware-timing pass across AGA display, 68020/68030 chip-bus behavior, Paula disk DMA, and save-state resume.

Required config changes

None. Existing configs should continue to load. New settings are optional.

Highlights

  • Reverse debugging. A deterministic snapshot/input replay ring now powers reverse-step support in the debugger and a headless last-writer reverse watchpoint for memory corruption investigations.
  • Keyboard joystick input. Cmd+J / Alt+J cycles joystick input mode between auto, keyboard, and gamepad. The default now derives from available host input, with keyboard as the auto fallback.
  • Opt-in realtime-like scheduling. [emulation] realtime_priority = true raises the pacer and audio callback priority where the host OS allows it, while leaving the renderer at normal priority.
  • Save-state resume follows the saved machine. Loading a state now reconfigures the host-facing emulator around the saved machine descriptor before continuing.

Hardware accuracy fixes

  • 68020/68030 cache and chip-bus timing. On-chip caches are modelled by default, 020 instruction timing is recalibrated, 68020+ chip-bus writes use the three-clock write-posted cycle, and chip/custom reads account for data-return waits.
  • AGA blitter and display timing. AGA blitter/chip-bus timing, Denise captured-playfield timing, wide-FMODE bitplane fetch counts, and wide-open DIW presentation are tightened.
  • Sprite timing. Copper-repositioned held sprites, SPREN-off held display, attached sprite presentation, manual sprite position writes, BPLCON4 sprite page nibbles, and BPLCON4 sprite timing are modelled more closely.
  • AGA scroll decode. BPLCON1 AGA scroll fields are decoded separately.
  • Paula disk DMA. Disk-read DMA now preserves the correct word phase through Paula.
  • Video presentation. The TV lower crop is tightened by one row.

Other improvements

  • Auto-generated filenames now use local YYYYMMDDHHmmSS timestamps.
  • The example config is easier to scan and documents TOML escaping for Windows paths.
  • Reverse debugging, savestate determinism, realtime priority, AGA sprite diagnostics, and the timing-test workflow are documented.
  • The Homebrew formula is updated to v0.4.0 with the final tag tarball checksum.

Installation

macOS (Homebrew):

brew tap LinuxJedi/copperline https://github.com/LinuxJedi/Copperline
brew install copperline

Linux (AppImage): download Copperline-0.4.0-x86_64.AppImage below, then:

chmod +x Copperline-0.4.0-*.AppImage
./Copperline-0.4.0-*.AppImage

Windows: download and extract the portable Copperline-0.4.0-win-x64.zip below.

From source:

cargo build --release
./target/release/copperline

The bundled AROS boot ROM lets Copperline run out of the box. A real Kickstart ROM and disk or hard-disk images are still required to run commercial Amiga software; these are not included.

Full changelog: v0.3.0...v0.4.0