[ Spectaculator, ZX Spectrum Emulator ] Home | Downloads | Support [ ZX Spectrum Image ]

Table of contents

The zx-state file format
Block types

zx-state header

The zx-state header appears right at the start of a zx-state (.szx) file.

It is used to identify the version of the file and to specify which model of ZX Spectrum (or clone) the file refers to.

Following the zx-state header is an optional ZXSTCREATOR creator information block.

Following that are the ZXSTZ80REGS and ZXSTSPECREGS blocks followed by zero or more additional blocks representing the current state of the emulated Spectrum.

// Machine identifiers
#define ZXSTMID_16K          0
#define ZXSTMID_48K          1
#define ZXSTMID_128K         2
#define ZXSTMID_PLUS2        3
#define ZXSTMID_PLUS2A       4
#define ZXSTMID_PLUS3        5
#define ZXSTMID_PLUS3E       6
#define ZXSTMID_PENTAGON128  7
#define ZXSTMID_TC2048       8
#define ZXSTMID_TC2068       9
#define ZXSTMID_SCORPION     10
#define ZXSTMID_SE           11
#define ZXSTMID_TS2068       12
#define ZXSTMID_PENTAGON512  13
#define ZXSTMID_PENTAGON1024 14
#define ZXSTMID_NTSC48K      15
#define ZXSTMID_128KE        16

// Flags (chFlags)

typedef struct _tagZXSTHEADER
  DWORD dwMagic;
  BYTE  chMajorVersion;
  BYTE  chMinorVersion;
  BYTE  chMachineId;
  BYTE  chFlags;


Byte sequence of 'Z', 'X', 'S', 'T' to identify the file as a zx-state file.
Major version number of the file format. Currently 1.
Minor version number of the file format. Currently 4.
The model of ZX Spectrum (or clone) to switch to when loading the file. This is one of:
Value Meaning
ZXSTMID_16K 16k ZX Spectrum
ZXSTMID_48K 48k ZX Spectrum or ZX Spectrum+
ZXSTMID_128K ZX Spectrum 128
ZXSTMID_PLUS2 ZX Spectrum +2
ZXSTMID_PLUS2A ZX Spectrum +2A/+2B
ZXSTMID_PLUS3 ZX Spectrum +3
ZXSTMID_PLUS3E ZX Spectrum +3e
ZXSTMID_PENTAGON128 Pentagon 128
ZXSTMID_TC2048 Timex Sinclair TC2048
ZXSTMID_TC2068 Timex Sinclair TC2068
ZXSTMID_TS2068 Timex Sinclair TS2068
ZXSTMID_PENTAGON512 Pentagon 512
ZXSTMID_PENTAGON1204 Pentagon 1024
ZXSTMID_NTSC48K 48k ZX Spectrum (NTSC)
ZXSTMID_128Ke ZX Spectrum 128Ke
Various flags. This can currently only be:
Flag Meaning
ZXSTMF_ALTERNATETIMINGS If set, the emulated Spectrum uses alternate timings (one cycle later than normal timings). If reset, the emulated Spectrum uses standard timings.

This flag is only applicable for the ZXSTMID_16K, ZXSTMID_48K and ZXSTMID_128K models.

Revision history

Available since version 1.0

ZXSTMID_NTSC48K and ZXSTMID_128Ke were added in version 1.4

ZXSTMF_ALTERNATETIMINGS was added in version 1.4

  Copyright © 2001 - 2011 Jonathan Needle Top