ZX Spectrum 48K
Desktop: Shift = CAPS SHIFT · Alt = SYMBOL SHIFT · Alt+P = "
Load Spectrum media
TAP, TZX, SNA, Z80, RZX, or a ZIP containing exactly one supported Spectrum file.
Advanced toolsBASIC, recordings, stepping, rewind and debugger
Machine controls
- Frame
- 0
- PC
- 0000
- Border
- 0
- Raster
- 0:0
- T-state
- 0
- Key
- -
- Mapped
- -
- Held
- -
Debug WorkbenchRegisters, source, disassembly, memory and reference
Registers
BASIC
Disassembly
Memory
Source
- Load a source or listing file to follow it beside the debugger.
Assembler Reference
Full sjasmplus documentationFree · Open source · Runs in your browser
ZX Spectrum 48K Online Emulator
Run a Sinclair ZX Spectrum 48K directly in your browser with this JavaScript web emulator. Load TAP and timed TZX tapes, ZIP files, SNA/Z80 snapshots and RZX recordings from your device or a URL, with fast tape loading, sound, Sinclair BASIC and built-in Z80 debugging tools.
- JavaScript web emulator
- TAP / timed TZX
- SNA / Z80 snapshots
- RZX playback
- Sinclair BASIC tools
- Z80 debugger + rewind
ZX Spectrum web emulator for games, BASIC and Z80 development
This browser-based emulator recreates the original 48K Sinclair ZX Spectrum around a validated Z80 CPU core, 48K memory map, keyboard matrix, beeper, 50 Hz display and ULA timing behavior. It runs as a JavaScript application in a modern web browser, with no desktop emulator installation required.
It is deliberately more than a quick game launcher. Media can come from your device or a web URL, and ZIP files can hold supported Spectrum media. The same page also combines Sinclair BASIC import/export, RZX playback, instruction stepping, reverse stepping, rewind history, live registers and flags, disassembly, memory inspection, raster timing and source-listing tools.
TAP, TZX and URL loading
Open .tap and .tzx tape images from your device, a ZIP file or a pasted URL. Tapes are inserted as complete cassettes and autoload from the first block, so the Spectrum and any custom loader decide when later blocks are read.
SNA and Z80 snapshot support
Load classic 48K .sna snapshots and compatible .z80 snapshots, including compressed or uncompressed version 1 files and extended snapshots containing the normal 48K pages. Save the current machine as an uncompressed 48K Z80 snapshot.
Browser Z80 debugger
Pause execution, step by frame or instruction, step backward, scrub rewind history, and inspect registers, flags, disassembly, memory, raster position and t-states. Load assembly/listing files beside the debugger and search the built-in sjasmplus reference.
Supported ZX Spectrum file formats
| Format | Browser support |
|---|---|
TAP |
Complete-tape loading through the emulated EAR input, starting from block 0. |
TZX |
Timed standard, turbo, pure-tone, pulse-sequence, pure-data, direct-recording and generalized-data blocks, plus pause and 48K tape-control blocks. |
SNA |
Load classic 48K SNA snapshots. |
Z80 |
Load compatible 48K Z80 snapshots and save the current state as an uncompressed version 1 Z80 snapshot. |
RZX |
Step through or play compatible 48K RZX input recordings with embedded or user-supplied SNA/Z80 snapshots. |
ZIP |
Open ZIP files containing supported Spectrum media, including files loaded from a web URL. |
BAS / TXT |
Paste or import Sinclair BASIC source, tokenize it into Spectrum memory, run it, and export editable BASIC text. |
Built-in ZX Spectrum and Z80 debugging tools
The debugging workbench is aimed at people writing, studying or reverse-engineering Z80 and Spectrum software. It exposes live CPU state, flags, disassembly around the program counter, key memory regions, BASIC state, raster timing and an optional raster overlay. Resizable debugger panels can follow source listings while the emulator runs or steps, and the bounded reverse history allows frame rewind without taking a complete 48K memory copy at every checkpoint.
Open-source JavaScript ZX Spectrum emulator
The emulator code is open source under the MIT License. The bundled historical ZX Spectrum 48K ROM has its own terms, so the repository keeps the ROM and third-party notices separately.