version 5.9

by Marat Fayzullin


New in This Version


Speccy emulates once popular Sinclair ZX Spectrum home computer, its upgraded versions, and its clones. As Speccy is written in a portable C programming language, it may run on many different platforms, such as desktops, palmtops, cell phones, set-top boxes, newer videogame consoles, DVD players, and even digital cameras. Currently available are Speccy binaries for Windows and MSDOS, with ports to more platforms coming soon. You can always get the latest Speccy binaries and support files from


Although I had done some ZX-related work in the past and even maintained comp.sys.sinclair FAQ at some point, for many years I abstained from writing a Sinclair ZX Spectrum emulator. It was mostly due to the fact that there were so many other Spectrum emulators around, so writing another one seemed redundant. On the other hand, the lack of a Speccy emulator felt like a gaping hole on my resume :). So, here it is, yet another Spectrum emulator, trivially named Speccy. Currently, Speccy is not a commercial project but rather a test bed to try out different things before introducing them into my other emulators. Thus, feel free to use it as you wish (as long as it is not commercial). If you find a bug, have an idea on the further Speccy development, or would like to port Speccy to a new platform, please, let me know either by email, or by using the EMUL8 discussion group.

Since its creation, Speccy has been ported to Windows, MSDOS, and Symbian platforms. The latter works on Nokia's phones running the 3rd edition of the S60 software. For more information on Speccy-Symbian and my other Symbian projects, see


The current version of Speccy has the following features:

Keyboard Assignments

  [LSHIFT]       - CAPS SHIFT key
  [ALT]          - Joystick FIRE button
  [PAUSE]        - "Magic button" (NMI) when applicable
  [PGUP]         - Fast-forward emulation (also: [F9])
  [ESC]          - Quit emulation (also: [F12])
  [F1]           - Go into built-in debugger
  [F2]           - Turn soundtrack log on/off
  [F3]           - Toggle joystick autofire on/off
  [F4]           - Rewind and start tape
  [F5]           - Invoke runtime configuration menu
  [F6]           - Load emulation state from *.STA file
  [F7]           - Save emulation state to *.STA file
  [F8]           - Activate instant replay
  [F9]           - Fast-forward emulation (also: [PGUP])
  [F10]          - Toggle debug screen info on/off
  [ALT]+[F10]    - Toggle debug screen grid on/off
  [F11]          - Reset hardware
  [F12]          - Quit emulation (also: [ESC])
  [ALT]+[PGUP]   - Volume up
  [ALT]+[PGDOWN] - Volume down
  [ALT]+[ENTER]  - Switch to full screen (Windows)

Command Line Options

Usage: speccy [-option1 [-option2...]] [filename]

