On Linux and other POSIX platforms, the emulator is installed from the source code, available at the SourceForge download page or the most recent state of the code can be downloaded from CVS with the following command:

cvs -z3 -d checkout -P ep128emu2

In addition to the standard development tools (a recent version of the GNU C/C++ compiler, binutils, etc.), you need the following packages:

Once these are installed, you can edit the file SConstruct in the top level source directory for setting compiler flags etc., and run the command scons for building the emulator. The resulting executable files (ep128emu and tapeedit) can be copied to any directory that is in the PATH; on MacOS X, an .app package is created in When installing the first time, you also need to set up configuration files and ROM images:

  • download, and copy it to ~/.ep128emu/roms (or, in the case of MacOS X, ~/Library/Application Support/ep128emu/roms)
  • after installing the ROM package, run makecfg, and click OK to the windows that pop up asking for the base directory of configuration and data files, and if configuration files should be installed

It is possible to reinstall configuration files later by running the makecfg utility.


A binary package with an installer is available at the SourceForge download page: To install, just run the executable, and follow the instructions. The installer can automatically download the ROM images needed for running the emulator, but these can also be installed manually by downloading, and extracting it to roms\ under the selected installation folder. When asked if configuration files should be reinstalled, click 'OK' when installing the first time, but this step can be skipped in later installations to preserve the configuration.

WARNING: on Windows, there may be timing problems when using some dual core CPUs, or power management features that change the clock frequency of the CPU while the emulator is running. These issues can result in slow or erratic emulation speed, not running at 100% speed in real-time mode, or temporary lockups. If you encounter such problems, forcing the emulator to run on a single core (by setting the CPU affinity for ep128emu.exe), and/or disabling dynamic changes to the CPU clock frequency by power management could fix the timing issues. Installing and using an utility like AMD Dual Core Optimizer may also solve the problem. Note that bad emulation performance might also be caused by display or audio drivers, so it is recommended to check (and upgrade, if necessary) those as well.


Command line options

  • -h | -help | --help print the list of available command line options
  • -ep128
  • -zx
  • -cpc select the type of machine (Enterprise, ZX Spectrum, or CPC) to be emulated
  • -cfg load an ASCII format configuration file on startup, and apply settings
  • -snapshot load snapshot or demo file on startup
  • -opengl use OpenGL video driver (this is the default, and is recommended when hardware accelerated OpenGL is available)
  • -no-opengl use software video driver; this is slower than OpenGL when used at high resolutions, and also disables many display effects, but should work on all machines; however, it will use a color depth of 24 bits, while in OpenGL mode the textures are 16 bit (R5G6B5) only, to improve performance
  • -colorscheme select GUI color scheme N (0: default, 1: Win2000, 2: plastic, or 3: Gtk+)
  • OPTION=VALUE set configuration variable 'OPTION' to 'VALUE'; the available variable names are the same as those used in ASCII format configuration files
  • OPTION set boolean configuration variable 'OPTION' to true

For more detailed and up to date usage information, see also the README file included with the emulator.