25.Jun.2026
|
Amiga emulator written in Rust: Copperline 0.7.0
"Copperline" is an Amiga emulator written in Rust. Originally developed with the sole purpose of running or testing DiagROM, the program can now also handle complex and timing-critical software.
Versions 0.6.0 and 0.7.0, released since our last news item, include not only numerous improvements to the accuracy of the emulation but also new computer profiles such as "A500 OCS" and "A500+," more configuration options regarding the number and use of connected floppy drives, and better debugging tools:
Highlights
- Expanded machine profiles. The default A500 profile now models the common Rev 6A board, A500OCS covers early OCS A500/A2000-style hardware, A500Plus uses the 8375 Agnus and RTC, and a new A1000 profile 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 stepover and finish helpers.
- Warp-speed controls. Warp mode can now retire multiple emulated frames per presented frame, with 2x, 4x, 8x, 16x, and Max limits available from config, menu, and keyboard shortcuts.
- Distribution improvements. A macOS workflow now builds and attaches a universal .dmg with 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.
- 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
- 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.
- 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
- 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.
- 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.
(cg)
[News message: 25. Jun. 2026, 23:20] [Comments: 0]
[Send via e-mail] [Print version] [ASCII version]
|