[filename] = Name of the file to load [DEFAULT.Z80]

 [-option] =
  -verbose <level>    - Select debugging messages [1]
                        0 - Silent          1 - Startup messages
                        2 - Disk I/O        4 - Illegal Z80 opcodes
                        8 - Memory mapper  16 - Illegal memory accesses
  -skip <percent>     - Percentage of frames to skip [0]
  -home <dirname>     - Set directory with system ROM files [off]
  -help               - Print this help page
  -sync <frequency>   - Sync screen updates to <frequency> [60]
  -nosync             - Same as '-sync 0'
  -tv/-lcd/-raster    - Simulate TV scanlines or LCD raster [off]
  -linear             - Scale display with linear interpolation [off]
  -soft/-eagle        - Scale display with 2xSaI or EAGLE [off]
  -epx/-scale2x       - Scale display with EPX or Scale2X [off]
  -cmy/-rgb           - Simulate CMY/RGB pixel raster [off]
  -mono/-sepia        - Simulate monochrome or sepia CRT [off]
  -green/-amber       - Simulate green or amber CRT [off]
  -4x3                - Force 4:3 television screen ratio [off]
  -fps                - Show framerate counter [off]
  -sound [<quality>]  - Sound emulation sampling frequency [22050]
  -nosound            - Same as '-sound 0', turns sound off
  -palette <filename> - Load color palette from given file [Speccy.pal]",
  -palette <number>   - Use given color palette [0]",
                        0 - Speccy colors   1 - RealSpectrum colors",
                        2 - Monochrome      3 - Green",

  -16/-48/-128        - Emulate 16kB/48kB/128kB ZX Spectrum [-48]
  -2+/-2a+/-3+        - Emulate 128kB ZX Spectrum +2/+2A/+3 [-48]
  -ts2048/-tc2048     - Emulate Timex TS2048/TC2048 [-48]
  -ts2068/-tc2068     - Emulate Timex TS2068/TC2068 [-48]
  -didaktik           - Emulate Slovakian Didaktik Gama [-48]
  -scorpion           - Emulate Russian Scorpion 256kB [-48]
  -pentagon           - Emulate Russian Pentagon 256kB [-48]
  -psg/-nopsg         - Emulate AY8910 PSG [-psg]
  -drums/-nodrums     - Use MIDI drums for PSG noise [-nodrums]
  -melodic/-wave      - Use melodic/waveform beeper sound [-wave]
  -autorun/-noautorun - Load tapes and disks automatically [-autorun]
  -tapesnd/-notapesnd - Emulate tape sounds [-notapesnd]
  -fasttap/-nofasttap - Fast tape loader [-fasttap]
  -kmouse             - Emulate Kempston mouse
  -amouse             - Emulate AMX mouse
  -kempston           - Emulate Kempston joystick
  -fuller             - Emulate Fuller joystick and PSG
  -cursor             - Emulate Cursor joystick (keys [5]-[8],[0])
  -cscursor           - Emulate cursor keys + CapsShift
  -if2                - Emulate InterfaceII joystick (keys [6]-[0])
  -lightgun           - Emulate Magnum Phaser light gun
  -auto/-noauto       - Autofire for joystick fire button [-noauto]
  -zxprinter          - Emulate ZX Printer [-zxprinter]
  -ts2040             - Emulate Timex TS2040 printer [-zxprinter]
  -alphacom32         - Emulate Alphacom 32 printer [-zxprinter]
  -disciple           - Emulate DISCiPLE disk interface
  -plusd              - Emulate MGT +D disk interface
  -if1                - Emulate Sinclair InterfaceI
  -mf                 - Emulate Multiface 1/128/+3

  When compiled with #define DEBUG:
  -trap <address>     - Trap execution when PC reaches address [5800h]
                        (when keyword 'now' is used in place of the
                        <address>, execution will trap immediately)

  With #define UNIX:
  -saver/-nosaver     - Save/don't save CPU when inactive [-saver]
  -scale <factor>     - Scale window by <factor> [2]

  When compiled with #define MSDOS:
  -vsync              - Sync screen updates to VGA VBlanks [-vsync]

Frequently Asked Questions

  1. How do I load programs from tape?

    To load a program from tape, load the tape into the emulator, then either select the TAPE LOADER in the 128kB mode or press [J], [CTRL]+[P], [CTRL]+[P], [ENTER] in the 48kB mode. Your Spectrum is now ready to load a program from tape. To start the tape, press [F5] or go to the builtin menu ([F4]) and check the TAPE RUNNING option. The loading process will start.

  2. How do I speed up tape loading?

    Tape loading happens at the same speed it would happen on a real Spectrum. To speed it up, press the fast-forwarding button ([PgUp] or [F9]).


New in Version 5.8

New in Version 5.7

New in Version 5.6

New in Version 5.5

New in Version 5.4

New in Version 5.3

New in Version 5.2

New in Version 5.1

New in Version 5.0

New in Version 4.8

New in Version 4.7

New in Version 4.6

New in Version 4.5

New in Version 4.4

New in Version 4.3

New in Version 4.2

New in Version 4.1

New in Version 4.0

New in Version 3.9

New in Version 3.8.3

New in Version 3.8.1

New in Version 3.7

New in Version 3.6

New in Version 3.4

New in Version 3.3

New in Version 3.0

New in Version 2.2

New in Version 2.1

New in Version 1.9

New in Version 1.7

New in Version 1.6

New in Version 1.5

New in Version 1.4

New in Version 1.3

New in Version 1.2

New in Version 1.1

New in Version 1.0

© Copyright by Marat Fayzullin (marat [AT] komkon [DOT] org)