Nowy emulator Amigi napisanego w Rust, ponoć eksperymentalnie i odpalanie z linii komend ale jeśli ktoś lubi pod górkę a nie z górki - to dobra okazja aby przyjrzeć się początkom emulacji tego naszego superkomputera;).
Copperline 0.12.0 18/07/2026
Copperline 0.12.0 takes the emulator to new places: it now runs in the browser as a WebAssembly build, boots the big-box A3000 and A4000 with their onboard SCSI and IDE controllers, mounts host directories as fully writable AmigaDOS volumes, and grows a JSON-RPC control protocol for scripted live sessions. On the hardware side this release adds SCSI CD-ROM drives with CD audio, puts any controller device in either game port, plugs printers and audio samplers into the parallel port, and lands a round of chip-bus mirroring and display accuracy fixes. As always it is a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
Highlights
- Copperline in the browser. A WebAssembly build of the emulator runs entirely client-side, and is live at copperline.dev/try: it boots the bundled AROS ROM out of the box, loads your own Kickstart and disk images from the page (or straight from URL query parameters), and supports drag-and-drop, a keyboard joystick, touch input with a trackpad-style mouse and an on-screen joystick, and fullscreen on iPhone Safari. A prefilled GitHub bug-report link captures the machine state when something goes wrong.
- A3000 and A4000 machine profiles. The big-box Amigas boot, each off its own built-in disk controller: the A3000 brings the Super DMAC with the onboard WD33C93 SCSI bus, the A4000 the motherboard IDE port at $DD2020, and both the Ramsey memory controller, the Fat Gary bus controller, and a motherboard battery clock. The profiles are new and still incomplete, but both boot AmigaOS from their native controllers. A new
rom_scsi_device_disableknob skips the ROM's scsi.device when its bus has no drives, saving the boot-time probe of an empty bus. - Writable host-directory mounts. The
[[filesys]]HOSTFS volumes introduced in 0.11.0 are no longer read-only: the guest now reads and writes the host's files directly, with Amiga protection bits, comments, and datestamps persisted to.uaemmetadata sidecars, host UTF-8 filenames mapped to AmigaDOS Latin-1, delete-protection honored, andACTION_EXAMINE_ALLsupported for modern directory scanners. The services board moved from A-line traps to MMIO registers, packets are routed by explicit mount unit, and the launcher gained a Host Mounts tab with per-mount read-write/read-only access control (readonly = trueexports a directory write-protected). - Copperline Control Protocol. A JSON-RPC 2.0 interface over loopback TCP (
--control, with thecopperline-ctlclient) drives live sessions from scripts and AI agents: breakpoints and stepping, input injection, media swaps, screenshots, save states, and streaming observability (frame, serial, interrupt, and media event subscriptions with bounded queues), plus runtime-bracketed instruction traces and waveform captures.--control-guiattaches the same server to a windowed session. Seedocs/debugger/control.md. - SCSI CD-ROM drives. A
[scsi]unit path ending in.cueor.isoattaches a CD-ROM drive at that SCSI ID on any of the supported controllers. CD audio tracks play through the machine's audio output, and discs swap at runtime via the status-bar CD buttons, drag-and-drop, or--insert-cd-after. - Any controller in either game port. Both game ports now take any device, as on a real Amiga:
mouse,joystick,cd32pad,analoguepaddles on the POT pins, ornone([input] port1/port2,--port1/--port2, hot-pluggable from the runtime menu). Scripted input flags aim at either port,--pot-afterscripts analogue positions, and two-mouse and two-joystick setups get sensible host keyboard mappings. - Parallel-port peripherals. The Centronics port is now a modelled connector with pluggable devices: a printer that captures the raw strobed byte stream to a host file, and an 8-bit audio sampler fed from a host capture device -- the emulated equivalent of a classic parallel-port digitizer cartridge, usable from AudioMaster, ProTracker, OctaMED, and friends. The BUSY/POUT/SEL status lines are driven by the attached peripheral.
- Deterministic guest clock.
rtc_timeseeds the battery clock to a fixed instant and ticks it in emulated time, so the guest boots to the same time on every run -- the way to test time-dependent guest software reproducibly.rtc_frozenpins the clock exactly, and the control protocol reads and sets it at runtime.
Hardware accuracy fixes
- Chip bus. Chip RAM mirrors across the full chip window by Agnus address reach, so loaders that park the stack above the installed chip RAM see the mirror instead of a bus fault (an Action Replay-style boot guru was the regression example). Custom registers mirror into the empty chip-register decode space the way Gary resolves them, which un-sticks Kickstart 1.2's memory-sizing probe (yellow-screen boot).
- Denise display path. OCS/ECS BPLCON1 scroll nibbles count lo-res pixels at every resolution, fixing a first-column wrap in hi-res Kickstart 2.05 boot screens; early hi-res DDF content renders inside an early display window (ECS overscan programs); and sprite DMA fetches land in a hardware-true display-latch view, so stale sprite rows can no longer leak into later frames.
- Agnus identity. Every ECS Agnus reports the same chipset ID, matching real chips.
- Filesystem/DOS ABI.
ACTION_SEEKoffsets are sign-extended, negative-offset seeks from big files now land where AmigaDOS expects. - POT circuit. The POT counter and pot-line models were finished alongside the analogue controller support.
Copperline 0.11.0 12/07/2026
Copperline 0.11.0 focuses on hardware fidelity and performance: host directories can now be mounted (and booted) as native AmigaDOS volumes, the blitter's BLTPRI bus fence and the 68000's microcode write ordering are modelled much more closely, sprite serialization and several display paths were fixed against cross-emulator and real-hardware references, frame-time spikes on slower hosts were eliminated, and a golden-render timing-probe suite now guards chipset timing in CI. As always it is a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
The display regressions noted as known issues in 0.10.0 are fixed in this release.
Highlights
- Host directories as AmigaDOS volumes. New
[[filesys]]config mounts host directories as HOSTFS volumes through an autoconfig services board and a resident guest handler: full file I/O with FFS path semantics, file attributes from host permissions and.uaemsidecars, optional write protection, host path-escape hardening, warm-reboot survival, and bootable volumes viabootpri— a Workbench directory on the host can now boot the machine directly. - Blitter BLTPRI bus fence. BLTPRI now asserts BLS against the CPU the way Agnus does: the CPU is fenced off the chip bus during a blit's warm-up window, BLS pressure follows the blitter's per-slot micro-cycle, a blit with no channels enabled asserts no fence, and line-blit startup was shortened. This class fixes MFM-decoding trackloaders that rely on exact CPU/blitter interleaving (a Jim Power boot crash was the regression example).
- 68000/68010 microcode write-ordering pass. A long series ordering register writes, ALU and address-calculation tails, and internal clocks against prefetch and bus sync the way the microcode does: EOR/EXG/BCD/Scc/MOVEM/ADDX/SUBX/MOVE USP/MOVEA/MOVE from SR, delayed SR writes, 68010 SR read ordering and long shift timing, CHK trap timing, multiply and division internal clocks, quick and bit ops, and 68020 Bcc long-displacement gating. The external RESET instruction is now modelled as a true warm reset.
- Sprite serialization fixes. Denise emits a sprite's first pixel one lo-res pixel after the horizontal comparator match (measured against FS-UAE and vAmiga with new ruler probes), and a DATA-armed sprite keeps serializing on every line — across frames — until SPRxCTL disarms it. Together these improve 180 of 186 vAmigaTS sprite cases and fix long-standing demo sprite placement bugs.
- Frame-spike elimination. Profiling on an i5-class machine (issue #99) removed per-colour-clock table copies in the bus hot path, per-pixel palette copies and a quadratic sprite-multiplexer scan in the renderer, and added p50/p90/p99/max frame-time reporting to
--benchmark-until. Worst-case core frame time on the profiled workload dropped from 100.8 ms to 16.1 ms and audio underruns disappeared. - Golden-render CI suite. Every
cargo test --releaserun now boots the committedtiming-test/probe binaries on the bundled AROS ROM and compares their rendered output pixel-for-pixel against blessed references: CPU/chip-bus timing rows plus DDF/DIW, sprite-position, blitter-pace, collision, and audio-enable probes. Intentional timing-model changes must re-bless the renders, so every chipset timing diff is reviewed as an image diff.
Hardware accuracy fixes
- Copper. A post-WAIT wake-up must land on a colour clock free of fixed DMA; copper-sourced sprite repositions carry the WAIT-comparator lookahead; the closed-DIW border repaint follows per-pixel COLOR00 writes (fixes raced copper-chunky effects).
- Agnus DMA and blitter. Fixed DMA slots are aligned with the hardware DAS table, BLS pressure is gated by the blitter micro-cycle, line blitter startup timing was shortened, and VHPOSR readback lead was tuned against the probe rows.
- Denise display path. Bitplane scroll-in starts from empty line state; a BPLCON1 scroll covering an off-grid DDFSTRT catches the floor reload slot; hi-res bitplane content flushes at the 2H-196 window edge; AGA border sprites are suppressed during border blank; sprite DMA owns same-line reuse data.
- Renderer and presentation. The renderer no longer synthesizes a picture for a line whose fetch never ran (phantom-line artifacts in overscan scrollers), and the TV aperture is black-padded past the framebuffer edge instead of repeating the last column.
- Floppy. DSKLEN arming no longer waits for drive-ready: a spinning-up drive arms disk DMA normally, as on real hardware (fixes trackloader disk swaps that double-write DSKLEN right after motor-on, e.g. Shadow of the Beast disk 2). Step-click sound is gated on the /TRK0 sensor and the stepper mechanism floor.
- Save states. Mid-blit state serializes deterministically (two saves of the same machine are byte-identical), backed by a new regression test that resumes a mid-blit save under live Copper and interrupt load and compares the continued timeline byte-for-byte.
Other improvements
timing-test/gained the ddfprobe suite, manual/DMA sprite position probes, blitter-pace and audio-enable probes, and a 96-sector boot loader;tools/rowphase.pyperforms content-anchored per-beam-row comparison across Copperline, vAmiga, and FS-UAE output.- The debugger gained headless exception catchpoints, address filtering for CPU read traces, and low-memory blit crash diagnostics.
- CI now runs the golden-render suite in parallel, boots DiagROM as a smoke test, and keeps the Windows/macOS/Linux packaging workflows as release build checks.
- Documentation covers the
[[filesys]]mounts, the unified SCSI configuration, and the expanded timing-probe workflow.
Copperline 0.10.0 7/07/2026
Copperline 0.10.0 is the largest release so far: 68060 support, expanded 68030/68040 MMU and cache behaviour, a much richer debugger, A4091 SCSI board emulation, host MIDI/TCP serial bridges, selectable audio output, zipped floppy images, and another broad pass over CPU, Copper, Agnus, Denise, Paula, CIA, blitter, floppy, and display timing. It remains a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
Highlights
- 68060 CPU model. Copperline now exposes a 68060 CPU profile with control registers, supervisor-stack behaviour, scalar timing, branch-cache modelling, LPSTOP, 68060 MMU specifics, the reduced 060 FPU surface, unimplemented-instruction traps, 060 exception frames, superscalar pairing, and launcher/config/docs support.
- Deeper 68030/68040 MMU and cache coverage. The m68k core now models 030/040 translation, TTRs, access-error frames, ATC behaviour, write-protect and permission faults, MOVE16 alignment behaviour, and 68040 instruction/data caches, backed by expanded CPU fixture tests.
- Debugger console and frame-analysis workflow. The debugger gained a command console with clipboard paste, memory/register inspection and mutation, HUNT, TRACE START/STOP, AmigaOS task/segment introspection, catchpoints, recent-PC history, heuristic call-stack walking, reverse-run targets, richer watchpoint attribution, IO Map, Video, Break, Memory, Frame Analyzer, a Paula audio debugger tab with per-channel mutes and scopes, Copper stepping, and beam-scrubbing improvements.
- A4091 Zorro III SCSI board. A new board model covers nibble-wide autoboot ROM exposure, DMA and SCSI FIFOs, NCR/Symbios SCRIPTS register moves, memory moves, interrupts, looped SCSI pins, bus reset, drive scan/mount, and diagnostics under
COPPERLINE_DIAG_A4091. - Host I/O improvements. Paula serial can bridge to host MIDI or a bidirectional TCP sink, live audio can select output devices and mono/stereo shaping,
Cmd/Alt+Shift+Acycles audio output, and ZIP-wrapped floppy images are supported.
Hardware accuracy fixes
- CPU timing and interrupt delivery. 68000/68010 IPL poll placement, interrupt-dispatch idle clocks, STOP wake timing, 68010 prefetch/refill behaviour, MOVES timing, MOVE-from-CCR timing, and Class 2 MOVE-to-absolute-long prefetch order were tightened against microcode and cputest coverage.
- Copper pipeline and write landing. WAIT/SKIP/COPJMP execution now follows the fetch pipeline more closely, dormant COPxLC writes retarget the Copper PC, skipped MOVEs still pass illegal-register decode, vertical-blank COP1LC restart happens at the hardware position, and CPU/Copper custom-register write effects are referenced from their carrying chip-bus slot.
- Agnus/Denise fetch, display, and sprite timing. The DDF sequencer now models start/stop flip-flops, raw below-hard-start fetch origins, FMODE=0 placement, DIW comparator anchoring, BPLCON0 propagation, overprogrammed BPU suppression, sprite DMA slots/register state, HAM/dual-playfield invalid priority cases, and collision over enabled planes.
- Blitter micro-cycles. Normal and line-mode blits now follow a per-slot micro-cycle protocol, including BLTPRI/CPU starvation interactions, fixed DMA slot contention, line micro-programs, startup cycles, and completion/IRQ prediction with active Copper DMA.
- Paula, CIA, and floppy behaviour. Paula audio moved to the HRM channel state machine, AUDxEN disable is deferred to the word boundary, POTxDAT counters tick at H-sync, CIA accesses synchronize to the E clock, CIA IRQ pins and TOD alarm/TOD bug behaviour were refined, floppy step pulses observe a mechanism floor, and empty drives stay in no-media state.
Other improvements
- The project now has a
copperlinelibrary crate, split bus/video/window submodules, reusable render-frame buffers,--version, and clearer unknown-option/config-validation errors. - Regression coverage grew with WinUAE cputest runner infrastructure, TomHarte SingleStepTests in CI, 68000-68060 CPU fixtures, vAmigaTS comparator tooling, image-regression hooks, and additional hardware-behaviour unit tests.
- Documentation covers the expanded CPU/MMU/cache model, debugger console/workflows, MIDI/audio configuration, headless test workflows, A4091 and Zorro behaviour, timing details, and the reorganized source layout.
Copperline 0.9.0 29/06/2026
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.
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.
Copperline 0.8.0 27/06/2026
Copperline 0.8.0 adds the no-config machine launcher, external Zorro board plugins, A2065 networking, directory hard-disk filename encoding fixes, startup state-load fixes, and another round of Denise, Agnus, sprite, bitplane, display-window, and save-state render timing improvements. It remains a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
Highlights
- Machine-configuration launcher. A no-options launch now opens a full configuration screen, also available from the menu. It can edit machine profile, chipset, CPU, memory, ROM, floppy, hard-disk, CD, Zorro, audio/video, and emulation settings, then run, load, save, or reset them through the same TOML schema as hand-written configs.
- External Zorro board plugins. Functional Zorro boards now sit behind a
ZorroDeviceboundary, and WASM plugin boards can expose deterministic read/write/tick/interrupt behavior with optional DMA, config, file-resource, and networking capabilities. - A2065 networking. Copperline includes an in-tree Commodore A2065 Ethernet board with Am7990 LANCE programming-model coverage and a loopback backend. Networking remains a host resource and is documented as non-deterministic while traffic is active.
- Schema-driven plugin settings. WASM board manifests can declare string, bool, int, file, and enum options. The launcher renders those schemas as editable controls and writes per-board config overrides.
- Startup state loading. Loading a save state from the launcher now replaces the powered-off placeholder timeline cleanly, closes the launcher, wakes the event loop, and reanchors pacing before the first restored frame.
Hardware accuracy fixes
- Sprite DMA and pointer timing. Agnus sprite DMA frontiers now carry across the frame boundary, sprite pointer retargeting distinguishes same-line descriptor restarts from pending-data retargets, and vertical blank inhibition prevents pre-fetch SPRxPT writes from retargeting descriptors that hardware has not fetched.
- Denise sprite and palette latches. Active sprite POS writes retime horizontal starts without cancelling the latched data stream, manual SPRxDATA/SPRxDATB writes run in the sprite comparator domain, and OCS/ECS COLORxx replay lands in Denise final palette/output timing.
- Bitplane fetch and shifter handoff. Late DDF rows start output at the first fetched word, per-plane output waits for each plane fetch slot, BPL1DAT handoff no longer leaks stale shifter tails, and manually written BPL1DAT data stops when real DMA replaces the shifter contents.
- Display-edge replay. HAM display-window history, overscan COLOR00 handling, AGA BPLCON1 delay replay, and display-window edge pixels were tightened so stale palette or shifter state does not leak across row boundaries.
- Restored-frame rendering. Loading a state mid-field preserves the hardware timeline while withholding partial render-capture buffers until a complete field is available for screenshots, frame dumps, and presentation.
Other improvements
- Directory-as-hard-disk filename handling now preserves host-path encoding more robustly.
- The offline Flatpak cargo source list was regenerated for the new WASM runtime dependency set.
- Documentation covers the launcher, Zorro/WASM plugin ABI, A2065 config, networking determinism caveats, save-state device snapshots, and the updated display timing model.
Copperline 0.7.0 26/06/2026
Copperline 0.7.0 expands the machine model catalogue, improves the debugger workflow, adds controllable warp-speed frame skipping, wires up macOS DMG release builds, and tightens another set of Copper, Agnus, Denise, blitter, sprite, floppy, and display-timing edge cases. It remains a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
Highlights
- Expanded machine profiles. The default
A500profile now models the common Rev 6A board,A500OCScovers early OCS A500/A2000-style hardware,A500Plususes the 8375 Agnus and RTC, and a newA1000profile models the bootstrap ROM plus writable control store Kickstart load path. - Debugger workflow improvements. The debugger and frame analyzer are independent tool windows, breakpoints can be conditional and counted, the UI can step over/out and poke memory or CPU registers, and the GDB monitor gained
stepoverandfinishhelpers. - Warp-speed controls. Warp mode can now retire multiple emulated frames per presented frame, with
2x,4x,8x,16x, andMaxlimits available from config, menu, and keyboard shortcuts. - Distribution improvements. A macOS workflow now builds and attaches a universal
.dmgwith the app bundle and bundled AROS ROM. Homebrew remains the source-build install path for macOS users who prefer it. - Floppy-drive wiring controls. Config and CLI options can connect one to four floppy mechanisms, including empty external drives for scripted or delayed disk insertion.
Hardware accuracy fixes
- Copper and custom-register behavior. Copper lists can live at chip RAM address zero, COPCON byte writes mirror onto the word latch so byte bit operations can set CDANG, and Copper/manual sprite palette timing is aligned with the display beam.
- Agnus and Denise display timing. DDF register precision is now derived from the Agnus revision, low-res DDFSTOP/DDFSTRT edge cases use the correct fetch origin, same-line DIW start writes update the display origin, and CPU palette writes replay at their beam-time positions.
- Sprites and bitplanes. Manual BPL1DAT writes can enable sprites on scanlines outside the vertical DIW, direct sprite data writes are not clipped by the DMA vertical window, and Copper colour writes stay phase-aligned with the bitplane pixels they recolour.
- Blitter datapath. Normal-mode A/B barrel-shifter carry is initialized at the start of a new blit while still carrying across rows within that blit.
- Machine-specific behavior. A1000 reset and LED/audio-filter behavior now follow the writable-control-store machine model, and external floppy drive connection/reset behavior is exposed through the hardware model instead of inferred only from inserted media.
Other improvements
- Untagged UI builds show the short git commit in the window title and About panel.
- The frame analyzer can keep the debugger open beside it and supports drag/cursor navigation of selected beam slots.
- Documentation and example configs cover A1000 booting, A500 Rev 6A defaults, floppy-drive wiring, warp limits, debugger controls, and the macOS DMG install path.
Copperline 0.6.0 23/06/2026
Copperline 0.6.0 adds a chip-bus frame analyzer, a remote GDB debugger frontend, Zorro identification metadata, Linux Vulkan presentation checks, and another pass over display, sprite, floppy, and live-audio timing. It is still a hardware-behavior release: the fixes model the underlying Amiga subsystems rather than individual titles.
Highlights
- Chip-bus frame analyzer. A new debugger tool window visualizes per-frame chip-bus ownership, DMA spans, CPU waits, blitter pressure, and display fetch activity for timing investigations.
- Remote GDB debugging. Copperline can now expose the emulated CPU to a GDB frontend for source-level and machine-level debugging outside the built-in UI.
- Zorro board identification. Autoconfig metadata can now identify Copperline boards using the registered manufacturer ID, board ID, and a version-derived serial number.
- Linux presentation hardening. Linux GUI presentation now requires Vulkan explicitly, with CI smoke coverage for the required X11/Vulkan runtime libraries.
Hardware accuracy fixes
- Agnus and Denise display timing. TV-visible horizontal overscan is modelled, bitplane pre-fetch no longer scrolls into the first line of a DMA block, and sprite pointer/fetch timing is tightened around DMA descriptor updates.
- Chip-bus and audio pacing. Bitplane ownership planning avoids redundant work, pending sprite descriptor origins are preserved, and live audio starvation during heavy display effects is reduced.
- Floppy media. Padded UAE-1ADF AmigaDOS tracks are accepted without treating the padding as part of the logical track payload.
- Zorro Autoconfig. The built-in identification board reports Copperline metadata through hardware-derived Autoconfig fields.
Other improvements
- The debugger documentation now covers the chip-bus analyzer and remote GDB flow.
- Homebrew release documentation was refreshed around formula checksum and tap validation steps.
- The README and guide now document the Linux Vulkan presentation requirement.
- Documentation credits and internals notes were updated for the new timing and diagnostic workflows.
Copperline 0.5.0 21/06/2026
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.
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.
Copperline 0.4.0 20/06/2026
Copperline 0.4.0 adds reverse debugging, keyboard joystick control, optional realtime-like scheduling for latency-sensitive threads, and a broad hardware-timing pass across AGA display, 68020/68030 chip-bus behavior, Paula disk DMA, and save-state resume.
Required config changes
None. Existing configs should continue to load. New settings are optional.
Highlights
- Reverse debugging. A deterministic snapshot/input replay ring now powers reverse-step support in the debugger and a headless last-writer reverse watchpoint for memory corruption investigations.
- Keyboard joystick input.
Cmd+J/Alt+Jcycles joystick input mode between auto, keyboard, and gamepad. The default now derives from available host input, with keyboard as the auto fallback. - Opt-in realtime-like scheduling.
[emulation] realtime_priority = trueraises the pacer and audio callback priority where the host OS allows it, while leaving the renderer at normal priority. - Save-state resume follows the saved machine. Loading a state now reconfigures the host-facing emulator around the saved machine descriptor before continuing.
Hardware accuracy fixes
- 68020/68030 cache and chip-bus timing. On-chip caches are modelled by default, 020 instruction timing is recalibrated, 68020+ chip-bus writes use the three-clock write-posted cycle, and chip/custom reads account for data-return waits.
- AGA blitter and display timing. AGA blitter/chip-bus timing, Denise captured-playfield timing, wide-FMODE bitplane fetch counts, and wide-open DIW presentation are tightened.
- Sprite timing. Copper-repositioned held sprites, SPREN-off held display, attached sprite presentation, manual sprite position writes, BPLCON4 sprite page nibbles, and BPLCON4 sprite timing are modelled more closely.
- AGA scroll decode. BPLCON1 AGA scroll fields are decoded separately.
- Paula disk DMA. Disk-read DMA now preserves the correct word phase through Paula.
- Video presentation. The TV lower crop is tightened by one row.
Other improvements
- Auto-generated filenames now use local
YYYYMMDDHHmmSStimestamps. - The example config is easier to scan and documents TOML escaping for Windows paths.
- Reverse debugging, savestate determinism, realtime priority, AGA sprite diagnostics, and the timing-test workflow are documented.
- The Homebrew formula is updated to v0.4.0 with the final tag tarball checksum.
Dodaj komentarz!!!!
[GameBase] GameBase AMIGA 1.7 (Seya) Update 95.5 14/07/2026
[Multi] Denise 2.8 12/05/2026
[AMIGA] Winuae 6.1.0 Beta 9 6/07/2026
[AMIGA] WinUAE 6.0.3 Final 03/03/2026
![[AMIGA] Copperline 0.12.0 18/07/2026](/Photos//www/photo/202606/copperline.jpg,134)
Copperline is a cycle-driven Amiga emulator (OCS / ECS / AGA) written in Rust. It models the hardware - chip bus, Copper, blitter, Paula, CIA - per colour clock, and runs timing-sensitive demos and games at real speed.
An Amiga emulator written in Rust. Contribute to LinuxJedi/Copperline development by creating an account on GitHub.
