User Tools

Site Tools


Spectrum Emulator

Current version: x013

The Spectrum Emulator is alternative FPGA config which emulates both the ZX Spectrum 48K and Spectrum 128 (in a non-precise manner).


  • Direct clock control was not possible on the original V6Z80P and V6Z80P+ v1.0 so the version of the emulator for these boards approximates the speed of a real Spectrum with DMA requests (there are keyboard controls to adjust this). The V6Z80P V1.1, however, (when fitted with a 14MHz crystal) runs the CPU at 3.5MHz - which is correct for the original model Spectrum. The Spectrum ULA is still not emulated in a cycle-perfect way so graphical glitches may be apparent.
  • At present data input is limited to the loading of .sna files from the SD card.
  • Special FX that rely on perfect emulation of the Spectrum's timing (EG: colour bars and similar tricks) will not look right.
  • Standard VGA and NTSC modes are of course 60Hz (not the original 50Hz) which may also result in strangeness (EG: AY music playing too quickly). In version 0.10 onwards you can force VGA to 50Hz by pressing shift + v on the menu screens.
  • There is no way to save data.

Installation instructions

There are two parts to the installation:

  1. If it is not already on your SD card copy the latest “Spectrum” folder from the V6_SD_Card boot disk (or alternative configs/spectrum_emulator) folder to the root of your FAT 16 SD card (the same card can be used for FLOS etc). This contains the Spectrum ROMs, some snapshots and a file called bootcode.exe which acts as front end /. sna file selector. It also contains the FPGA config files for all versions of the V6Z80P.
  2. Install the FPGA config file to the onboard EEPROM using the FLOS command EEPROM.EXE - make sure you use the config file appropriate for your model of V6Z80P. (See the subfolder “FPGA_CFG”)
  3. Start the emulator with option 2 in EEPROM.EXE, or use the FLOS command Boot n (where n is the slot containing the emu config), or during boot tap the function key corresponding the emulator slot (can only be F1-F7)


When the file menu loads, select a .sna file with the cursor keys and press Enter to load it. (For best compatibility, Spectrum 48 sna files use the original Spectrum 48 ROM file, and Spectrum 128 use the newer ROM.) Note: Only the first 44 files and folders in each directory are listed. You can also press B to go to the Spectrum 128 front end (BASIC), Shift and 1, 2 or 3 to restart the FPGA from another config slot or Shift+V to switch VGA to 50Hz (no effect on PAL/NTSC mode)

During emulation, press Escape to go back to the .sna loader (F1-F12 adjusts the speed for versions of the V6Z80P that cannot directly control the CPU clock)

A Kempston type joystick is supported in Joy port 1.

The 40 key Spectrum keyboard is emulated. Also the PC backspace and cursor keys are mapped onto the Spectrum's matrix (these keys casue SHIFT to be held at the same time).

Tech notes

On boot, the ROM in the FPGA loads the file “bootcode.exe” from the SPECTRUM dir at $800. If this file is missing, an error is shown (at this point you can download a bootcode.exe file serially if desired).

The bootcode looks for an ID string in memory, if it is not found it loads the Spectrum 128 and Spectrum 48 ROMs, initializes the keyboard etc. The file menu is then shown. The bootcode can be changed to create a more advanced front end. The memory area $800-$3fff is free for this use.

phil_s_spectrum_48_128_emulator.txt · Last modified: 2017/07/03 19:58 by z00m