Skip to content

Releases: abalore/Cadence-releases

Cadence 2.0

13 Jun 01:39

Choose a tag to compare

Cadence 2.0

A major release centered on audio latency and Windows correctness.

Audio

  • ~15 ms audio latency (down from ~60 ms): the PSG now streams every sample straight into the audio ring, and the emulator paces in 5 ms slices.
  • The Audio → Latency setting now also scales the pacing cushion (Low ~15 ms / Normal ~26 ms / Safe ~52 ms). If you hear clicks on a busy system, step it up one notch.

Windows

  • Fixed: disc "Read fail" errors present in every Windows release to date (32-bit overflow corrupted sector timing on half of every track).
  • Fixed: emulation running below real speed with a constant low-frequency buzz over sound (systematic sleep overshoot was being forgiven instead of repaid).
  • Audio now opens WASAPI (modern Windows audio path) instead of the legacy default.
  • Fixed a 32-bit timer wrap that would have disturbed sessions longer than ~36 minutes.

Diagnostics

  • About now shows the OpenGL renderer and the real audio path (host API, device, latency, underrun counters) — invaluable for remote reports.

All three platforms (Linux AppImage, Windows x64, macOS arm64) attached below.

Cadence 1.9

12 Jun 21:10

Choose a tag to compare

Cadence 1.9 — the sound release

16-bit audio, measured to the silicon

The whole audio pipeline is now 16-bit end to end, built on the AY's
measured volume curve at full precision — all 16 volume levels are
audibly distinct for the first time
(8-bit collapsed the quietest
ones). Envelopes and fades breathe like the real chip.

Stereo, three ways (Audio → Output)

The CPC's line-out wiring — channel A left, C right, B centre — with a
mode for every listener, switchable live:

  • Mono — the classic internal-speaker mix.
  • Stereo (default) — ABC panning with 25% crosstalk: what the air
    blends between two real speakers. Best on headphones.
  • Stereo (hard) — the raw line wiring, cleanest on open speakers.

An AY-3-8912 to the letter

Register readback masks the chip's unimplemented bits (the AY/YM
detection signature), and R15 — the unbonded port B — behaves exactly
as measured on a real CPC: floats high as input, reads its latch as
output.

Faster

A redesigned screen reconstruction write path drops overall CPU usage
from ~25% to ~21%, and the audio rework shaves another point. Same
cycle-exact behaviour throughout — every conformance suite passes
unchanged.

