ZX84
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
ZX84
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, 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:5173 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! 🎉
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。