zx

ZX Spectrum emulator in Python and C++

https://github.com/kosarev/zx

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary

Keywords

converter emulator mit-license python rzx rzx-playback sinclair sinclair-zx-spectrum spectrum spectrum-emulator tape z80 zx-spectrum zx-spectrum-emulator zxspectrum
Last synced: 6 months ago · JSON representation

Repository

ZX Spectrum emulator in Python and C++

Basic Info
  • Host: GitHub
  • Owner: kosarev
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 3.81 MB
Statistics
  • Stars: 21
  • Watchers: 3
  • Forks: 0
  • Open Issues: 14
  • Releases: 0
Topics
converter emulator mit-license python rzx rzx-playback sinclair sinclair-zx-spectrum spectrum spectrum-emulator tape z80 zx-spectrum zx-spectrum-emulator zxspectrum
Created over 8 years ago · Last pushed 9 months ago
Metadata Files
Readme License

README.md

zx

ZX Spectrum emulation framework in Python and C++

Python package CI

Elven

More screenshots

Features

  • 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.

Development status

  • Platforms: Linux and Windows (via SDL2).
  • General status: working pre-alpha.
  • Supported machines: 48K only for now.
  • Display: multi-colour effects, accurate timings.
  • Sound: EAR beeper and tape output supported.
  • Tape: TAP and TZX formats supported as well as conversion to WAV.
  • Snapshots: Z80.
  • Playback recordings: RZX.
  • Joystick: Xbox controllers supported via evdev (Linux only), mapped to cursor keys.

Installation and running

For the latest release: ```shell $ pip install --upgrade pip $ pip install --upgrade setuptools wheel

$ pip install zx ```

Or directly from the repository for current development version: shell $ pip install --upgrade setuptools wheel $ pip install git+https://github.com/kosarev/zx

Local development setups are also supported: shell $ git clone --recursive https://github.com/kosarev/zx $ cd zx $ pip install --upgrade setuptools wheel $ pip install --editable .

Running: shell $ zx

Controls

F1 displays help.

F2 is to save snapshot.

F3 is to load snapshot or tape file.

F6 pauses/resumes tape.

F10 quits 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

shell $ zx elven.z80

shell $ zx exolon.rzx

shell $ zx https://www.worldofspectrum.org/pub/sinclair/games/e/EricTheFloaters.tzx.zip

Supported formats

Snapshots: .z80.

Tapes: .tap, .tzx, .wav.

Playbacks: .rzx.

Screenshots: .scr.

ZX Basic compiler sources: .zxb.

Archives: .zip.

Converting files

shell $ zx jack.tzx jack.wav

shell $ zx eric.tap eric.z80

Dumping files

shell $ zx dump rick.z80 OrderedDict([('id', 'z80_snapshot'), ('a', 213), ('f', 66), ...

On the dump command, zx parses the specified file (that can be of any supported format) in the form of raw Python data.

Reference papers

Owner

  • Name: Ivan Kosarev
  • Login: kosarev
  • Kind: user
  • Location: Watford, UK

Compiler engineer.

GitHub Events

Total
  • Issues event: 2
  • Issue comment event: 8
  • Push event: 105
Last Year
  • Issues event: 2
  • Issue comment event: 8
  • Push event: 105

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 25
  • Total pull requests: 0
  • Average time to close issues: 4 days
  • Average time to close pull requests: N/A
  • Total issue authors: 3
  • Total pull request authors: 0
  • Average comments per issue: 1.76
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • kosarev (21)
  • boriel (3)
  • jsanchezv (1)
  • redbullmarky (1)
Pull Request Authors
Top Labels
Issue Labels
enhancement (9) refactoring (8) bug (6) API (6) help wanted (3) good first issue (2) question (1) in progress (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 69 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 12
  • Total maintainers: 1
pypi.org: zx

ZX Spectrum emulation framework

  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 69 Last month
Rankings
Dependent packages count: 10.0%
Stargazers count: 14.5%
Average: 20.3%
Dependent repos count: 21.7%
Downloads: 25.6%
Forks count: 29.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • pycairo *
  • pygobject *
.github/workflows/python-package.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v3 composite