section About


sz81 is a Sinclair ZX80/ZX81 (->) emulator very much based upon the work of Ian Collier's xz80 (->) and Russell Marks's z81 (->) but employing the highly portable SDL (->) and including additional functionality and features for desktop computers and portable devices.


  • Virtual keyboard with several adjustable properties
  • Control bar with icons for regularly used features
  • Load anytime file dialog (no need to use LOAD)
  • Save state system with 9 slots for each program
  • Runtime options including a joystick configurator
  • RAM configurations of 1 to 4, 16, 32, 48 and 56K
  • Quicksilva, BI-PAK ZON X-81 and VSYNC-based sound
  • Screenshot saving using the bitmap image format
  • Joystick control remapping within the emulator
  • Full keyboard, mouse and joystick support throughout
  • 3x runtime switchable scaling on supported platforms
  • Window and fullscreen toggling on supported platforms
  • Portrait orientated resolutions such as 240x320
  • The ability to run centred within any resolution
  • Source code support for *nix, AmigaOS4 and Win32
  • Maximum porting potential since it only requires SDL


Additionally you will require the corresponding "-devel" development packages for building the source.


GNU GENERAL PUBLIC LICENSE Version 2, June 1991 (->)

section Screenshots



New game introduced in this release (see ZX81 Applications in Downloads). Includes a shot of the game running on a real ZX81 at the National Museum of Computing (->) at Bletchley Park, England (photo © Shaun Bebbington and used with permission).





New project icons introduced in this release :-

sz81_icon zx80_icon zx81_icon


New GUI icons introduced in this release :-



New virtual keyboard images introduced in this release :-

zx80_keyboard zx81_keyboard

section Help

See the project's support page.

section Downloads


In a console type: svn co sz81



Note that this is an unofficial port maintained by a third party which may have additional functionality over the official source releases.

AmigaOS 4

Sharp Zaurus



Dingoo A320 with Dingoo-Linux (aka Dingux)

Maintainer: Ricleite

Distribution Specific Linux Packages

ZX81 Applications

These applications are part of the sz81 project and are already included within the source package.

The programs by Russell Marks are inherited from z81 which sz81 is built upon.

section ChangeLog

2.1.7 - 2011-02-13

  • Added forced (non-LOAD) program loading via a load file dialog
  • Added a save state system for saving and loading sz81 save states
  • Moved command-line emulation options to GUI runtime options
  • Added support for 1 to 4, 16, 32, 48 and 56K RAM (UDG now works)
  • Added the ability to save screenshots via PrtScn (SDLK_PRINT)
  • Added support for o, 80, p and 81 program file types
  • Added autoloading of ZX80 program files in addition to the ZX81
  • Added sequential filenaming for ZX80, printer and screenshot files
  • Added a ZX80 BASIC xxxx REM SAVE "progname" filenaming hack
  • Added an emulator pause feature via Pause (SDLK_PAUSE)
  • Added mouse wheel support, used within the load file dialog
  • Added a machine code PipePanic game and a machine code template
  • Added the GNU GPL'd Open80 and Open81 source code and ROMs
  • Added Win32 support via the _WIN32 preprocessor macro
  • Applied several graphical and usability tweaks
  • Fixed a couple of bugs - 2010-04-27

  • Fixed a few issues with the joystick configurator

2.1.6 - 2010-04-26

  • Added a joystick configurator
  • Added fg/bg colour adjustment
  • Added joystick dead zone adjustment
  • Added volume control adjustment
  • Added key repeat delay/interval adjustment
  • Added a runtime options system
  • Replaced the Open Sound System (OSS) code with the SDL API
  • Fixed a couple of bugs

2.1-5 - 2010-03-24

  • Added joystick support throughout with runtime control remapping
  • Added a configuration file to accommodate reconfigurable properties
  • Added control delay/repeating for selected GUI features
  • Applied several graphical and usability tweaks

2.1-4 - 2010-03-08

  • Converted non OSS timing to use a more portable SDL timer
  • Added an icon based control bar with several useful options
  • Added ZX bitmap fonts and a bitmap font engine for future use within the GUI
  • Added Chris Young's AmigaOS4 specific code

2.1-3 - 2010-02-27

  • Added mouse/stylus interactivity to the keyboard with adjustable opacity and autohide on newline

2.1-2 - 2010-02-17

  • Added new keyboard images
  • The renderer now centres the emulator regardless of resolution

2.1-1 - 2010-02-14

  • Initial stable and fully functioning (except OSS sound) SDL port of z81

section Compiling

Desktop Linux

Firstly make sure that you have the necessary devel libraries installed.

If you're editing the source code and modify any header files then always type "make clean && make".

Comment/uncomment the PREFIX BINDIR DOCDIR PACKAGE_DATA_DIR group at the top of the Makefile depending on whether you want to do a local install, system-wide install or run from the source folder (default) and then type :-

  • make clean
  • make
  • (If you're running from the source folder then that's it, but if you're installing this locally or system-wide then continue)
  • (Installing system-wide requires that you login as root now)
  • make install

Amiga (requires SDK)

  • gmake -f Makefile.amigaos4

To get all the required files together in RAM:sz81:

  • gmake -f Makefile.amigaos4 install

The directory can then be dragged to final location.

Sharp Zaurus (requires SDK)

  • make clean
  • make -f Makefile.zaurus

Install sz81_2.1.x_zaurus.ipk using Add/Remove Software.

GPH GP2X/Wiz (requires SDK)

  • make clean
  • (For the GPH toolchain execute the following line only)
  • make -f Makefile.gp2x
  • (For the Open2x toolchain execute the following line only)
  • make -f Makefile.open2x
  • (For the OpenWiz toolchain execute the following line only)
  • make -f Makefile.openwiz

Extract sz81_2.1.x_{gp2x|open2x|openwiz}.tar.gz and copy the contents onto your SD card.

Porting to Other Platforms

This project requires SDL only, runs centred within any resolution, can be scaled-up up to 3x, can be operated entirely with a keyboard, mouse or joystick, ships with *nix, AmigaOS4 and Win32 source code support by default and should port easily to many different platforms and devices.

section Links