Interface

  • Pause (F8): freeze the machine cleanly, no debugger involved —
    plus physical PAUSE/RESET buttons on the status bar, with PAUSE
    glowing amber while paused.
  • Hover any media slot for its full file path (and tooltips are
    finally readable app-wide — they'd been white-on-white forever).
  • The Quick start guide now greets you on first run.
  • The window fits the emulator picture to the pixel.

Binaries for Linux (AppImage), macOS (.dmg) and Windows are attached below.

Cadence 1.8

12 Jun 10:36

Choose a tag to compare

Cadence 1.8 — the hardware status bar

A real machine at the bottom of the window

The status bar is now a hand-drawn hardware fascia:

  • Two 3" disc drives — bay fronts that show the inserted disc with its name on the sleeve, a per-drive activity LED in its real bezel position (each lights only when its drive seeks or transfers), and the bay's eject button: one click ejects, one click inserts.
  • Cartridge slot — empty edge-connector or inserted cartridge with its label; the whole slot is the insert/remove button.
  • Tape deck — amber monochrome LCD showing the tape name, a PLAY/STOP motor indicator and a real-time progress bar, plus Rewind and Insert/Remove buttons.

Drag & drop, reimagined

Drop files onto the slot itself: each one accepts its own formats (and ZIPs filtered to them), highlighting while you drag. A DSK can now be dropped explicitly on drive A or drive B.

Display

  • Full screen now centers the picture (it was left-aligned, black band on the right).
  • About dialog no longer stretches to fit the OpenGL driver string.

Misc

  • Media names shown clean: no extension, no ZIP suffix.
  • "disc" spelling unified across the UI, Amstrad style.

Binaries for Linux (AppImage), macOS (.dmg) and Windows are attached below.

Cadence 1.7

11 Jun 17:25

Choose a tag to compare

Cadence 1.7 — menu-first UI, BASIC export & speed-ups

UI overhaul: everything lives in the menus now

The modal Settings dialog is gone. All configuration is one click away in a reorganized 8-menu bar, applied live:

  • Screen — Full screen, Smooth, Phosphor persistence, monitor Model (GT65 / CTM644 / CM14 / MM12) and Adjust… (V-Hold / H-Hold with live preview).
  • Input — Joystick emulation and key presets, right-Shift-as-\, and Auto-type (moved here from Tools).
  • Audio — Enabled / SFX / Tape toggles (greyed while audio is off) and Latency.
  • Performance — 1x / 2x / 4x speeds plus an independent Unlocked toggle (F9).
  • System — machine model, CRTC type, 512k RAM expansion and ROM Box. F8 is now free.
  • Disabled menu entries are now visibly dimmed, check/radio indicators included.

New: Export BASIC (Development menu)

A Locomotive BASIC detokenizer: reads the program currently in the emulated CPC's memory and saves it as a text listing — full token table, all variable types and number formats, REM/DATA/RSX handling, and correct line references even after the program has RUN. Validated byte-for-byte against the interpreter's own LIST.

Faster emulation

A profiling pass over the hot paths: Z80 parity lookup table, FDC clock idle gating, Gate Array sync-signal caching, devirtualized CRTC calls and a leaner memory-write path. Same cycle-exact behaviour — all CRTC and FDC conformance suites pass unchanged.

Fixes

  • Keys no longer remain pressed in the CPC when the window loses focus mid-keystroke (the classic stuck-key on Alt-Tab).
  • Joystick preset "Cursors + X + Z": fire buttons swapped to the more natural arrangement.

Binaries for Linux (AppImage), macOS (.dmg) and Windows are attached below.

Cadence 1.6

11 Jun 00:24

Choose a tag to compare

Cadence 1.6 — FDC conformance, Auto-type & Windows fixes

Floppy disc (µPD765) — full FDCTEST conformance

Building on 1.5's rebuilt disc subsystem, the FDC now passes the complete FDCTEST suite: 88/88 tests, validated instruction-by-instruction against real-silicon behaviour:

  • Write-side byte-paced streaming with datasheet-exact overrun, matching the read side.
  • EDSK blank/unformatted tracks now follow the physical FORMAT model (correct freshly-formatted track images).
  • Numerous status/result corner cases fixed along the way (EOT/CHRN result phase, MT head handling, FORMAT counters, FM mark handling…).

Auto-type

New Tools menu with an Auto-type action: paste text and Cadence types it on the emulated keyboard, as real key-matrix presses — handy for RUN", listings, or any long input.

Windows & filenames

  • Fixed "ROMs not found" on Windows (ANSI fopen + drive-letter path detection).
  • All media paths (disc, tape, cartridge, snapshot, ZIP) now open Unicode filenames correctly on every platform.

Misc

  • Settings: consistent CRTC type naming (Type 3 / Type 4).

Binaries for Linux (AppImage), macOS (.dmg) and Windows are attached below.

Cadence 1.5

10 Jun 14:57

Choose a tag to compare

Cadence 1.5 — Hardware fidelity & disk protections

This release is the result of a full emulation-fidelity audit, subsystem by subsystem, validated against ZEXALL, real software and original protected disks.

Floppy disc (765 / DSK) — rebuilt for accuracy

The disc subsystem was rewritten from a "happy-path AMSDOS" model into a datasheet-faithful µPD765 with a real rotation model:

  • Sector search by full C,H,R,N identity with wrong-cylinder / bad-cylinder status, true weak sectors, and physical track ordering (no more ID collisions).
  • 300 rpm rotation model: angular sector search, real rotational latency, byte-paced transfers at 32 µs with intermittent RQM, and datasheet-exact overrun.
  • Faithful command set: overrun termination, DE/DD and end-of-cylinder status, background/overlapped seeks with per-unit head position, 77-step recalibrate, motor-aware ready, index-anchored READ TRACK, and FORMAT that takes its real revolution (DISCKIT3 formats in ~30 s, as on hardware).
  • Copy-protection support: gap overreads, deleted-data marks with skip semantics, the phantom second drive, and timing-based checks — original protected releases now load: Aliens, Billy 2 (gaps), Trantor (Alkatraz), Chase HQ (deleted-data), and more.

Z80

ZEXALL now passes: BIT/CPI/ADC-SBC undocumented flags, the 0xFF interrupt vector, INI/IND/OUTI/OUTD flags, exact instruction timings (INIR, LD A,I/R), the DD/FD prefix passthrough, and RETI's IFF handling.

Gate Array, PSG, PPI & tape

  • Gate Array: correct mode-3 pen decoding, RMR bit-4 interrupt cancel, A14 port decode.
  • PSG: measured AY volume curve and exact tone periods (odd-period detune and Nyquist aliasing gone).
  • PPI/keyboard 8255 corner cases.
  • Tape: CDT at 1 µs resolution (fixes intermittent loads), unknown-block hardening, correct 0x20 pause, and WAV at the exact sample rate.

Binaries for Linux (AppImage), macOS (.dmg) and Windows are attached below.

Cadence 1.4

08 Jun 23:52

Choose a tag to compare

Cadence 1.4 — Stabilization pass (Linux · macOS · Windows).

Mantenimiento amplio guiado por una auditoría del código. Sin cambios de comportamiento salvo las correcciones listadas.

Correcciones

  • Z80: ED 77 vuelve a ser NOP (decodificaba mal como LD I,A, corrompiendo I); ADC/SBC HL,ss duran 15T (no 16T); flags no documentados de ADD IY,rr.
  • Audio: Audio enabled off ahora silencia también los SFX (mute maestro).
  • Ensamblador: ahora parsea el sufijo binario 1010b y los operadores & / && (antes inalcanzables).
  • Cinta CDT: corregido un fall-through de bloques y el truncado de bloques de datos ≥64K.
  • Ajustes: el clamp de V-Hold coincide con el rango del slider; inspector de gráficos con límites correctos.

Robustez

  • Endurecido el parseo de ficheros DSK / CDT / WAV ante imágenes corruptas o maliciosas (lecturas acotadas al buffer, sin desbordes).

Interno

  • Eliminado código muerto y deduplicadas varias rutas (ensamblador, ventana del ensamblador, depurador, gestión de modelo).

Descarga el binario de tu plataforma abajo.

Cadence 1.3

08 Jun 18:49

Choose a tag to compare

Cadence 1.3 — Amstrad CPC emulator (Linux · macOS · Windows).

Highlights

  • Variable emulation speed — Settings → Performance now has a 1x / 2x / 4x / Unlocked slider in place of the old Unlock-speed checkbox. F9 still toggles full speed instantly.
  • Monitor type selection — choose GT65 / CTM644 / CM14 / MM12 with the correct per-monitor palette and a 1-char texture x-offset for CM14/MM12 (replaces the old green-monitor toggle).
  • Settings dialog rework — cleaner two-column layout, CRTC type dropdown, Snapshot submenu, F8 shortcut.

Fixes

  • CRTC 3/4 (ASIC): VSYNC now starts at C0=0 when C4=R7 even without C9=0.

Download the binary for your platform below.

Cadence 1.2

07 Jun 23:56

Choose a tag to compare

Cadence 1.2 — complete, cycle-exact CRTC emulation (all 5 types)

The CRTC has been rewritten as one accurate class per chip and conformance-tested against the Amstrad CPC CRTC Compendium (ACCC) and CPC Shaker. Selectable in Settings → Hardware:

  • Type 0 — HD6845S
  • Type 1 — UM6845R
  • Type 2 — MC6845
  • Type 3 — ASIC (CPC+ / GX4000) — new
  • Type 4 — pre-ASIC (low-cost CPC) — new

Highlights:

  • New CRTC type 3 (ASIC) and type 4 (pre-ASIC) emulation: 3-bit register readback, &BE00 mirror, ASIC status registers (R10/R11), the 1µs ASIC HSYNC/IRQ delay, the OUT(C),r8 register-write 1µs latch, live last-line / C9 / R5-adjust behaviour, and more — verified bit-by-bit with CPC Shaker's "STATUS FIESTA".
  • Cycle-exact bus timing (CRTC/Gate-Array/Z80 on the µs grid).
  • Monitor V-HOLD / H-HOLD real-time sliders (Settings → Screen).
  • Z80 timing fixes (RRD, ADC/SBC HL,rr, repetitive-EI interrupt deferral) — fixes CPC Shaker mode-ruptures.
  • Rendering/timing fixes (HBL banner, Still Rising type detection, EDSK weak sectors), mouse hidden in full-screen, and more.

Binaries for Linux (AppImage), macOS (notarized .dmg) and Windows are attached below.

Cadence 1.1

05 Jun 00:19

Choose a tag to compare

Cadence 1.1

CRTC

  • Cycle-exact bus timing: registers sampled at T3, the video word fetched at T4, and the interrupt asserted at the Gate Array's character-cycle start — accurate raster / rupture effects.
  • Correct scrolling and split-screens on CRTC types 1, 3 and 4 (R9=0 mid-row ruptures).
  • Type-accuracy fixes against the ACCC 1.8 compendium.

Disc

  • EDSK weak-sector (copy-protection) support: multi-copy sectors are read back cyclically, so protected originals load instead of resetting.

Input / system

  • Selectable joystick key-set presets (avoid OS shortcut clashes).
  • Fixed a 100% CPU busy-spin on Linux (speed controller).
  • Debugger / UI fixes.