Skip to main content
Amstrad CPC 464/6128 Emulator on Raspberry Pi Pico 2

Amstrad CPC 464/6128 Emulator on Raspberry Pi Pico 2

Run 8-bit CPC classics on a $7 microcontroller board

Community firmware brings Amstrad CPC 464, 664, and 6128 emulation to the Raspberry Pi Pico 2's RP2350 chip: ROM setup, VGA output, SD card config, and full har

Amstrad CPC 464/664/6128: What Made It Special

The Amstrad CPC (Colour Personal Computer) series launched in 1984 with the CPC 464 and spent the next four years as one of the most popular 8-bit home computers in Europe. Per CPCWiki, the CPC 464 centred on a Zilog Z80A CPU running at 4 MHz, 64 KB of RAM, and the AY-3-8912 programmable sound generator — a three-channel PSG chip shared with the ZX Spectrum 128K and dozens of arcade boards of the era.

The CPC 664, released mid-1985, swapped the 464's built-in cassette drive for a 3-inch floppy unit. It was almost immediately superseded by the CPC 6128, which doubled RAM to 128 KB and became the definitive model in the lineup — the one whose software library is best preserved and most widely emulated today.

Video was handled by a Motorola 6845-derived CRTC capable of three colour modes per CPCWiki: up to 27 colours at 160×200 pixels (Mode 0), 16 colours at 320×200 (Mode 1), or 4 colours at 640×200 (Mode 2). That colour flexibility, combined with Locomotive BASIC built into ROM, made the CPC a favourite platform for both games and productivity software through the late 1980s.

Why the Raspberry Pi Pico 2 Is a Strong Emulation Target

The Raspberry Pi Pico 2 is built around the RP2350 system-on-chip. Per the official RP2350 datasheet, the chip pairs two ARM Cortex-M33 cores — or two RISC-V Hazard3 cores, selectable at boot — with 520 KB of on-chip SRAM and 4 MB of QSPI flash, running at a default clock of 150 MHz. Community builders regularly report stable operation at 250–300 MHz with adequate power supply headroom, though shipped firmware typically targets 150–200 MHz for reliability.

The arithmetic matters directly for 8-bit emulation. A CPC's Z80A runs at 4 MHz. A Pico 2 at 150 MHz has roughly 37× the raw cycle throughput available for the emulation loop — headroom that allows the second ARM core to handle VGA generation and audio synthesis concurrently without stealing CPU budget from the emulated Z80.

The RP2350's PIO (Programmable I/O) subsystem is equally important. Eight independent state machines across two PIO blocks can generate composite video or VGA signals entirely in hardware, clocking pixels without any CPU involvement. Community projects targeting the earlier RP2040 (Pico 1, 133 MHz, single PIO block pair) already demonstrated 15 kHz RGB and VGA output for various 8-bit machines. The Pico 2's additional PIO resources and faster, dual-core ARM cores make it a natural upgrade platform.

For builders comparing larger Pi boards, the Raspberry Pi 5 vs Pi 4 8GB homelab guide covers the performance-per-watt trade-offs across the Pi family — useful context when deciding whether the Pico 2's embedded approach or a full Pi running MAME better fits a build.

Available CPC Emulation Firmware

Community developers have produced Amstrad CPC emulation firmware for both the RP2040 and RP2350 platforms, published via repositories tracked on CPCWiki's emulator page and discussed on the Raspberry Pi forums. The common architecture:

  • A software Z80 core (derivatives of the open-source DrZ80 or FUSE Z80 engines appear most frequently in embedded retro projects) runs on one Cortex-M33 core at emulated 4 MHz cadence.
  • The second Cortex-M33 core handles VGA pixel generation via the PIO state machines and mixes the AY-3-8912 audio output via PWM.
  • An SPI-connected microSD card provides FAT32 storage for ROM images and game files.

Key emulated capabilities reported across community build threads include:

  • CPC 464 mode — 64 KB RAM, tape emulation via .CDT file loading from SD card
  • CPC 6128 mode — 128 KB RAM with bank-switching emulation fully within RP2350's on-chip SRAM
  • Audio — AY-3-8912 three-channel PSG emulation, PWM output at sample rates up to 44.1 kHz or 48 kHz
  • Video — VGA at 640×480 or 320×240, generated by PIO through a resistor DAC; some builds also offer composite video on a separate GPIO
  • Storage.DSK disk images and .CDT tape images on a FAT32-formatted microSD card
  • Input — USB HID keyboards via the RP2350's native USB host peripheral; GPIO-based keyboard matrix scanning for original CPC membranes

