Skip to content

Copperline 0.9.0

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Jun 06:45

Copperline 0.9.0 brings a large 68881/68882 FPU accuracy pass, explicit joystick input selection, no-ROM save-state startup, hard-disk volume-name overrides, and another round of CIA, Paula, keyboard, Denise, sprite, bitplane, RTC, and display-timing fixes. 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. The new joystick input setting and hard-disk volume-name fields are optional; omitted configs keep the existing defaults.

Save states are versioned, and 0.9.0 uses a new state format for 80-bit extended FPU register snapshots. Older state files are refused with the usual version error instead of being loaded across incompatible layouts.

Highlights

  • 68881/68882 FPU accuracy. The in-tree m68k core now has an 80-bit extended register file, pure-Rust softfloat paths, packed-decimal real support, exact FMOVECR constants, memory/immediate-source monadic operations, extended-precision exp/log/trig/inverse-trig/hyperbolic kernels, FPCR rounding propagation, FPSR exception bytes, and exact FMOD/FREM quotient handling.
  • Explicit joystick input mode. Copperline now has a status-bar toggle, menu entry, launcher control, and [input] joystick = "gamepad" | "keyboard" config setting so keyboard joystick emulation and physical gamepad input are selected deliberately.
  • No-ROM save-state startup. --load-state can restore a snapshot without opening the original ROM file first, using a placeholder only long enough to let the state replace the machine. Loading a state over the configuration screen now installs live host audio instead of keeping the silent placeholder sink.
  • Hard-disk volume-name overrides. Directory and generated hard-disk images can now expose configured AmigaDOS volume names, with launcher and TOML round-tripping for IDE and SCSI drives.
  • Local-time RTC reporting. The battery-backed RTC now reports host local time where the platform exposes it, while COPPERLINE_RTC_FIXED_SECS remains deterministic for replay and debugging.

Hardware accuracy fixes

  • CIA timer one-shot behavior. CIA one-shot timers now keep the START bit visible through the auto-started interval, matching software that polls the running state to time the one-shot.
  • Floppy motor timing. Drive motor spin-up/spin-down state is now forwarded through the controller path used by disk DMA and status reporting.
  • Keyboard KDAT handshake. The emulated keyboard MCU now accepts short but real Amiga-side KDAT-low handshake pulses after a byte, instead of requiring the longer nominal HRM pulse width.
  • Paula POTxDAT counters. POTGO-driven high pins now hold the matching POTxDAT counter at zero, matching the way software reads fully charged paddle/fire-button lines.
  • Display fetch origin and latches. Early hi-res DDFSTRT output is word-aligned, late-DDF first words sample complete plane latches, manual sprite data latches survive position retiming, and per-frame collision accumulation is gated by CLXDAT observation.

Other improvements

  • The vendored m68k fork moved from vendor/m68k to crates/m68k and is packaged as copperline-m68k, making the local dependency boundary explicit.
  • Menu popups size themselves to the widest visible label.
  • Documentation covers joystick input selection, drive volume-name overrides, FPU model details, KDAT handshake timing, POTxDAT behavior, and the updated m68k crate layout.

Installation

macOS (Homebrew):

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

macOS (DMG): download Copperline-0.9.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.9.0-x86_64.AppImage below, then:

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

Windows: download and extract the portable Copperline-0.9.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, hard-disk, or CD images are still required to run commercial Amiga software; these are not included.

Full changelog: v0.8.0...v0.9.0