Skip to content

Copperline 0.5.0

Choose a tag to compare

@LinuxJedi LinuxJedi released this 21 Jun 09:18

Copperline 0.5.0 is a compatibility-focused release with a broad pass over OCS/ECS and AGA display timing, sprite replay, HAM rendering, floppy image handling, and live-audio pacing. It also includes the first external contribution: thanks to @sonnenscheinchen (jbl007) for improving directory scans by filtering UAE metadata files.

Required config changes

None. Existing configs should continue to load. The built-in A500 profile now defaults to the common 512K chip / 512K slow RAM setup; explicit config values are unchanged.

Highlights

  • OCS/ECS and AGA display compatibility. Copper-driven palette changes, wide and clipped DIW/DDF windows, bitplane fetch timing, and AGA sprite palette timing are modelled more closely.
  • HAM rendering fixes. HAM hold state now advances through hidden DMA samples, lo-res edge fetches stay aligned at the right edge, and palette timing no longer smears copper-gradient scenes.
  • Sprite replay fixes. Manual sprite data/control writes, SPRxPOS comparator timing, sprite DMA rewrites, sprite reuse, and zero-height DMA descriptors now follow the hardware timing more closely.
  • Better media defaults and scans. The default A500 memory profile is now 512K chip / 512K slow RAM, PAL-sized ADF images get matching track gaps, and directory scans ignore UAE metadata files.

Hardware accuracy fixes

  • Denise and Agnus display timing. OCS DIW/DDF edge cases, per-block bitplane DMA, DDF-start plane count latching, BPLCON1 scroll retiming at the DIW edge, and separate COLORxx vs AGA BPLCON4 sprite-palette timing are tightened.
  • HAM and palette replay. Hidden DMA samples advance HAM colour history, early lo-res DDF fetches expose complete groups without leaking stale right-edge pixels, and same-line COLOR writes use the Denise palette-output phase.
  • Sprites. SPRxPOS writes use the Denise comparator domain, manual sprite writes preserve compare-boundary output, sprite DMA pointer rewrites seed the next descriptor fetch, and zero-height descriptors stop cleanly.
  • Blitter and bus timing. Per-block bitplane DMA, blitter carry/latch behaviour, and interrupt unmask handling are more accurate across fixed-DMA and copper-heavy scenes.
  • Floppy media. PAL-length ADF track gaps are represented more accurately.

Other improvements

  • Reverse-frame debugger controls were added to the UI.
  • Headless diagnostics now include cached HAM, manual bitplane, frame-pixel, palette-row, sprite-capture, and sprite-pixel tools for timing investigations.
  • Live audio prebuffer pacing was improved.
  • Documentation and example configuration comments were refreshed around machine profiles, diagnostics, save-state behavior, and timing internals.
  • All COPPERLINE_* test and utility environment reads now go through the cached envcfg snapshot helper.

Installation

macOS (Homebrew):

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

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

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

Windows: download and extract the portable Copperline-0.5.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.4.0...v0.5.0