Skip to main content
Glama

ZX84

A browser emulator for the Sinclair ZX80, ZX81 and ZX Spectrum, Amstrad CPC, Tatung Einstein, MSX, and Memotech MTX, with an MCP server for automated testing.

https://zx84.envytech.workers.dev

ZX84 is an old-computer emulator with machine-specific hardware models, browser-based media management, inspection tools, and a configurable CRT presentation layer.

Supported Machines

Family

Models

Core Hardware

Sinclair ZX Spectrum

16K, 48K, 128K, +2, +2A, +3

Z80, ULA or Amstrad gate array, beeper, AY on 128K-class models, uPD765A on +3

Sinclair ZX80 / ZX81

ZX80, ZX81, optional 16KB RAM pack

Z80, software-generated monochrome display, keyboard matrix, .o / .p program images

Amstrad CPC

CPC 464, CPC 664, CPC 6128

Z80, gate array, 6845 CRTC, AY-3-891x, 8255 PPI, uPD765A on 664/6128

Tatung Einstein

TC-01

Z80, TMS9929A VDP, AY-3-8910, Z80 CTC, WD1770

MSX

Toshiba HX-10

Z80, TMS9929A VDP, AY-3-8910, 8255 PPI, cartridge slot

Memotech MTX

MTX500, MTX512, RS128

Z80, TMS9929A VDP, Z80 CTC, SN76489A, twin matrix-wired joysticks, ROM extension card, FDX/SDX WD179x disk interface, optional 6845 80-column display

Related MCP server: gdb_mcp

Features

Hardware And Peripherals

  • Spectrum ULA timing, floating bus, contention, 128K paging, AY sound, and +3 floppy support.

  • Spectrum peripherals: Multiface 1/128/3, Interface 2 cartridges, VTX-5000 Viewdata modem, ZX Interface 1 with up to eight Microdrives, MGT +D, and Beta Disk/TR-DOS.

  • CPC cassette support, disk-capable 664/6128 models, Multiface Two, and optional ParaDOS ROM.

  • Einstein disk mounting and optional Xtal DOS boot-disk behavior.

  • HX-10 cartridge loading and BIOS-level .cas cassette loading.

  • MTX CP/M 2.2 boot through the real FDX hardware using a hosted Type 07 system disk.

  • MTX logical cassette loading, banked ROM packs, FDX/SDX Type 03 and Type 07 floppy mounting, optional 512 KiB RAM expansion, and optional 80×24 colour display.

  • The bundled MTX CP/M profile installs the native SIDISC module and exposes fitted expansion RAM as an empty 512 KiB type-51 drive F:.

Spectrum ROM-overlay peripherals are model-dependent. Interface 1, MGT +D, and Beta Disk are mutually exclusive; Beta Disk takes precedence when enabled.

Media

Load by picker or drag-and-drop. ZIP archives are unpacked and routed to compatible machines where supported.

Machine Or Device

Supported Media

Spectrum

Snapshots: .sna, .z80, .szx, .sp; tapes: .tap, .tzx, .cdt, .csw; +3 disks: .dsk, .hfe, .scp

Spectrum peripherals

Interface 2: .rom; Interface 1: .mdr, .mdv; MGT +D: .mgt, .img, .hfe, .scp; Beta Disk: .trd, .scl, .hfe, .scp

CPC

Snapshots: .sna; tapes: .cdt, .tzx, .tap; disks: .dsk, .hfe, .scp on disk-capable models

Einstein

Disks: .dsk, .hfe, .scp

MSX

Cartridges: .rom; cassettes: .cas

Memotech MTX

ROM packs: .rom; logical cassettes: .mtx; FDX/SDX Type 03/07 disks: .mfloppy, .mfloppy-03, .mfloppy-07

The tape deck provides block navigation, transport controls, fast ROM loading, turbo loading, loading sound where applicable, and original-media download. The disk UI supports drive selection, write protection, disk sounds, changed-image saving, blank image creation, and flippy disks.

Media can also be mounted at startup from HTTP(S) URLs. URL-encode each value; disk units are zero-based:

