Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Pac-Man Emulator for Sinclair Spectrum v1.6


This program emulates the Pac-Man hardware environment, allowing the arcade Pac-Man ROMs to run (almost) unmodified on the Sinclair Spectrum. The Z80 code is executed natively, but the sprite and tile display hardware is emulated. The sound and input are mapped to the closest Spectrum equivalents.


  • Spectrum +2A/+2B/+3
  • Arcade Pac-Man ROM images

The emulator requires the special paging mode of the Spectrum +2A/+2B/+3, and will not work on earlier 48/128/+2 models. Only the combined use of both normal and special paging modes provides the flexibility needed to access everything needed at runtime. Using a peripheral to provide RAM at address 0 is not enough to satisfy this requirement. The current DivIDE support is purely to disable its hardware traps from triggering when executing code in the lower 16K.

The Pac-Man ROMs cannot be supplied with this program, so you must supply your own copies of the following files (from the Midway ROM set):

pacman.6e pacman.6f pacman.6h pacman.6j


The pacemuzx.tap tape image is created by combining the supplied tape file fragments with the Pac-Man ROM images:

  1. Copy the Pac-Man ROM images (detailed above) to the pacemuzx directory.
  2. Windows users: run make.bat. Linux/Mac/Unix users run make.
  3. Load the .tap image into a Spectrum emulator that supports +3 emulation.


Key Action
1 1 Player Start
2 2 Player Start
3 Insert Coin
C Colour Sprites
M Mono Sprites
H Hard difficulty (hold during ROM boot)
Cursor Keys Joystick Control
Q/A/O/P Joystick Control
Kempston Joystick Joystick Control
Sinclair 2 Joystick Joystick Control
Symbol-1 to 7 Maze Colour (Sym-1 for blue)

To check the difficulty setting, watch the cyan ghost at the start of the game. On Hard it exits the ghost box immediately, on Normal it waits around 6 seconds.

Build From Source

You may also build the emulator from source code, which requires a few extra tools.


Ensure and pasmo are in your path, then run make.bat (Windows) or make (Linux/Mac/Unix) to generate pacemuzx.tap.


Version 1.6 (2020/03/30)

  • Fixed error message corruption when required hardware not found
  • Updated to use instead of
  • Converted to Python

Version 1.5 (2016/11/19)

  • Fixed code overflow crash on mono/colour toggle (thanks Matthew Logue)
  • Changed maze colours to be bright by default, with Shift to dim
  • Changed green ghost to non-bright yellow, to be closer to orange original

Version 1.4 (2014/03/01)

  • Added support for diagonal control inputs from keyboard and 8-way joysticks

Version 1.3 (2012/01/08)

  • Added run-time colour/mono sprite selection
  • Added boot-time selection of Hard difficulty
  • Restored traditional blue/white maze flash when using blue/white colours
  • Restored sprite trimming at maze edges in colour version
  • Added loading message to show version number

Version 1.2 (2011/12/06)

  • Added colour sprites
  • Added Spectranet support, to prompt for trap disable
  • Added key combos to change maze colour
  • Maze flash now toggles current bright instead of blue
  • Various minor fixes and speed-ups

Version 1.1 (2011/11/09)

  • Added DivIDE support, using pages 3+0 for ROM if present
  • Improved control handling, favouring newest direction pressed
  • Holding a key after loading delays the emulation starting until released
  • Moved Blinky's downward-facing mouth down a pixel

Version 1.0 (2011/11/08)

  • Initial release

Simon Owen


Pac-Man emulator for Sinclair ZX Spectrum






No packages published