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-statecan 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_SECSremains 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/m68ktocrates/m68kand is packaged ascopperline-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 copperlinemacOS (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-*.AppImageWindows: download and extract the portable Copperline-0.9.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.8.0...v0.9.0