Skip to content

Releases: LinuxJedi/Copperline

Copperline 0.3.0

17 Jun 10:33

Choose a tag to compare

Copperline 0.3.0 brings threaded rendering on by default, a round of host-CPU optimisations, and several hardware-accuracy fixes (AGA dual playfield, floating bus, ECS DIWHIGH). It also adds a portable Windows build.

Required config changes

Existing configs keep working, but two keys have changed and you should update yours:

  • [machine] model is now [machine] profile. Rename the key:

    [machine]
    profile = "A1200"   # was: model = "A1200"

    The old model key is still accepted as a deprecated alias, but it can be confused with [cpu] model (and triggers a "duplicate key model" parse error if the [machine] header is commented out while its value line is not).

  • [emulation] speed is gone. "real" was the only timing model, so the key carried no information. It is still accepted and ignored (with a warning), but you can delete it.

    [emulation]
    # speed = "real"   # remove this line; it is now ignored

Highlights

  • Threaded rendering by default. The framebuffer paint runs on its own thread, fed by an owned RenderInput bundle, while the deterministic core keeps cycle-stepping. The emulated result is unchanged and still byte-identical.
  • Host-CPU optimisations. Idle floppy/keyboard device ticks are skipped, timed-device ticks are deferred to observation/instruction boundaries, the bitplane fetch pattern is memoised into a per-plan slot bitmask, background fill is chunked, and collision/Paula hot paths were tightened. Live playfield collision is now memoised.
  • Portable Windows build. A portable Windows x64 zip is now produced by CI and attached to releases.

Hardware accuracy fixes

  • AGA dual playfield decoded as four bits per field. Lisa adds plane 7 to playfield 1 and plane 8 to playfield 2; the previous 3-bit decode collapsed colours (e.g. Zool's black body rendered orange).
  • Floating bus. Unmapped CPU reads now float to the chip data bus instead of returning a fixed value.
  • ECS DIWHIGH revert. A DIWSTRT/DIWSTOP write now reverts DIWHIGH to its OCS-implicit value in the renderer, matching ECS Agnus behaviour.
  • 256 KiB Kickstart ROMs are accepted and mirrored across the full ROM window.
  • CD32 runtime CD inserts notify cd.device via a tray delay so games detect the new disc.

Other improvements

  • Deterministic benchmark mode added for performance work.
  • gilrs gamepad mapping warnings are quieted, and use of saved controller calibration is logged.

Documentation

  • Documented the AGA dual-playfield decode, benchmark mode, and device-tick batching.
  • Documented the floating-bus model, RTC determinism, and the ECS DIWHIGH revert.

Installation

macOS (Homebrew):

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

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

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

Windows: download and extract the portable Copperline-0.3.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.2.0...v0.3.0

Copperline 0.2.0

15 Jun 13:30
6517238

Choose a tag to compare

Copperline 0.2.0 is the first release that boots out of the box and ships installable packages for macOS and Linux.

Highlights

  • Boots with no ROM of your own. The open-source AROS Kickstart replacement is now bundled and booted by default, so Copperline runs immediately without a copyrighted Kickstart. A new menu lets you load your own Kickstart and extended ROMs at runtime.
  • Installable everywhere.
    • macOS: the repository is now a Homebrew tap (brew tap LinuxJedi/copperline https://github.com/LinuxJedi/Copperline && brew install copperline). It builds from source, so the binary is not subject to Gatekeeper quarantine.
    • Linux: distributed as a Flatpak (for Flathub) and as a portable AppImage attached to this release. Both bundle the AROS boot ROM.

Fixes and improvements

  • Audio output (cpal) is now suspended while the host pauses the emulator, instead of looping the last buffer.
  • Several fixes to the Linux build and runtime path.

Installation

macOS (Homebrew):

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

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

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

Linux (Flatpak): the Flathub submission is in progress; until it lands you can build the bundle from packaging/flatpak/ (see that directory's README).

From source:

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

A real Kickstart ROM and disk or hard-disk images are still required to run commercial Amiga software; these are not included.

Internal / CI

  • New CI workflows build and lint the Flatpak bundle and the AppImage, and audit the Homebrew formula.
  • Documentation updates.

Full changelog: v0.1.0...v0.2.0

Copperline v0.1.0

14 Jun 04:42

Choose a tag to compare

This initial beta release is only for Apple Silicon macs.