Copperline 0.5.0
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 cachedenvcfgsnapshot helper.
Installation
macOS (Homebrew):
brew tap LinuxJedi/copperline https://github.com/LinuxJedi/Copperline
brew install copperlineLinux (AppImage): download Copperline-0.5.0-x86_64.AppImage below, then:
chmod +x Copperline-0.5.0-*.AppImage
./Copperline-0.5.0-*.AppImageWindows: download and extract the portable Copperline-0.5.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.4.0...v0.5.0