?snap=https%3A%2F%2Fexample.com%2Fstate.sna
&disk0=https%3A%2F%2Fexample.com%2Fsystem.dsk
&disk1=https%3A%2F%2Fexample.com%2Fdata.dsk
&tape=https%3A%2F%2Fexample.com%2Fgame.tap

Snapshots are applied first, then disks in unit order, then tape. Relative URLs are supported. Cross-origin hosts must permit browser CORS access, and the URL path or Content-Disposition response header must supply a recognised filename extension.

Display And Audio

  • WebGL CRT renderer with a Canvas fallback.

  • Integer scaling plus HQx and xBR upscalers.

  • Scanline accuracy controls, Spectrum rainbow rendering, selectable palettes, border cropping, and CPC pixel-aspect correction.

  • CRT controls for brightness, contrast, saturation, gamma, scanlines, softness, noise, dot pitch, curvature, masks, and monitor presets.

  • Shadow-mask, aperture-grille, slot-mask, LCD-grid, and attribute-mask options.

  • Web Audio output with AudioWorklet and SharedArrayBuffer paths where available, plus a ScriptProcessor fallback.

  • Master volume, beeper-to-AY mix, AY stereo placement, DC blocking, and ultrasonic-tone filtering.

Input And Development Tools

  • Keyboard mapping, configurable two-player joystick mappings, physical gamepads, and touch/mouse D-pads.

  • Spectrum joystick interfaces: Kempston, Cursor, Sinclair 1, and Sinclair 2.

  • Kempston and AMX mouse modes on supported machines.

  • Pause, frame stepping, step into/over/out, breakpoints, run-to-cursor, disassembly, registers, memory views, and clipboard export.

  • Spectrum and Einstein tracing: full execution, port I/O, and ZXTrace. Spectrum traces coalesce repeated loops.

  • Spectrum-specific BASIC, BASIC variables, system variables, font, memory-bank, screen-text, and OCR tools.

  • Customizable pane ordering, placement, visibility, collapse state, and persistent per-pane settings.

Saving, Library, And Persistence

  • Export Spectrum .szx and .z80 snapshots, CPC snapshots, screenshots, and supported screen/RAM exports.

  • Persist settings, pane layout, custom ROMs and fonts, and supported media in browser storage.

  • Spectrum and ZX80/ZX81 software libraries with ZXDB-derived search, screenshots, automatic model selection, and cached catalog data.

MCP Server

The included stdio MCP server drives Spectrum models (48K, 128K, +2, +2A, and +3) for automated testing and reverse engineering. It supports execution control, memory and register inspection, disassembly, breakpoints and watchpoints, traps, keyboard input, port I/O, OCR, snapshots, tape/disk mounting, tracing, disk inspection, and Multiface/VTX-5000 control.

See mcp/README.md for setup, the complete tool reference, and workflows.

Getting Started

npm install
npm run dev

Open http://localhost:5174, choose a machine in the Hardware pane, then load compatible ROMs and media. The hosted version supplies the standard machine ROM sets; local builds can load replacement ROM images from the ROM pane.

Useful commands:

npm test              # full Vitest suite
npx tsc --noEmit      # type-check without output
npm run depcheck      # enforce architecture boundaries
npm run build         # production build
npm run mcp           # start the Spectrum MCP server

Current Scope

Hardware and media support varies by machine and model. In particular, the HX-10 has no floppy controller, and some Einstein subsystems remain incomplete. See docs/todo.md for planned formats, devices, and machine work.

License

MIT

Acknowledgments

Built with inspiration from the ZX Spectrum, CPC, Einstein, and MSX communities and their hardware documentation.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that provides CPU emulation, disassembly, and assembly tools for LLM agents across multiple architectures including x86, ARM, and RISC-V. It enables agents to manage isolated emulation sessions, perform memory analysis, hook syscalls, and trace execution through a standard tool interface.
    Last updated
    41
    4
    GPL 2.0
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables AI assistants to control GDB debugging sessions, including breakpoint management, thread analysis, and variable inspection, using the GDB/MI protocol.
    Last updated
    22
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Cloud-hosted MCP server for durable AI memory

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/damieng-zx/zx84'

If you have feedback or need assistance with the MCP directory API, please join our Discord server