EmuCR Feeds
Email Us

EmuCR: Azahar  Copperline v0.13.0 is released. An Amiga emulator written in Rust, built around a vendored copy of the pure-Rust m68k CPU core, with a pixels + winit window for video and stdout for serial. It started life with the modest goal of booting DiagROM far enough to show a menu; it now boots Kickstart and runs timing-sensitive OCS and AGA software from the regression set at real speed.

Features:
Cycle-driven timing core. The chip bus is arbitrated per colour clock between refresh, display/sprite/disk/audio DMA, the Copper, the blitter, and CPU accesses; the Copper and blitter are scheduled per DMA slot with the hardware per-word bus sequences, and 68000 interrupt-recognition latency is modelled. Real-hardware reference numbers come from the cross-emulator disk in timing-test/.
OCS, ECS, and AGA, with independent Agnus/Denise revisions and machine profiles from the A500 to the A1200, plus CDTV and CD32. Boots the bundled AROS ROM out of the box, as well as Kickstart 1.3 / 2.05 / 3.1 and DiagROM v2.0, and runs the current timing-sensitive OCS and AGA regression set at real speed.
Configurable CPU (68000 / 68EC020 / 68020 / 68030 / 68040) and clock, with an optional 68881/68882 FPU (default-on for the 68040).
Peripherals: a bit-timed keyboard (6500/1 MCU), mouse, USB gamepad (via the pure-Rust gilrs, no SDL2), 4-channel Paula audio, floppy (ADF / ADZ / DMS, read-only SCP), Gayle IDE, A2091 SCSI, and CDTV/CD32 CD.
Tooling: an in-window debugger, an interactive chip-bus frame analyzer, remote GDB support, deterministic save states, input recording/replay, and headless screenshot/frame-dump capture -- the deterministic core makes every replay byte-identical.

