ZX84
FreeNot checkedAn MCP server providing a ZX Spectrum emulator for AI testing, enabling loading and running of Spectrum software with debugging, display, and audio features.
About
An MCP server providing a ZX Spectrum emulator for AI testing, enabling loading and running of Spectrum software with debugging, display, and audio features.
README
A ZX Spectrum emulator for your browser & MCP server for AI testing
https://zx84.envytech.workers.dev
Experience the legendary ZX Spectrum with authentic CRT filtering, multi-model support and a powerful integrated debugger. Built from scratch in TypeScript with zero runtime dependencies.
This project has been extensively developed using AI - specifically Claude Code.
✨ Features
🎮 Complete Spectrum Family
- 48K — The original rubber-key classic
- 128K / +2 — 128KB RAM, AY sound chip, improved BASIC
- +2A / +3 — Built-in disk drive support with full +3DOS emulation
🕹️ Authentic Hardware Emulation
- Z80 CPU — Cycle-accurate with contended memory timing
- ULA — Precise video rendering with floating bus emulation
- AY-3-8912 — 3-channel programmable sound chip (128K models)
- Beeper — 1-bit audio with DC-blocking filter
- uPD765A FDC — Full floppy disk controller (+3 only)
📂 Universal File Support
Load your software instantly with drag-and-drop:
- Snapshots:
.sna(48K/128K),.z80(v1/v2/v3),.szx(ZX-State) - Tapes:
.tap,.tzxwith instant ROM-trap loading - Disks:
.dskfor +3 models (standard & extended formats) - Archives:
.zipfiles with automatic extraction
🎨 Authentic CRT Display
Relive the 80s with customizable visual filters:
- Scanlines — Adjustable horizontal line intensity
- Phosphor Masks — RGB aperture grille or shadow mask patterns
- Curvature — Authentic barrel distortion
- Brightness/Contrast — Fine-tune the picture
- Border Modes — None, standard, or full (for overscan effects)
- Sub-frame Rendering — Pixel-perfect rainbow effects including Nirvana+
🎵 Crystal-Clear Audio
- AudioWorklet — Low-latency, glitch-free sound
- Stereo Modes — ABC, ACB, BAC, or mono mixing
- Volume Control — Individual beeper and AY levels
- Frame Pacing — Audio-buffer-driven timing (no drift)
🕹️ Controller Support
Play your way with multiple input options:
- Keyboard — Full PC keyboard mapping with extended symbols
;,:,',#,?,@,~,{,},-,+,=,_,[,]ESCas BREAK (CAPS SHIFT + SPACE)
- Joystick Emulation — Kempston, Cursor, Sinclair IF2, Sinclair 1
- Gamepad — Dual physical controller support via Gamepad API
- Mouse — Kempston mouse and AMX mouse support
- On-screen D-Pad — Touch and mouse controls
🔧 Powerful Debugger
Built-in development tools for reverse engineering and learning:
- Breakpoints — Double-click to set, visual indicators
- Stepping — Step Into, Step Over, Step Out
- Run to Cursor — Right-click any instruction
- Live Disassembly — Real-time Z80 code view at PC
- Register Inspector — All CPU registers with tooltips
- Memory Viewer — Banking state and layout (128K)
- Execution Tracing — Full, Contention, or Port I/O modes
- Loop Detection — Automatic stuck-loop analysis
📊 Activity Monitoring
Watch your Spectrum work in real-time:
- Activity LEDs — Keyboard, Kempston, Tape, Beeper, AY, Disk
- Tape Deck — Block list, position, play/pause control
- Disk Drive — Motor, head, track, sector, operation status
- Performance — T-states/frame, clock speed (MHz)
- Turbo Mode — ~50MHz for fast-loading
💾 Smart Persistence
- Auto-save — ROMs stored in IndexedDB
- Last Session — Restores your last loaded file on startup
- UI State — Model, scale, display settings, pane layout
- Custom Fonts — Load and store
.ch8font files
🎯 Transcription Tools
Extract text and graphics from running programs:
- Pixel OCR — Live character recognition from screen
🔌 Peripherals
Hardware add-ons for expanded capabilities:
- Multiface 1 / 128 / 3 — Snapshot/poke hardware with NMI button
- VTX-5000 — Viewdata/Prestel modem with ROM overlay (48K only)
- +3 Floppy Drive — Motor and seek sound effects
🚀 Getting Started
Installation
npm install
npm run dev
Open http://localhost:5174 in your browser.
Quick Start
- Choose a Model — Select 48K, 128K, +2, +2A, or +3 from the hardware pane
- Load a ROM — Click "Load ROM" and select the appropriate ROM file for your model
- Load Software — Drag and drop a
.sna,.z80,.szx,.tap,.tzx,.dsk, or.zipfile onto the window
That's it! For tape files, the emulator will start playback automatically.
Keyboard Controls
- ESC — BREAK (stops tape loading)
- Arrow Keys — Mapped to CAPS SHIFT + 5/6/7/8
- Backspace — DELETE (CAPS SHIFT + 0)
- All symbols — Extended mappings for
;:'"#?@~{}-=_[]
🎮 Controls
Debugger
- Play/Pause — Run or pause emulation
- Step Into — Execute one instruction (when paused)
- Step Over — Execute, stepping over CALLs (when paused)
- Step Out — Run until RET (when paused)
- Double-click — Toggle breakpoint on disassembly line
- Right-click — Context menu with "Run to here"
- Trace — Select mode (Full, Contention, Port I/O, Loop Analysis)
Display
- Scale — 1x to 4x integer scaling
- Border — None, Standard, or Full
- Scanlines — 0-100% intensity
- Curvature — Off, Low, Medium, High
- Mask Type — None, RGB, Aperture Grille
- Sub-frame — Enable for rainbow/raster effects
Audio
- Volume — 0-100% master volume
- Stereo Mode — ABC, ACB, BAC, Mono
🏗️ Build for Production
npm run build # TypeScript check + Vite build → dist/
npm run preview # Serve production build locally
📜 License
🙏 Acknowledgments
Built with inspiration from the ZX Spectrum community and based on extensive hardware documentation. Special thanks to all the homebrew developers keeping the Spectrum alive!
Enjoy your trip back to 1984! 🎉
Installing ZX84
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/damieng/zx84FAQ
Is ZX84 MCP free?
Yes, ZX84 MCP is free — one-click install via Unyly at no cost.
Does ZX84 need an API key?
No, ZX84 runs without API keys or environment variables.
Is ZX84 hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install ZX84 in Claude Desktop, Claude Code or Cursor?
Open ZX84 on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare ZX84 with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
