I'm playing with emulator and file format programming again.
One of the common game snapshot formats for the Sinclair ZX Spectrum is the .sna
format.
I know it comes in a 48k format and a newer 128k format with extra fields.
The 48k format is very simple and just has a 27-byte header before a dump of the 48k of RAM. As such it's common to assume any file with the .sna
suffix will likely be a Spectrum snapshot if its length is exactly 49179 bytes.
I'm not familiar with the 128k .sna
format but it has an extra three byte footer and then a dump of the remaining RAM banks, also making for a fixed file size of exactly 131103 bytes.
(There is mention on the internet of another variant of 128k .sna
snapshots that is 16k longer at exactly 147487 bytes, but I know nothing about itfound 16k versions mentioned in only one place.) I can't find this stated anywhere else and nor can I find any 16k files:
".sna" files are NMI Snapshots originally made on real 48k Spectrums. This is the best supported format by any emulator, but it has some draw-backs: First, it can only save a ZX Spectrum 48k snapshot. (16k snapshots are supported by zxsp, but are very rarely used.)
Anyway I'd like to filter .sna
files based on length. I know two filethree lengths are probably valid, and a third may be valid. But if there is also another valid length for specifically .sna
snapshot files for 16k Spectrums that I'll support that too.
But I'd like to know if it really exists or not. I'll accept proof such as the documentation of any emulator specifically mentioning it, or a .sna
file found in the wild on a retro game site, etc.
I'm fully aware that all 16k games can also be saved as 48k, 49179-byte .sna
files, but for this question I'm not concerned with those. They'll already work fine with my code of course.