Skip to content

Repository files navigation

Z80Explorer

Visual Zilog Z80 netlist-level simulator

Release Build License

Z80 Explorer is a Zilog Z80 netlist-level simulator capable of running Z80 machine code and an educational tool with features that help reverse engineer and understand this chip better.

Features

  • Cycle-accurate simulation of all 8,881 transistors and 3,597 nets in the original Z80 die
  • Layered die visualization (diffusion, polysilicon, metal, vias, buried contacts, ions) with click-to-select on any net or transistor
  • Waveform capture and replay for arbitrary nets, with cursors, bus decoding, and a circular history buffer
  • JavaScript scripting through QJSEngine (loadHex, run, reset, eq, …) plus drag-and-drop .js execution
  • Built-in MCP HTTP server exposing 30+ tools so LLM clients (Claude Code, etc.) can drive the simulator
  • Intel HEX program loading and ZX Spectrum 48K SNA snapshot support; zexall passes

Read more in the blog here: Blog
Application's User's Guide: Users Guide
It is also described in a blog: https://baltazarstudios.com/z80explorer
A brief overview is on YouTube: https://youtu.be/_dyngzTEnvw
The annotated overview is on Vimeo: https://vimeo.com/439468449

Quick start

Launch the app, drag-and-drop resource/tests/hello_world.hex onto the main window (or run loadHex("tests/hello_world.hex") in the Command dock), then reset() followed by run(0). The waveform dock shows live signal traces; clicking any feature on the die identifies its net and current logic state.

Read the User's Guide.

Z80 Explorer

Pre-built binaries

Download from the GitHub releases page. Builds are available for Windows, macOS, and Linux (glibc 2.35+).

Building from source

Requires Qt 6.9+ and a C++17 compiler. Either build system works: Z80Explorer.pro (qmake) or CMakeLists.txt (CMake). The simplest path is to open one of these in Qt Creator and pick the Release kit.

Windows — Visual Studio 2022 (MSVC, x64) plus the matching Qt kit. AVX2 is enabled automatically.

macOS — Xcode command-line tools (xcode-select --install) plus the macOS Qt kit. AVX2 paths are auto-disabled on Apple Silicon.

Linux — gcc or clang, Qt's Desktop gcc 64-bit component, and the dev libraries below:

sudo apt install build-essential libgl1-mesa-dev libxcb-xinerama0 libxcb-cursor0

Running test programs

Pre-assembled HEX files live in resource/tests/. Drag any of them onto the running app, or load via JS: loadHex("tests/zexall.hex"); reset(); run(0).

MCP server (drive the simulator from Claude Code)

Z80Explorer ships a built-in MCP server so an LLM client can drive the simulator: load HEX, run cycles, read nets, sample waveform windows, walk equation trees, and so on. It speaks MCP revision 2026-07-28, the stateless revision: there is no initialize handshake, each request carries its own protocol metadata, and a client learns what the server offers from server/discover. Tools publish output schemas and behaviour hints, so results arrive as validated structured data and a host can tell the read-only tools apart from the ones that move the simulation.

Enable it in Edit → Settings…, tick Enable MCP server, and (optionally) change the port from the default 8765. The server binds to 127.0.0.1 only — the client must run on the same machine, or you need an SSH tunnel. A request carrying a browser Origin that is not this server is refused, which is what keeps a web page from reaching the simulator through DNS rebinding. Confirm it's up:

curl http://localhost:8765/mcp/healthz

The reply names the revision the server speaks, which is the quickest way to check a client is talking the same protocol.

Register it with the Claude Code CLI once (stored in ~/.claude.json, available across all your projects):

claude mcp add --transport http --scope user z80explorer http://localhost:8765/mcp

List the available tools with claude mcp list, or run /mcp inside a Claude Code session to see the live connection state.

Credits

The transistor and segment definitions originate with the Visual 6502 team's Z80 reverse-engineering project. This simulator builds on their netlist data with a Qt 6 UI, performance optimizations, scriptable controls, and an MCP surface. Test programs are assembled with zmac.

License

Creative Commons BY-NC-SA 4.0 — see LICENSE.

About

Visual Zilog Z80 netlist-level simulator

Resources

Stars

186 stars

Watchers

11 watching

Forks

Releases

Packages

Contributors

Languages