Copperline changelog:
Copperline 0.13.0 is the release where the emulated machine grows past the classic chipset. It gains RTG graphics through the Z3660 Zorro III board, so Workbench runs in high-colour, high-resolution Picasso96 screens; it fills in the big-box memory maps with Ramsey motherboard fast RAM and CPU-slot accelerator RAM; it puts a real Ethernet card on the bus with a user-mode NAT backend that needs no privileges or setup; and it dials a telnet BBS from the browser over emulated serial. A deep pass on 68040/68030 exception dispatch under the MMU, together with a corrected 31 kHz programmable-scan display path, is enough to boot Debian Linux/m68k to a pixel-sharp login prompt. As always it is a hardware-behavior release: compatibility fixes model the underlying Amiga subsystems rather than individual titles.
Compatibility notes
Save states from 0.12.0 do not load in 0.13.0. The serialized machine shape changed repeatedly this cycle (the RTG board, motherboard and accelerator RAM, the Ricoh battery clock and its battery RAM, the rebuilt drive-sound engine), so the state format version moves from 32 to 40. Re-create snapshots after upgrading.
No config file changes are required -- no TOML key or CLI flag was removed or renamed, and 0.12.0 configs continue to parse. Several defaults changed, which is what to check if a machine behaves differently:
An RTG card is now fitted by default on any machine whose CPU has a 32-bit address bus -- the stock A3000 and A4000, or any profile given a 68020+ full-bus CPU. A Zorro III board joins the autoconfig chain; [rtg] card = "none" removes it.
A3000 and A4000 profiles come with 4 MB of Ramsey motherboard fast RAM fitted. [memory] motherboard = "0" removes it.
A3000 and A4000 now default to the Ricoh RP5C01 battery clock rather than the OKI MSM6242. AmigaOS probes for either part so the difference was invisible, but Linux/m68k hard-assumes the Ricoh on big boxes. [machine] rtc_chip overrides.
A battmem.nvram file is created in the working directory on any machine with an RP5C01 fitted, so the clock's battery RAM persists across runs. [machine] battmem = "" keeps it session-only.
The 68020 and A1200 profiles run at a different (more accurate) speed. A1200 SysInfo moves from 1.61x to 1.10x CPU and 5.52x to 3.55x chip against reference. Anything calibrated against the old, too-fast A1200 will behave differently.
Machines with no battery clock now correctly report that they have none. A floating $DC0000 bus previously made AmigaOS believe a clock was fitted and invent a date; affected guests now say Battery Backed up Clock not found, which is what the real machine says.
Drive sounds sound different, rebuilt from measurements of real mechanisms; the read-gated hiss layer is gone.
Highlights
RTG graphics. The Z3660 accelerator's FPGA RTG core is emulated as a Zorro III autoconfig board with a 128 MB window, driven by the unmodified open-source Z3660.card Picasso96 driver: Workbench in 8, 16 and 32-bit RTG modes, blitter operations, DRAWLINE, planar-to-chunky and planar-to-direct blits, hardware-sprite compositing including wide and doubled sprites, native-resolution presentation with chipset fallback, and pixel-centre screenshot downscaling. The card is selected with [rtg] card or the launcher's System tab, and comes fitted by default wherever the machine can host one. Contributed by Bernie Innocenti.
Linux/m68k boots. A pass over the 68040/68030 core takes exception dispatch through the MMU the way real silicon does, and fixes the MOVES fault frame, writeback data, invalid-fetch faults, autovector handling, and FSAVE/FRESTORE across all control addressing modes. Together with the display work below, Debian 3.1 for m68k goes from dying in a Line-F handler to running a console at a login prompt on an A4000/68040.
Correct 31 kHz programmable-scan display. The Denise H counter restarts at 0, DIW-relative placement scales properly in super-hi-res, and presentation anchors at the HSYNC pulse like a real multisync monitor -- the Linux amifb console was losing about 22 characters off every line. Super-hi-res colour output is also fixed: each 35 ns sample resolves through the full palette instead of a two-bit pair encoding, which is what turned Tux green and fringed text red and cyan, and a double-width 35 ns canvas makes programmable SHRES pixel-sharp.
Big-box memory maps. Ramsey-controlled motherboard fast RAM sits in 32-bit local space on the A3000 and A4000, sized by Kickstart's own probe ([memory] motherboard, 1M-4M in 1M steps or 8M/12M/16M). The A4000 gains its $04000000-$06FFFFFF motherboard expansion space up to 64 MB, and any 32-bit-CPU profile -- including an accelerated A1200 -- gains CPU-slot accelerator fast RAM up to 128 MB ([memory] accelerator).
Ethernet that just works. The A2065 gains a slirp-style user-mode NAT backend ([a2065] net = "nat", --a2065-net nat, or the launcher's I/O Ports tab): outbound IPv4 for the guest with no privileges, no host drivers and no setup, identically on Linux, macOS and Windows. The guest sees 10.0.2.15/24 with a built-in BOOTP/DHCP server. The Am7990 LANCE model was hardened until a real SANA-II a2065.device works end to end.
Telnet BBS over emulated serial. A browser WebSocket bridge with a full telnet NVT layer runs a BBS from the browser build through plain serial.device, and the desktop dials out natively with [serial] mode = "tcp-connect" / --serial-connect HOST:PORT. Dialling is gated on the guest asserting DTR and going quiet, so boot chatter cannot leak into a session as phantom keypresses.
Configurable floppy speed. [floppy] speed / --floppy-speed runs drives at 100 (default), 200, 400 or 800 percent, or 0 for turbo. The percentage modes stay bit-identical per cell and turbo still runs through the ordinary bit engine; drive mechanics -- spin-up, stepping, settle -- always stay real-time, so the acceleration cannot break loaders that time the mechanism.
Authentic drive sounds. Step, seek and spin voices were re-synthesized against spectra measured from real A500 and A600 mechanisms: a step clack with its rebound cluster, seek buzz as a measured harmonic comb, and revolution-locked spin texture. No sample data ships; it is all synthesis.
The browser build became a real frontend. Machine model select (A500 or AGA A1200, live-switchable carrying ROM and disks across the rebuild), save states as downloadable .clstate files interchangeable with desktop builds plus an IndexedDB quick slot that survives a page reload, gamepads in both ports for two-player, pause and screenshot-to-clipboard, a front-panel status strip with LEDs and a track counter, a copperline.json site config file, a Kickstart list select for site-served ROMs, mono audio, and fullscreen that keeps 4:3 on any page shell.
Hardware accuracy fixes
AGA display. Alien Breed II's horizontal scroll jump is fixed by modelling how Agnus masks an off-grid DDFSTRT to the fetch grid on wide FMODE, folding BPLCON1 scroll taps into the early masked fetch start (band map corroborated against FS-UAE). The FMODE SSCAN2 high-bit mask is modelled in the rendered, manual and collision sprite paths, so sprite HSTART $165 correctly aliases $065.
68020 timing. The MC68020 model now follows the datasheet Cache Case and Worst Case tables, requiring the whole instruction stream including extension words to be cached before it can claim the Cache Case, and models the A1200 Alice data-return phase.
Battery clock presence. The $DC0000 page's byte lanes are modelled -- the MSM6242 is a 4-bit part on the low lane, and the unfitted odd lane reads $40 as measured on real A500 hardware -- so Kickstart 1.3 stops inventing a date out of DMA noise.
Byte-swapped ROM images. ROMs stored in EPROM-programmer byte order are detected from the header and swapped on load, so they boot like their conventional twins. Hi/lo split chip pairs remain unsupported.
CD32 NVRAM. Saved games are no longer silently lost when the backing-file write fails: the dirty bit clears only after a successful write, so the flush retries on the next I2C STOP.
Machine profiles built directly rather than through the config pipeline now derive their Agnus and Denise revisions and CPU-implied FPU and cache defaults, which is why the browser A1200 was detecting only half its chip RAM.
Zorro bus-master DMA reaches motherboard and accelerator RAM, so an A4091 finds its SCSI units on the A4000 profile, and the host-filesystem services board decodes the new RAM banks.
Desktop, tooling and platform
Fullscreen and status bar. Borderless fullscreen toggles with Cmd+F / Alt+F, and the status bar hides with Cmd+Shift+F / Alt+Shift+F, the display scaling up into the reclaimed space.
Headless capture needs no display server. --screenshot-after and --dump-frames drive a windowless loop with no winit event loop or window at all, so capture runs work over SSH, in sandboxes, and from agent sessions where creating a window would abort or hang. Screenshots are byte-identical to the old path, and a run whose machine halts early now errors instead of hanging.
Crash reports. Panics write a copperline-crash.txt report next to the executable with version, host, timestamp, message and a forced backtrace -- Windows double-click launches previously lost the panic entirely.
Windows launcher fix. Pressing Run on the configuration screen no longer crashes Windows builds; the main thread is linked with an 8 MiB stack instead of the 1 MiB Windows reserves by default. This was the known issue that shipped with 0.12.0.
Launcher. Serial and Parallel merge into one I/O Ports tab, the printer becomes a selectable device with an output-file browser, Host Mounts moves under Hard Disk, the A2065 gains a picker, and a config's unreadable ROM keeps its underlying cause in the status line instead of reading like progress.
Security and dependencies. anyhow, memmap2 and quick-xml move for RUSTSEC advisories, and the WASM plugin host moves from an unmaintained wasmtime pin to the 36 LTS tip.
Bundled AROS ROM refreshed to upstream master, picking up m68k boot-time optimizations, the boot-animation rendering fix, Workbench and console speedups, and a fix for the Boot Options menu crashing on machines with RDB drives on an A4091.
External contributions
Bernie Innocenti (@codewiz) contributed the Z3660 RTG video board -- the project's first RTG card and the single largest contribution of the cycle -- including the [rtg] card selection, the launcher RTG picker, and bulk CLUT palette upload so 8-bit RTG screens work with current Z3660.card firmware. He also fixed Zorro bus-master DMA reaching motherboard and accelerator RAM (which is what stopped the A4091 finding SCSI units on the A4000), and made host-directory file handles writable so Workbench can snapshot icons on a HOSTFS volume.
Lee Hobson (@hobbo91) fixed the Windows configuration-screen crash that shipped with 0.12.0, built the merged I/O Ports launcher tab with the printer device and the Host Mounts sub-page, added the hide-status-bar shortcut and menu item, fixed fullscreen scaling when going fullscreen before pressing Run, and made the launcher keep the underlying cause when a config's ROM cannot be read.

Download: Copperline v0.13.0 x64
Source: Here



Random Related Topic Refresh Related Topic

Random Related Topic Loading...

0 Comments

Post a Comment

Can't post a comment? Try This!