ZXBaremulator is the first complete ZX Spectrum 48K/128K/+2A bare-metal emulator for the Raspberry Pi computers.

Emulator features

  • Support Raspberry Pi models 2 & 3.
  • Precise Z80 emulation (undocumented opcodes, hidden WZ register, bits 3-5 from 'F' register).
  • Precise Spectrum 48k/128k/+2a emulation (full border, real-time screen drawing, contended memory, floating bus, hi-res color effects).
  • Kempston/Sinclair 1-2/Cursor-AGP-Protek/Fuller/QAOPSpaceM joystick emulation using a PS3/PS4 DualShock gamepad, XBox360, XBox One or Nintendo Switch Pro Controller in USB mode (no Bluetooth supported).
  • Kempston Mouse emulation using a standard USB mouse.
  • Accelerated tape loading from virtual TZX tapes (when possible). Original tape loaders are preserved.
  • Beeper/AY-3-8912 emulation.(no HDMI sound, sigh!).
  • Multiface One/128/+3 support. You can cheat Abu Simbel Profanation, at last!.
  • Up to 1100 files can be loaded from Tapes subdirectory.
  • No Linux needed!. Super-fast loading from µSD.

New features version 3.1

  • Added a file browser, so you can have so many TAP/TZX files as you want, using your favourite organization.
  • Added support for Recreated ZX keyboard, used with or without a standard USB keyboard. Thanks to the user Hikoki that kindly donates me a recreated keyboard.
  • Added suport for PS4, XBox360, XBox One and Nintendo Switch Pro Controller gamepads.
  • Left analog stick can be used now as directional control keys but, beware, not every game is happy with that.
  • Thanks, one more time, to Jorge Castillo (pastbytes), the help screens are updated.



  • Copy the needed image to a Linux preinstalled SD/µSD (rename first the Linux kernel image) or get a new SD card FAT32 formatted and copy the all files pack.
  • Copy to your SD/µ your preferred TAP/TZX files. No special directory needed now. Insert on your Raspberry PI and... play!
  • You need an USB keyboard connected to the PI before switch on, no USB hot-plug. Optionally you can plug a PS3/PS4/XBox360/XBox One/Nintendo Switch Pro Controller gamepad and an USB mouse.
  • Choose a virtual tape from tape selector and type LOAD "" + [ENTER]
  • F1 key: Help.
  • Left Alt + 'K': Keyboard Help
  • Pressing [Select / SHARE / View / Capture] gamepad key the emulated joystick changes to:
    Model Cross (X) or A Circle (O) or B Square or X Triangle or Y L1 - R1 L2 - R2
    KempstonFireFire 2Fire 2FireFireFire 2
    Sinclair 1FireKey 'x'Key 'x'FireFireKey 'x'
    Sinclair 2FireKey 'z'Key 'z'FireFireKey 'z'
    Cursor/AGF/ProtekFireKey '9'Key '9'FireFireKey '9'
    FullerFireFire 2Fire 2FireFireFire 2
    QAOPSpaceMFire (Space)Fire 2 (Key 'm')Fire 2 (Key 'm')FireFireFire 2 (Key 'm')

How to use a Recreated ZX keyboard

  • The keyboard should be plugged before switch on the Raspberry PI and the mode selection switch should be in Layer A mode. Can be connected with or without a standard USB keyboard. The Recreated keyboard have two working modes:
    • Standard mode: works exactly as a real Spectrum 48k rubber keyboard.
    • Alternate mode: You can enter to this mode using the key combination Caps-Shift + Symbol-Shift + ENTER. Then, you can watch an informational message on screen and an icon is printed on lower right corner. Then, keys '1' to '9' works as F1-F10 from a standard keyboard, and the Symbol-Shift key acts as the 'Alt' modifier key, so pressing Symbol-Shift + K you can see a help screen with key combinations for this mode. You can exit from this mode using the same key combination used to enter on it.
  • You need a PSU capable to supply 2A as a minimum. When I connect a standard USB keyboard, the Recreated keyboard and a XBox One S gamepad to my PI-2, I need to use the 2.5A PSU from my PI-3, beware with this. When at any moment you watch on screen a yellow lightning icon, then your PI don't have the needed voltage. You can see the icons printed by the Raspberry PI firmware from here. The typical cheap Chinese PSU don't supply more than a half of the current printed on his characteristics label.

© 2017-2019 José Luis Sánchez (jspeccy at gmail dot com) - All rights reserved (2019/01/13)