< all news

Copperline 0.20.0: Netplay, a new debugging workspace, and RetroArch

Copperline 0.20.0 is out. This release adds two-player netplay on the desktop and in the browser, brings the Amiga display and the inspectors together in a new debugging workspace, and adds a libretro core for RetroArch.

There are also save-state thumbnails, GIF clips, new peripherals and Paula audio improvements. Save states from 0.19 and earlier need recreating; disk images and ordinary in-game saves are unaffected.

Two-player netplay

Each player runs a complete emulated Amiga. Copperline exchanges input, predicts input that has not arrived yet, and rolls back to replay frames when a prediction was wrong. Desktop internet invitations use encrypted connections with NAT traversal and relay fallback, so port forwarding is normally unnecessary. Direct UDP connections are still available.

The host sends the machine settings, ROMs and supported game media to the joining player. Both machines then cold-boot together. A floppy change during play pauses both peers, transfers the replacement and resumes both at the same emulated frame. IPF protection-track timing survives the transfer.

The browser has invitation links and QR sharing, automatic setup transfer, and synchronized DF0/DF1 swaps. Two-mouse games work on both frontends, including two-player Lemmings. In the browser, choose Advanced → Controllers → Two mice in the Netplay panel before hosting.

Watch the two-player Lemmings netplay video on YouTube.

Both machines need the same Copperline build. Desktop and browser peers cannot connect to each other, and mixing operating systems or browser engines has not been verified yet. See the netplay guide or open it in the browser.

The Debug workspace

The Amiga display now sits beside the debugger, Frame Analyzer and Console in the main window. Switch between Play and Debug, drag the divider to give either side more room, and keep the picture in view while you inspect the machine.

State of the Art beside the CPU registers, disassembly and memory in Copperline 0.20.0
The CPU debugger and Amiga display share one window. Click the picture to open the full-size capture.

The inspectors now share one interface, with selectable text, normal copy and paste, and resizable CPU panes. Edit memory in hex or ASCII, follow addresses between views, and close individual inspector tabs. The tabs show which inspectors are open and which are capturing, and returning to Play keeps their state for next time.

Copperline Frame Analyzer beside the Amiga display, showing chip-bus ownership across a frame
The Frame Analyzer records each colour clock, showing how the CPU and DMA channels shared the chip bus.

The debugger can also step a CPU out of STOP to the interrupt that wakes it. Disassembler fixes cover opcode collisions, instruction lengths, processor-specific instructions and absolute-word addresses. The Debug workspace chapter covers the controls; source debugging through VS Code remains available.

Copperline in RetroArch

The new libretro core supports A500, A1200 and CD32 machines, floppy and CD playlists, WHDLoad packages, keyboard, mouse and gamepad input, and save states. AROS is built in, and games that need a Kickstart ROM can use one from the frontend's system directory.

RetroArch's disk controls handle swapping. Floppy writes live in the frontend's save directory, CD32 EEPROM is exposed as save RAM, and the memory map supports memory inspection and cheat search. Two-gamepad netplay uses RetroArch's own session controls.

Core ZIPs for Linux x86-64, macOS Apple Silicon and Windows x86-64 are on the release page. Install them manually for now; the core is not in RetroArch's Online Updater. See the libretro guide.

Saves and clips

The Load State browser now shows thumbnails, the machine, the media and the emulated time for each snapshot. States are now made of individually versioned subsystem chunks, so many future changes will not invalidate the whole file. The switch means states from 0.19 and earlier must be recreated.

Load State browser with thumbnails from saved demo scenes
Save-state thumbnails make it easier to find the scene you wanted to return to.

The desktop can save the last few seconds as a GIF. Headless runs can schedule the same kind of clip at a chosen emulated time with --gif-after and --gif-seconds.

Hardware and audio

  • A parallel-port four-player joystick adapter for local play, plus light pen and light gun input.
  • A600/A1200 PCMCIA SRAM and CompactFlash/IDE cards, compressed CHD hard disks and real host serial ports on Paula's UART.
  • Matt Harlum's SF2000 SD controller, including the SD-over-SPI interface and boot-ROM support.
  • Host/guest clipboard text sharing, enabled in ordinary desktop sessions and switchable in Input Settings. Headless and netplay sessions leave it off.
  • Band-limited Paula mixing to reduce resampling artefacts, with mixer phase tied to the emulated clock.
  • Fixes for copperhf data-cache coherency, Intel Mac fullscreen borders and desktop netplay display stalls during mouse movement.
  • m68k 0.13.0 and refreshed AROS ROMs with lower guest-memory use.

Testing Amiga programs

Headless runs can type text, compare scheduled screenshots against expected images and return a guest program's AmigaDOS exit code to the host shell. Guest code coverage exports as lcov. copperline-ctl diverge compares two builds or configurations and narrows a mismatch down from its first differing frame to the instruction, memory access or timing result that differs.

The desktop downloads now include copperline-ctl and copperline-import-uae. Thanks to Matt Harlum for the SF2000 controller, Simon Dick for the copperhf fix, Volker Schwaberow for the disassembler corrections, and everyone testing and supporting Copperline.

Download Copperline 0.20.0 Try in your browser

Desktop downloads cover macOS (Apple Silicon and Intel), Linux x86-64 and Windows x64/ARM64. Homebrew users can run brew update and brew upgrade copperline. The full release notes include upgrade details, and the changelog lists every change.