Just another ZX Spectrum emulator completely written in Python.
- Emulates the ZXSpectrum 48K and 128K machines
- Handles all Z80 instructions, documented and undocumented
- Beeper and AY-8910 chip audio
- Loads SZX, Z80 and SNA snapshots
- Save Z80 snapshots
- Loads TAP tape files and partially TZX tape files
- Save TAP tape images
- Run BASIC programs edited from spyccy editor (manages zmakebas syntax)
- TR-DOS rom extension
- Read and write Floppy TRD and SCL format
- Original and Standard keyboard
- Joystick (Sinclair, Kempston, Programmable, Cursor, Fuller)
- Currah µSource rom extension
- Sinclair Zx2 interface cartridge
- Platforms: Linux and Windows
All the code is written in Python. Optional c libraries are included to boost screen and AY-8910 handling.
required libraries:
- tkinter ("pip install tk" or "apt-get install python3-tk")
- pygame ("pip install pygame" or "apt-get install python3-pygame")
- numpy ("pip install numpy")
- pillow ("pip install pilllow" or "apt-get install python3-pil python3-pil.imagetk")
- cffi [optional to boost screen rendering] ("pip install cffi" or "apt-get install python3-cffi")
- zxbasic [optional to generate assembler code from basic sources] ("pip install zxbasic")
-
Clone the repository to your local machine:
git clone https://github.com/johndeckardsoftware/spyccy.git
-
Navigate to the project directory:
cd spyccy -
Run the application:
python spyccy
These days, releasing open source code tends to come with an unspoken social contract, so I'd like to set some expectations...
This is a personal project, created for my own enjoyment, and my act of publishing the code does not come with any commitment to provide technical support or assistance. I'm always happy to hear of other people getting similar enjoyment from hacking on the code, and pull requests are welcome, but I can't promise to review them or shepherd them into an "official" release on any sort of timescale.
SPYCCY is open source software. The source code is distributed under the terms of GNU General Public License (GPLv3).
This software is inspired, or derive code from the following open source projects:
- fuse emulator (http://fuse-emulator.sourceforge.net/)
- EightyOne Sinclair Emulator (https://sourceforge.net/projects/eightyone-sinclair-emulator/)
- SoftSpectrum48 (https://softspectrum48.weebly.com/)
- PyZXSpectrum (https://github.com/folkertvanheusden/PyZXSpectrum)
- tzxtools - a collection for processing tzx files (https://github.com/shred/tzxtools)
- Russell Marks zmakebas.c (https://github.com/z00m128/zmakebas)
- Alexander Sashnov (https://github.com/asashnov/libayemu)