ZX Spectrum Emulator for Researchers and Developers
ZX Spectrum Emulator written in a mix of Python and C++.
- Designed to be suitable for research and development purposes such as unattended testing of Spectrum software, timing analysis, etc.
- Meant to be easy to customize and re-use via Python interfaces.
- Fast and accurate emulation.
- Based on the fast and flexible Z80 emulator.
- General status: working pre-alpha.
- Supported machines: 48K only for now.
- Display: multi-colour effects, accurate timings.
- Sound: not supported yet.
- Tape: TAP and TZX formats supported as well as conversion to WAV.
- Snapshots: Z80.
- Playback recordings: RZX.
Installation and running
For the latest release:
$ sudo pip3 install zx
Or directly from the repository for current development version:
$ sudo pip3 install git+https://github.com/kosarev/zx
Local development setups are also supported:
$ git clone --recursive https://github.com/kosarev/zx $ cd zx $ python3 setup.py develop --prefix ~/.local
F1 displays help.
F2 is to save snapshot.
F3 is to load snapshot or tape file.
F6 pauses/resumes tape.
ESC quit the emulator.
F11 and double click switch between fullscreen and windowed mode.
PAUSE and mouse click pause/resume emulation or RZX playback.
Any Spectrum key stroke resumes emulation and leaves the RZX playback mode back to the regular emulation mode.
Running snapshots, recordings and tapes
$ zx elven.z80
$ zx exolon.rzx
$ zx https://www.worldofspectrum.org/pub/sinclair/games/e/EricTheFloaters.tzx.zip
$ zx jack.tzx jack.wav
$ zx eric.tap eric.z80
$ zx dump rick.z80 OrderedDict([('id', 'z80_snapshot'), ('a', 213), ('f', 66), ...
dump command, zx parses the specified file (that can
be of any supported format) in the form of raw Python data.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.