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

Table of contents

The zx-state file format
Block types

ZXSTGSRAMPAGE

A zx-state file will contain a number of these blocks, depending on the model of GS being emulated (128KB or 512KB). A ZXSTGS block will proceed the first of these blocks.

// General Sound 32KB RAM page
// Ram pages are compressed using Zlib
#define ZXSTGSRF_COMPRESSED       1

// 32KB GS Ram page
typedef struct _tagZXSTGSRAMPAGE
{
  ZXSTBLOCK blk;
  WORD wFlags;
  BYTE chPageNo;
  BYTE chData[1];
} ZXSTGSRAMPAGE, *LPZXSTGSRAMPAGE;

Members

blk
The block header. The block id is ZXSTBID_GSRAMPAGE ('G', 'S', 'R', 'P').
wFlags
Various flags. This can currently only be:
FlagMeaning
ZXSTGSRF_COMPRESSEDIf ZXSTGSRF_COMPRESSED is set, the RAM page data (beginning from chData) will be compressed using the Zlib compression library.
chPageNo
The 32KB RAM page number (0-14 for the GS512 or 0-3 for the GS128).
chData
The actual compressed or uncompressed memory page data.

When loading Zlib compressed pages, the compressed size can be obtained by:

compressedSize = blk.dwSize - ( sizeof( ZXSTGSRAMPAGE ) - sizeof( ZXSTBLOCK ) - 1 );

Remarks

A ZXSTGS block will proceed the first of these blocks.

Revision history

Available since version 1.2


  Copyright © 2001 - 2011 Jonathan Needle Top