CPC Model Compatibility at a Glance

ModelRAMPrimary storageTape supportNotes
CPC 46464 KBCassette (.CDT)YesWidest original game library
CPC 66464 KB3" floppy (.DSK)LimitedRare; most software targets 464 or 6128
CPC 6128128 KB3" floppy (.DSK)Via .CDTBest modern software compatibility

Most preserved disk images target either the 464 or the 6128. The 664 occupies a narrow compatibility window and is rarely the primary target of emulator development, so 664-specific titles are best loaded in 6128 mode.

Hardware Bill of Materials

A complete Pico 2 CPC emulation build typically calls for:

ComponentPurposeNotes
Raspberry Pi Pico 2Main emulation boardRP2350, 4 MB flash, ~$7
MicroSD card + SPI moduleGame and ROM storageFAT32, up to 32 GB for compatibility
VGA resistor DAC networkVideo output3–5 resistors per RGB channel
HD15 VGA connector / breakoutVideo connectorWired from GPIO via resistors
USB-A host adapter cableKeyboard inputRequires RP2350 USB host mode
RC low-pass filter + 3.5 mm jackAY PSG audio outputPWM pin → two resistors + capacitor
VGA monitorDisplayDirect-connect; no scaler needed

Builders reusing older VGA monitors in mixed-source desk setups sometimes run a secondary HDMI source alongside the Pico's VGA output on the same display. The BENFEI HDMI to VGA 3 Feet Cable ($9.59) and BENFEI HDMI to VGA 10 Feet Cable ($11.99) handle that secondary HDMI-to-VGA signal path. Note that these cables carry signal from an HDMI source to a VGA display — they do not convert the Pico 2's VGA output for use with an HDMI monitor (that direction requires an active VGA-to-HDMI upscaler). For a two-pack adapter solution, the BENFEI Gold-Plated HDMI to VGA 2 Pack ($9.99) covers a spare.

Installation: From Blank Pico 2 to Running CPC

All RP2350 firmware ships as a .uf2 file and flashes via USB mass-storage — no toolchain required on the host machine:

  1. Download the UF2 binary. Obtain the RP2350-targeted .uf2 from the project's release page. Confirm the binary targets RP2350, not RP2040 — the chips have different architectures and binaries are not cross-compatible.
  2. Enter BOOTSEL mode. Hold the BOOTSEL button on the Pico 2 while plugging in the USB cable. The board mounts as a removable drive labelled RPI-RP2.
  3. Flash the firmware. Drag and drop the .uf2 onto the RPI-RP2 drive. The Pico 2 reboots automatically into the emulator.
  4. Prepare the SD card. Format a microSD card as FAT32. Most firmware expects a /roms/ directory for CPC firmware ROM images and a /disks/ or /games/ directory for .DSK/.CDT game files. Consult the specific project's README for exact directory names.
  5. Source ROM files. CPC firmware ROMs (AMSDOS, Locomotive BASIC) are copyrighted. Per CPCWiki's ROM images page, Amstrad has historically permitted free personal redistribution for non-commercial use, but builders should verify current licensing status before downloading.
  6. Wire VGA output. Connect the designated GPIO pins through a resistor DAC (typically three to five resistors per colour channel) to an HD15 VGA socket. Pin assignments vary by firmware — consult the project's pinout diagram.
  7. Connect audio and keyboard. Wire the PWM audio GPIO through a simple RC low-pass filter (two resistors and a small capacitor) to a 3.5 mm jack. Plug a standard USB HID keyboard into the USB host port.

Performance Expectations

Because the CPC's Z80A runs at 4 MHz and the Pico 2's RP2350 operates at 150 MHz or above, the emulated CPU loop runs well within time budget at full CPC speed. Community reports on CPCWiki's emulator discussion threads describe game compatibility as high for titles that rely on standard Z80 timing. Titles that exploit specific CRTC tricks — mid-frame palette switches, line-based raster interrupts, Mode 1 to Mode 0 switching mid-scanline — require accurate CRTC emulation that varies by firmware implementation quality.

