ZX84

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.

Category
访问服务器

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.

ZX Spectrum Models File Formats

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, .tzx with instant ROM-trap loading
  • Disks: .dsk for +3 models (standard & extended formats)
  • Archives: .zip files 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
    • ;, :, ', #, ?, @, ~, {, }, -, +, =, _, [, ]
    • ESC as 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 .ch8 font 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

  1. Choose a Model — Select 48K, 128K, +2, +2A, or +3 from the hardware pane
  2. Load a ROM — Click "Load ROM" and select the appropriate ROM file for your model
  3. Load Software — Drag and drop a .sna, .z80, .szx, .tap, .tzx, .dsk, or .zip file 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

MIT


🙏 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选