Copperline 0.4.0
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+Jcycles 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 = trueraises 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
YYYYMMDDHHmmSStimestamps. - 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 copperlineLinux (AppImage): download Copperline-0.4.0-x86_64.AppImage below, then:
chmod +x Copperline-0.4.0-*.AppImage
./Copperline-0.4.0-*.AppImageWindows: download and extract the portable Copperline-0.4.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 or hard-disk images are still required to run commercial Amiga software; these are not included.
Full changelog: v0.3.0...v0.4.0