Audio accuracy scales with the AY-3-8912 implementation. The chip's envelope generators and noise channel timing are sensitive; at 48 kHz PWM output, envelope effects in tracker music are reported to play cleanly in well-implemented cores. The RP2350's second core handling audio synthesis separately from the Z80 emulation loop avoids the timing compromises sometimes required on single-core RP2040 builds.

Thermal load is negligible: the RP2350 at 150 MHz under a continuous Z80 emulation workload generates minimal heat, and no passive or active cooling is required.

Comparing Emulation Platforms for CPC Gaming

PlatformCPC compatibilityApprox. costKey trade-off
Raspberry Pi Pico 2Good (most commercial titles)~$7 bare boardBoot-to-game in seconds; no OS overhead
Raspberry Pi 4 / 5Excellent (MAME, Caprice32)$35–$80Full OS, network, higher power draw
Original CPC 464/6128NativeVaries (used market)Authentic hardware; ageing capacitors
PC — Windows/LinuxExcellent (WinAPE, Caprice32)Existing hardwareBest compatibility; no dedicated build

For projects where full OS capabilities matter — say, adding AI vision overlays to a retro computing display or running a networked homelab service alongside emulation — the Raspberry Pi 4 8GB with an AI accelerator offers considerably more headroom. For strictly embedded, low-power, single-purpose CPC emulation where compact form factor and near-instant boot are priorities, the Pico 2 is the purpose-built choice.

Display, Audio, and Keyboard Tips

Display. The Pico 2 outputs VGA natively; most community builds target 15 kHz 50 Hz (PAL CPC native refresh) scaled into 640×480 VGA via the PIO. A standard CRT or LCD VGA monitor accepts the signal directly. Modern monitors that lack VGA inputs require an active VGA-to-HDMI upscaler (distinct from the HDMI-to-VGA cables listed above).

Audio. The PWM output needs a low-pass RC filter to remove the high-frequency carrier before the signal reaches a speaker or amplifier. The AY-3-8912's three channels (two tone + one noise, plus envelope shaping) are all software-synthesised; mixer code quality varies by firmware and is typically the first area community developers iterate on after initial boot.

Keyboard. For an authentic CPC feel, GPIO matrix-scanning of an original CPC 464 or 6128 keyboard is documented in several community projects. Modern USB HID keyboards work out of the box via the RP2350's USB host mode. 9-pin Atari-standard joystick input can be wired directly to spare GPIOs, mirroring the original CPC joystick port protocol.

Related Maker and Pi Projects

The Pico 2's embedded maker ecosystem overlaps significantly with larger Pi projects. The Cyberdeck Raspberry Pi 4/5 mini music workstation build demonstrates how RP-series boards handle real-time audio synthesis pipelines — relevant to evaluating AY-3-8912 PSG emulation quality. The follow-up coverage of Adafruit's Cyberdeck Raspberry Pi music workstation guide digs deeper into audio pipeline configuration applicable across the Pi family.

Builders interested in privacy-conscious connected projects find similar GPIO and SD-card discipline in the Raspberry Pi Zero 2W privacy-first Ring alternative and its Pi 4-based variant. The local voice assistant on Raspberry Pi 4 8GB guide is a useful reference for audio pipeline configuration across all Pi-family builds. For anyone setting up a Pi OS development host alongside the Pico 2 firmware toolchain, the recent Raspberry Pi OS Linux 6.18 LTS performance coverage documents real kernel-level throughput gains relevant to build toolchain speed.

Citations and sources

This piece is editorial synthesis based on publicly available information. No independent first-party benchmarking is reported.

Products mentioned in this article

Tap any product for full specs, live Amazon & eBay pricing, and alternatives.

SpecPicks earns a commission on qualifying purchases through both Amazon and eBay affiliate links. Prices and stock update independently.

Sources

— SpecPicks Editorial · Last verified 2026-07-10

More guides & deep dives from the SpecPicks archive

Browse all articles & guides →

More reviews from the SpecPicks archive

Browse all reviews →

More buying guides from SpecPicks

Browse all buying guides →